Pig Latin是pig的腳本語言,由operation 和 transformation 組成。每一個操做或變換都是對輸入進行數據處理,而後產生輸出結果。這些操做總體上描述了一個數據流的輸入輸出。
Pig內部,這些變換操做被轉換成一系列的MapReduce 做業。與MapReduce同樣,Pig是爲數據批處理而設計的,操做對象至少是一個整個的文件。同時pig的每次輸出位置必須是一個全新的文件夾html
相似sql的存儲過程,pig支持把一系列命令放到一個文件中,使用命令 「pig <你的pig文件以.pig結尾>」運行。Pig scripts能夠指定local或者mapreduce的運行方式.能夠設置pig的環境變量
Pig scripts經過run命令執行時屬於交互模式,有上下文的概念,腳本內能夠訪問前面定義的alias,腳本的全部命令在Shell執行記錄中可見。經過exec命令執行時屬於非交互模式。java
pig可讓用戶使用自定義函數,函數使用java編寫,打包到一個jar文件裏。使用 「REGISTER <jar文件>」註冊這個jar包,使得咱們可使用其中的函數。
UDFs能夠用多種語言來寫,如python,ruby。可是運行時實際上是jython jruby之類的,速度慢的離奇不怎麼推薦。
ps: LinkedIn貢獻了很多好的udf,稱爲DataFu你能夠試一試。
再ps:pig內置函數的文檔寫的很是好--》http://pig.apache.org/docs/r0.10.0/func.html。python
選用cloudera的 pig0.11.0-cdh4.3.0
選用理由:依據cloudera的特點,cloudera知名,有實力,商用性強,生態系統組件完善,且各個組件版本對應正確,文檔維護好。sql
申請的機器:
192.168.2.21 Pig shell
假設你已經安裝好了
配置過程:
Pig的安裝是很是的簡單的,在Pig安裝根目錄的conf文件夾裏,建立一個pig.properties文件,裏邊配置一些java的運行時常量,或者修改一些設置。
配置HADOOP_HOME的環境變量指向hadoop的主目錄。shell
運行YARN的話你須要設置環境變量apache
export HADOOP_MAPRED_HOME=yarn的目錄 設置這個的目的就是爲了讓 classpath裏邊載入yarn的jar包。若是你的yarn包與HADOOP_HOME在一個目錄這個環境變量是能夠不須要設置的。
export PIG_CONF_DIR=pig的配置文件目錄ruby
使用HBase的話你還須要設置
export PIG_CLASSPATH=你運行的程序可能須要用到這2個jar包(hbase-0.94.6-cdh4.3.0-security.jar:zookeeper-3.4.5-cdh4.3.0.jar),找到相應位置函數
bin/pig
進入grunt 命令行窗口,在pig命令行窗口你能夠很方便的使用hdfs的管理命令。grunt
接下來就是編寫你的Pig scripts,跟UDFs 用戶自定義函數.oop