1. 程式人生 > >Hadoop 2.2.0下Pig安裝及Pig的基礎使用

Hadoop 2.2.0下Pig安裝及Pig的基礎使用

準備工作:

1、正常執行的Hadoop2.2.0環境;

2、自行編譯好適用於Hadoop2.2.0環境的的Pig 0.12.0版本。

    1)NameNode的機器上安裝apache-ant,將ant的可執行檔案路徑放入環境變數PATH中;

    2)確定NameNode能夠連線網路,我使用的是虛擬機器橋接的方式,可以連線網際網路;

    3)下載Pig 0.12.0的src檔案,tar包解壓後,在解壓的目錄下執行命令:

      ant clean jar-withouthadoop -Dhadoopversion=23

3、準備資料,拷貝到Hdfs中,資料格式如下:

  James,Network,Tom,98
  James,Computer,Jim,86
  Lily,Network,Tom,86
  Lily,Philosophy,Lilei,77
  Lucy,Korean,Piao,98
  Lucy,Network,Tom,98
James,Database,Tom,88

   

 

編譯完成後:

1、設定環境變數,修改.bash_profile檔案,而後source .bash_profile

PATH=/opt/pig-0.12.0-src/bin:$JAVA_HOME/bin:$PATH
export PATH
PIG_CLASSPATH=/opt/hadoop-2.2.0/etc/hadoop
export PIG_CLASSPATH

 

2、Shell下執行pig命令,預設進入mapreduce模式,執行如下命令:

A = LOAD 'chengji.txt' USING PigStorage(',') AS (student,course,teacher,score:int);

DUMP A;

 

 

遺留問題:

PIG中能執行出結果,但是在執行過程中報錯:

Call From cloud001/192.168.1.105 to cloud001:10020 failed on connection exception:

cloud001是我的namenode,net -an | grep 10020檢視這個埠確實沒開啟

在mapred-site.xml檔案中配置:

<property>
        <name>mapreduce.jobhistory.address</name>
        <value>hdfs://cloud001:10020</value>
</property>
<property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hdfs://cloud001:19888</value>
</property>

 

目前還是不知道原因,暫作記錄,後續如果知道原理再排查。