IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]Hadoop(六)——子项目Pig

    liujiahan629629发表于 2015-09-16 00:15:07
    love 0

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

     

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

     

        一,Pig是什么:


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



        二,Pig两种运行模式:


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


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

         

        三,安装Pig:


            1,下载解压:到Apache官网下载Pig,我下载的是:pig-0.15.0.tar.gz ,放到了Hadoop的同路径下(自己定);解压: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,MapReduce模式配置,设置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。好看下边一个图,不懂的可以查下。



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





沪ICP备19023445号-2号
友情链接