网站大量收购闲置独家精品文档,联系QQ:2885784924

ApachePig简介与实践程序.docx

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Bottom of FormApache Pig简介与实践Apache Pig是一个用来分析大数据集的平台,它由两部分组成:一部分是用于表达数据分析程序的高级脚本语言,另一部分是用于评估分析程序的基本工具。目前来看,Pig主要用于离线数据的批量处理应用场景,但是随着Pig的发展处理数据的速度会不断地提升,这可能依赖于Pig底层的执行引擎。比如,Pig通过指定执行模式,可以使用Hadoop的MapReduce计算引擎来实现数据处理,也可以使用基于Tez的计算引擎来实现(Tez是为了绕开MapReduce多阶段Job写磁盘而设计的DAG计算引擎,性能应该比MapReduce要快),看到Pig未来的发展路线图,以后可能会基于Storm或Spark计算平台实现底层计算引擎,那样速度会有极大地提升。我们基于必威体育精装版的0.15.0版本的Pig(Hadoop使用的是2.2.0版本),通过编写一些例子脚本来实践Pig的语言特性。Pig安装与执行Pig安装非常简单,只需要下载Pig包,然后解压缩即可:wget /apache/pig/pig-0.15.0/pig-0.15.0.tar.gztarxvzf pig-0.15.0.tar.gzsudo ln -s /usr/local/pig-0.15.0 /usr/local/pigcd /usr/local/pigbin/pig -x mapreduce如果希望直接使用pig命令,可以修改环境变量文件~/.bashrc,增加如下配置:export PIG_HOME=/usr/local/pigexport PATH=$PATH:$PIG_HOME/bin使变量配置生效:. ~/.bashrcPig支持如下4种执行模式:本地模式本地模式主要是基于本地文件系统,比较适合调试脚本使用。进入本地模式执行如下命令:pig -x localTez本地模式Tez本地模式类似于前面的本地模式,它使用Tez运行时引擎,进入Tez本地模式执行如下命令:pig -x tez_local不过该模式还处于试验阶段,不过多累述。MapReduce模式MapReduce模式基于Hadoop,数据存储在HDFS上,它基于运行于YARN之上的MapReduce进行处理。进入MapReduce运行模式执行如下命令:pig -x mapreduce一般,我们的数据都是存储在HDFS上的,使用该模式能够充分利用Hadoop集群的计算能力。Tez模式基于Tez模式执行,需要在安装Hadoop集群的时候,修改Hadoop配置文件mapred-site.xml,将属性的值设置为yarn-tez。进入Tez模式执行如下命令:pig -x tez有关Tez相关内容,可以查看Apache Tez官网介绍。数据类型Pig的数据类型可以分为2类,分别为简单类型和复杂类型。简单类型包括:int、long、float、double、chararray、bytearray、boolean、datetime、biginteger、bigdecimal。复杂类型包括:tuple、bag、map。这里对特别的数据类型,解释说明一下:chararray相当于字符串String;bytearray相当于字节数组;tuple是一个有序的字段的集合,可以理解为元组,例如(3090018, ‘Android’, 76);bag是tuple的集合,例如{(3090018, ‘Android’, 76), (3090019, ‘iOS’, 172)};map是键值对的集合,例如[name#Jeff Stone, age#28, healthy index#195.58]。基本操作符算数操作符(Arithmetic Operators)包括:+、-、*、/、%、?:、CASE WHEN THEN ELSE END。布尔操作符(Boolean Operators)包括:AND、OR、IN、NOT。类型转换操作符(Cast Operators):使用圆括号包含类型名,作用于一个字段,例如(int)age、(map[])、(chararray)COUNT($2)、(tuple(chararray,int,map[]))name_age_scores等等。比较操作符(Comparison Operators)包括:==、!=、、、=、=、matches。其中,matches比较操作符使用Java的Pattern进行匹配来比较,例如user_name matches ‘[a-n]{3,12}’。类型构造操作符(Type Construction Operators):可以创建复杂类型的数据,tuple使用(),map使用[],bag使用{},例如FOREACH users GENERATE

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档