你好,游客 登录 注册 搜索
背景:
阅读新闻

Hadoop(六)——子项目Pig

[日期:2015-09-16] 来源:CSDN博客  作者: [字体: ]

  前边,讲述了 Had oop 的两大支柱 HDFS 和 MapReduce ,我们通过将大数据的数据文件放在 HDFS 上,利用 Java 编写 Map-Reduce, 来实现数据的各种分析,并预测一些东西,实现大数据的商业价值,从而也体现了 Hadoop 价值所在。

  但是反观传统系统中,我们都是通过数据库进行数据分析的,例如关系型数据库:Oracle ,SQL Server,mysql 等,更进一步的通过 NO SQL 数据库: mongoDB 等。对于Hadoop 大数据分析,我们如何能够快速而平滑的过度过来呢,以至于不会 Java 的也能够进行利用 hadoop 进行数据分析呢。好, Hadoop 的子项目为我们解决了这个难题: Pig 、 Hive 。好,这篇博客来看看 Pig 是如何操作 Hadoop 的。

  一, Pig 是什么:

  Pig 是 Ya hoo 捐献给 Apache 的一个项目。相当于 Hadoop 的一种客户端,属于Hadoop 的上层衍生架构,将 Map-Reduce 进行封装。通过 Pig 客户端用户可以使用Pig latin 一种类似于 SQL 的面向数据流的语言对 HDFS 下的数据进行处理。说简单一点 Pig 就是 pig latin 数据流语言和 Map-Reduce 之间的翻译,类似于不同语言直接的接口。所以有人说, Pig 包括 Pig Interface 和 Pig latin 两部分。好看下边这个图:

Hadoop

  二, Pig 两种运行模式:

  1 ,本地模式:所有文件和执行过程都在本地执行,一般用于测试程序。开启本地模式: pig -x local

  2 , Map Reduce 模式:实际工作模式,Pig将查询翻译为MapReduce作业,然后在Hadoop集群上执行。

  三,安装 Pig:

  1, 下载解压:到 Apache 官网下载 Pig ,我下载的是: pig-0.15.0.tar.gz ,放到了Had oop 的同路径下(自己定);解压: tar - xvf pig-0.15.0.tar.gz

  2 ,设置环境变量: vi /etc/profile 设定 pig 的 bin 路径和 Jdk 的路径即可。重启即可完成本地模式安装 .

  Export PATH=$PATH:/home/ljh/pig-0.15.0/bin

  Export JAVA_HOME=/usr/jdk1.8.0_51

  3 , Map Reduce 模式配置 , 设置 hadoop 的相关环境变量,重启,直接使用 pig 进行 MapReduce 模式运行。

  ExportPATH=$PATH:/home/ljh/pig-0.15.0/bin : /home/ljh/ hadoop-1.2.1 /bin

  ExportJAVA_HOME=/usr/jdk1.8.0_51

  ExportPIG_CLASSPATH=/home/ljh/hadoop-1.2.1/conf/

  四, grund shell 命令:

  进入 grunt ,可以使用类似 linux 命令进行各种操作,和 linux 很像的,大家实验一下即可:

  例如: ls ,cd cat 和 linux 完全一样,只不过是在 hadoop 的环境下;

  copyToLocal 将文件复制到本地, copyFromLocal 从本地复制文件到 hadoop 环境;

  sh, 用来执行操作系统的命令,例如: sh /usr/jdk/bin/jps 。好看下边一个图,不懂的可以查下。

Hadoop

  五, pig 的数据模型,和传统数据的模型简单对比:

Pig

数据库

Bag

Tuple

Field

属性

  注意: pig 同一个 bag 里边的各个 tuple 可以由不同数量不同类型的 field ,和传统数据库是不一样的。

  六, pig latin ( 类似与 SQL 的向数据流的语言 ) :

  1 ,常用语句:

  2 ,对应各种 SQL ,看此篇博客,很好:http://guoyunsky.iteye.com/blog/1317084

  3 ,更多语法,看此篇博客,很详细:http://blackproof.iteye.com/blog/1791980

  pig latin 就是一种语言,而且是相对来说比较简单语言,在我们使用的时候,我们现查现用即可。无在乎对数据的各种查询,过滤等。

 

  小结: 好, pig 的知识相对来说比较少,安装容易,使用方便,需要多学的就是 piglatin 这个脚本语言的熟练,更多的各种语法,会查会用即可。 Pig,hadoop 的上层衍生框架,使操作 hadoop 多了一种方式,现在有了: java 的 mapreduce,pig 的 pig latin,当然还有后边的 hive 的 Hiveql ,后边会讲到。总而言之,多理解,多看各种资料,多实践……





收藏 推荐 打印 | 录入:elainebo | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款