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>
目前還是不知道原因,暫作記錄,後續如果知道原理再排查。