hadoop应用-pig
第1章 引言
1.1 编写目的
介绍pig,一个不得不说的hadoop的扩展。
1.2 什么是pig
Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig为复杂的海量数据并行计算提供了一个简单的操作和编程接口。
1.3 pig的特点
1、专注于于大量数据集分析(ad-hoc analysis , ad-hoc 代表:a solution that has been custom designed for a specific problem );
2、运行在集群的计算架构上,Yahoo Pig 提供了多层抽象,简化并行计算让普通用户使用;这些抽象完成自动把用户请求queries翻译成有效的并行评估计划,然后在物理集群上执行这些计划;
3、提供类似 SQL 的操作语法;
4、开放源代码;
1.4 pig的主要用户
1、yahoo
2、twitter
1.5 关于pig和hive
对于开发人员,直接使用Java APIs可能是乏味或容易出错的,同时也限制了Java程序员在Hadoop上编程的运用灵活性。于是Hadoop提供了两个解决方案,使得Hadoop编程变得更加容易。
•Pig是一种编程语言,它简化了Hadoop常见的工作任务。Pig可加载数据、表达转换数据以及存储最终结果。Pig内置的操作使得半结构化数据变得有意义(如日志文件)。同时Pig可扩展使用Java中添加的自定义数据类型并支持数据转换。
•Hive在Hadoop中扮演数据仓库的角色。Hive添加数据的结构在HDFS(hive superimposes structure on data in HDFS),并允许使用类似于SQL语法进行数据查询。与Pig一样,Hive的核心功能是可扩展的。
Pig和Hive总是令人困惑的。Hive更适合于数据仓库的任务,Hive主要用于静态的结构以及需要经常分析的工作。Hive与SQL相似促使 其成为Hadoop与其他BI工具结合的理想交集。Pig赋予开发人员在大数据集领域更多的灵活性,并允许开发简洁的脚本用于转换数据流以便嵌入到较大的应用程序。Pig相比Hive相对轻量,它主要的优势是相比于直接使用Hadoop Java APIs可大幅削减代码量。正因为如此,Pig仍然是吸引大量的软件开发人员。
第2章 安装pig
2.1 下载pig
下载pig的最新版本:
http://www.apache.org/dyn/closer.cgi/pig
我下载的是pig-0.10.0.tar.gz
2.2 安装pig
解压缩
tar zxvf pig-0.10.0.tar.gz
进入目录
cd pig-0.10.0
注意,pig是hadoop的工具,所以不需要修改原hadoop的配置。
将pig加入到环境变量中:
输入
cd ~
进入到用户主目录
vi .bashrc
最下边加入环境变量的配置
保存然后执行
. .bashrc
输入 pig -help进行测试,如果设置成功,则出现如下界面
如果想获取pig的源码,可以使用svn下载
http://svn.apache.org/repos/asf/pig/trunk
2.3 配置hadoop
进入目录$PIG_HOME/conf
修改配置文件,在pig.properties中加入
fs.default.name=hdfs://localhost:9000
mapred.job.tracker=localhost:9001
指向本地伪分布式的hdfs和mapreduce
在本地运行pig
pig -x local
得到如下界面
和hadoop一起运行
直接输入pig或者pig -x mapreduce
有可能出现下面的错误
Cannot find hadoop configurations in classpath (neither hadoop-site.xml nor core-site.xml was found in the classpath).
需要配置~/.bashrc或者/etc/profile,建议配置.bashrc文件,加入
export HADOOP_HOME=/home/hadoop/hadoop-1.0.3
export PIG_CLASSPATH=$HADOOP_HOME/conf
配置完成后可正常进入
第3章 grunt shell
3.1 基本命令
Quit 退出grunt
kill hadoopID 终止正在运行的hadoop进程
set debug on 打开debug级别
使用命令包括:
help,quit,kill jobid,set debug [on|off],set job.name ‘jobname’
文件命令包括:
cat,cd,copyFromLocal,copyToLocal,cp,ls,mkdir,mv,pwd,rm,rmf,exec,run
3.2 查询测试
到安装目录下找到/tutorial/data/excite-sall.log文件,数据分为3列,按制表符分隔,第一列为用户ID,第二列为Unix时间戳,第三列为查询记录。
输入如下语句:
grunt> log = LOAD 'tutorial/data/excite-small.log' AS (user,time,query);
将数据装载到一个称为log的别名中。
查询返回4个元组并显示:
grunt> lmt = LIMIT log 4;
grunt> DUMP lmt;
得到结果:
PIG中的读写操作:
LOAD
从文件装载数据到一个关系
LIMIT
限制元组个数为n
DUMP
显示一个关系的内容,主要用于调试
STORE
将一个关系中的数据存储到一个目录中
输入执行:
grunt> log = LOAD '/home/lgstar888/hadoop/pig-0.10.0/tutorial/data/excite-small.log' AS (user:chararray,time:long,query:chararray);
grunt> grpd = GROUP log BY user;
grunt> cntd = FOREACH grpd GENERATE group,COUNT(log);
grunt> STORE cntd INTO 'output';
用于统计每个用户查询发起的个数
使用grunt> DESCRIBE log;
查看schema
log: {user: chararray,time: long,query: chararray}
pig中的诊断运算符:
DESCRIBE alias;
显示一个关系的schema
EXPLAIN
显示用于计算一个关系的执行计划
ILLUSTRATE alias
逐步显示数据如何被转换
AVG
求平均值
CONCAT
连接两个字符串
COUNT
计算一个包中的元组个数
DIFF
比较一个元组中的两个字段
MAX
计算在一个单列包中的最大值
MIN
计算在一个单列包中的最小值
SIZE
计算元素的个数
SUM
计算在一个单列包中的数值的总和
IsEmpty
检查一个包是否为空
更多的相关的使用与配置已整理到
http://code.google.com/p/mycloub/
转载于:https://www.cnblogs.com/itgg168/archive/2012/11/30/2796535.html
hadoop应用-pig相关推荐
- Hadoop 之Pig的安装的与配置之遇到的问题---待解决
1. 前提是hadoop集群已经配置完成并且可以正常启动:以下是我的配置方案: 首先配置vim /etc/hosts 192.168.1.64 xuegod64 192.168.1.65 xuegod ...
- Hadoop系列三:Hadoop之Pig篇
Pig安装和运行 Pig包括两部分: -用于描述数据流的语言,称为Pig Latin. -用于执行PigLatin程序的执行环境,当前有两个环境:单JVM中的本地执行环境和Hadoop集群上的分布式执 ...
- Hadoop、Pig、Hive、Storm、NOSQL 学习资源收集【Updating】
(一)hadoop 相关安装部署 (二)hive (三)pig (四)hadoop原理与编码 (五)数据仓库与挖掘 (六)Oozie工作流 (七)HBase (八)flume (九)sqoop (十) ...
- 【转自oschina网站】Hadoop、Pig、Hive、Storm、NOSQL 学习资源收集
目录[-] (一)hadoop 相关安装部署 (二)hive (三)pig (四)hadoop原理与编码 (五)数据仓库与挖掘 (六)Oozie工作流 (七)HBase (八)flume (九)sqo ...
- 大数据Hadoop之——数据分析引擎Apache Pig
文章目录 一.Apache Pig概述 二.Apache Pig架构 1)架构图 2)Apache Pig组件 1.Parser(解析器) 2.Optimizer(优化器) 3.Compiler(编译 ...
- [转]Hadoop家族学习路线图
Hadoop家族学习路线图 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, ...
- Hadoop生态圈一览
根据Hadoop官网的相关介绍和实际使用中的软件集,将Hadoop生态圈的主要软件工具简单介绍下,拓展对整个Hadoop生态圈的了解. 这是Hadoop生态从Google的三篇论文开始的发展历程,现已 ...
- 海量Web日志分析 用Hadoop提取KPI统计指标
海量Web日志分析 用Hadoop提取KPI统计指标 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahou ...
- Hadoop编程调用HDFS
主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项 ...
最新文章
- [20150205]分析函数ntile.txt
- java 删除压缩zip文件_从ZIP存档中删除文件,而无需在Java或Python中解压缩 - java...
- DDD“上吊绳驱动开发”,开发要想不被“吊死”,该如何自救?
- sikuli 搜索例子
- react typescript 子组件调用父组件
- python有趣函数_python中有趣的函数
- java keytool 生成p12证书
- 大三,在软件工程学习上的感悟
- JavaScript 的 switch 有四样写法,你知道么?
- CSS3 3D立体旋转
- ArcGIS矢量数据模型
- 一些非常有趣的python爬虫例子
- 科学数学工程工具MATLAB软件2023a中文版下载安装,MATLAB特色
- 酉变换 matlab,量子计算原理 Theory of Quantum Computing
- Android背光系统实现
- 大数据中技术的定义和特点
- js获取当前日期未来七天的日期
- Web前端面试指导(四十四):什么是响应式开发?
- 从数据开始:『安卓读书』8000 万下载量炼成记
- Android工具修复属性,Broken Android Data Extraction(安卓数据修复工具) V3.0.20 官方版