1. 程式人生 > >Pig latin

Pig latin

語句 hbase store 腳本 ngs dep 訪問 轉換 web

pig的兩種運行模式,local模式,mapreduce模式

local模式下,pig只能訪問本地一臺;在mapreduce模式下,pig可以訪問一個hadoop集群和hdfs的安裝位置。這時,pig將自動對這個集群進行分配和回收。因為pig系統可以自動對mapreduce程序進行優化,所以當用戶使用pig latin編程時,不必關系程序的運行效率,pig系統會自動對程序進行優化。

pig的local模式以及mapreduce模式都是有三種運行模式:Grunt shell方式,腳本文件方式,嵌入式程序方式

mapreduce模式下:

1 .grunt shell 方式

[root@host pig-0.17.0]# pig -x mapreduce
18/06/15 09:40:34 INFO pig.ExecTypeProvider: Trying ExecType : LOCAL
18/06/15 09:40:34 INFO pig.ExecTypeProvider: Trying ExecType : MAPREDUCE
18/06/15 09:40:34 INFO pig.ExecTypeProvider: Picked MAPREDUCE as the ExecType
2018-06-15 09:40:34,951 [main] INFO org.apache.pig.Main - Apache Pig version 0.17.0 (r1797386) compiled Jun 02 2017, 15:41:58
2018-06-15 09:40:34,951 [main] INFO org.apache.pig.Main - Logging error messages to: /root/pig/pig-0.17.0/pig_1529026834950.log
2018-06-15 09:40:34,971 [main] INFO org.apache.pig.impl.util.Utils - Default bootup file /root/.pigbootup not found
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/root/hadoop/hadoop-2.7.4/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/root/hbase-1.4.4/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/root/hive/apache-hive-2.1.1/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
2018-06-15 09:40:35,586 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address
2018-06-15 09:40:35,586 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: hdfs://localhost:9000
2018-06-15 09:40:36,347 [main] INFO org.apache.pig.PigServer - Pig Script ID for the session: PIG-default-cb6cead5-f22f-4960-bce7-5f44cdb722ec
2018-06-15 09:40:36,347 [main] WARN org.apache.pig.PigServer - ATS is disabled since yarn.timeline-service.enabled set to false
grunt>

2 .腳本文件方式

pig -x mapreduce script.pig

pig latin語言

與數據庫操作語言類似,但更側重於對數據的分析查詢,而不是對數據進行修改刪除等操作,運行在hadoop分布式平臺上,能夠在短時間內處理海量數據,如處理日誌文件,處理大型數據庫文件, 處理WEB數據等。

pigLatin的操作:通過對關系進行處理產生另外一組關系(適用於除load ,store以外的所有操作,load和store分別執行從文件系統的讀取和寫入操作)。

pig latin語句一條語句可以跨越多行,但是必須以半角的分號結束。

通常按照下面的流程編寫語句:

1.通過load語句從文件系統讀取數據

2.通過一系列的轉換語句對數據進行處理

3通過store語句把處理結果輸出到文件系統,或者使用一條dump語句把處理結果輸出到屏幕上。

Pig latin