Pig的安装及基本使用
一、PIG介紹
? Pig是MapReduce的一個抽象。它是一個工具/平臺,用于分析較大的數據集,并將它們表示為數據流。Pig通常與 Hadoop 一起使用;我們可以使用Pig在Hadoop中執行所有的數據處理操作。
要編寫數據分析程序,Pig提供了一種稱為 Pig Latin 的高級語言。該語言提供了各種操作符,程序員可以利用它們開發自己的用于讀取,寫入和處理數據的功能。
要使用? Pig 分析數據,程序員需要使用Pig Latin語言編寫腳本。所有這些腳本都在內部轉換為Map和Reduce任務。Apache Pig有一個名為 Pig Engine 的組件,它接受Pig Latin腳本作為輸入,并將這些腳本轉換為MapReduce作業。
引:https://www.w3cschool.cn/apache_pig/apache_pig_overview.html
二、PIG安裝
1.解壓pig安裝包,并將pig-0.13.0移動到pig,使用更加方便
[hadoop@MASTER ~]$ tar xf pig-0.13.0.tar.gz[hadoop@MASTER ~]$ mv pig-0.13.0 pig2.配置PIG環境變量
[hadoop@MASTER ~]$ vim .bash_profile#pigexport PIG_HOME=/home/hadoop/pigexport PATH=$PATH:$PIG_HOME/bin:$PIG_HOME/conf#添加PIG_CLASSPATH,使PIG識別hadoop的NameNode和JobTrackerexport PIG_CLASSPATH=$HADOOP_HOME/etc/hadoop使環境變量生效
[hadoop@MASTER ~]$ source .bash_profile3.創建日志文件目錄,否則目錄會在hadoop用戶目錄下生成
[hadoop@MASTER ~]$ mkdir -p /home/hadoop/pig/logs[hadoop@MASTER ~]$ vim /home/hadoop/pig/conf/pig.propertiespig.logfile=/home/hadoop/pig/logs4.查看PIG是否安裝成功
Hadoop集群已啟動
幫助信息出現,安裝完成。
三、PIG運行模式
Local模式
本地模式下,Pig運行在單個JVM中,訪問本地文件系統,該模式用于測試或處理小規模數據集
[hadoop@MASTER ~]$ pig -x local #退出 grunt> quitMapReduce模式
在MapReduce模式下,Pig將查詢翻譯為MapReduce作業,然后在Hadoop集群上執行
[hadoop@MASTER ~]$ pig -x mapreduce #退出 grunt> quit四、PIG Latin介紹
這里就不寫了,介紹一篇博文吧!很詳細!
http://www.aboutyun.com/thread-6713-1-1.html
也可以去參考w3cschool中PIG的詳細教程
https://www.w3cschool.cn/apache_pig/
五、實例
要求
在本地文件系統創建三個文件student.txt,course.txt,sc.txt,分別存儲學生信息,課程信息,選課信息。實現找出不及格的學生,并且輸出學生的姓名和不及格課程和成績。樣例數據如下:
201000101:李勇:男:20:計算機軟件與理論 201000102:王麗:女:19:計算機軟件與理論 201000103:劉花:女:18:計算機應用技術 201000104:李肖:男:19:計算機系統結構 201000105:吳達:男:19:計算機系統結構 201000106:滑可:男:19:計算機系統結構學生信息student.txt(學號,姓名,性別,年齡,專業)
01,English,4 02,Data structure,2 03,DataBase,2 04,DB Design,3 05,C Language,3 06,Principles of Network,3 07,0S,3?課程信息course.txt(課號,課程名,學分)
201000101,01,92 201000101,03,84 201000102,01,90 201000102,02,94 201000102,03,82 201000103,01,72 201000103,02,90 201000104,03,58選課信息sc.txt(學號,課號,成績)
過程
1.三個要處理的文件信息
[hadoop@MASTER test1]$ vim student.txt201000101:李勇:男;20;計算機軟件與理論201000102:王麗:女:19:計算機軟件與理論201000103:劉花:女:18:計算機應用技術201000104:李肖:男:19:計算機系統結構201000105:吳達:男:19:計算機系統結構201000106:滑可:男:19:計算機系統結構[hadoop@MASTER test1]$ vim course.txt01 English,402 Data structure,203 DataBase,204 DB Design,305 C Language,306 Principles of Network,307 0S,3[hadoop@MASTER test1]$ vim sc.txt201000101,01,92201000101,03,84201000102,01,90201000102,02,94201000102,03,82201000103,01,72201000103,02,90201000104,03,582.在HDFS上創建pig目錄,用于存放三個要處理的文件
[hadoop@MASTER ~]$ hadoop fs -mkdir /pig3.PIG在mapreduce模式下運行
執行時,先查看文末紅字提示,否則會報錯!
[hadoop@MASTER ~]$ pig -x mapreduce #上傳本地數據到HDFS grunt> fs -copyFromLocal /home/hadoop/test1/student.txt /piggrunt> fs -copyFromLocal /home/hadoop/test1/sc.txt /piggrunt> fs -copyFromLocal /home/hadoop/test1/course.txt /pig#將student.txt加載到Pig中,以:分割,指定五列Sno,Sname,Ssex,Sage,Sdept grunt> A= load '/pig/student.txt' using PigStorage(':') as (Sno:chararray,Sname:chararray,Ssex:chararray,Sage:int,Sdept:chararray);#查看經過處理后的信息A grunt> dump A;grunt> B= load '/pig/sc.txt' using PigStorage(',') as (Sno:chararray,Cno:chararray,Grade:int); grunt> dump B; grunt> C= load '/pig/course.txt' using PigStorage(',') as (Cno:chararray,Cname:chararray,Ccredit:int); grunt> dump C;#根據條件從B中選擇所需的信息 grunt> D= Filter B By Grade <60;#組合來自A和D關系的記錄 grunt> E= Join D By Sno,A By Sno;#組合來自E和C關系的記錄 grunt> F= Join E By Cno,C By Cno;#基于列數據生成指定的數據轉換 grunt> G= foreach F generate Sname,Cname,Grade; grunt> dump G; (李肖,DataBase,58) 輸出不及格學生的姓名和不及格課程和成績 #退出 grunt> quit?執行最后一步dump G或者dump A等可能出現如下情況,但最后會輸出正確結果:
關于10020端口拒絕連接的問題的解決:
完善如下紅字
[hadoop@MASTER ~]$ vim /home/hadoop/hadoop/etc/hadoop/mapred-site.xml
<configuration>
????? <property>
??????????????? <name>mapreduce.framework.name</name>
??????????????? <value>yarn</value>
??????????????? <final>true</final>
??????? </property>
??????? <property>
??????? <name>mapreduce.jobhistory.address</name>
??????? <value>MASTER:10020</value>
??? </property>
??? <property>
??????? <name>mapreduce.jobhistory.webapp.address</name>
??????? <value>MASTER:19888</value>
??? </property>
</configuration>
然后開啟JobHistoryServer
[hadoop@MASTER ~]$ mr-jobhistory-daemon.sh start historyserver參考
[1]https://bit1129.iteye.com/blog/2170665
[2]https://www.w3cschool.cn/apache_pig/
[3]http://www.aboutyun.com/thread-6713-1-1.html
總結
以上是生活随笔為你收集整理的Pig的安装及基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: buuctf-杂项二维码
- 下一篇: html输入页码跳转,WordPress