pig的各種運行模式與運行方式詳解


一、pig的運行模式:

    Pig 有兩種運行模式: Local 模式和 MapReduce 模式。當 Pig 在 Local 模式運行的時候, Pig 將只訪問本地一台主機;當 Pig 在 MapReduce 模式運行的時候, Pig 將訪問一個 Hadoop 集群和 HDFS 的安裝位置。這時, Pig 將自動地對這個集群進行分配和回收。因為 Pig 系統可以自動地對 MapReduce 程序進行優化,所以當用戶使用 Pig Latin 語言進行編程的時候,不必關心程序運行的效率, Pig 系統將會自動地對程序進行優化。這樣能夠大量節省用戶編程的時間。

 

測試示例如下:

 

本地模式:pig -x local test.pig  偽分布式模式下使用

 

 MapReduce模式:pig test.pig(或者pig -x mapreduce test.pig,pig test.pig為其簡寫形式)  全分布式下使用

 

二、pig運行方式:

Pig 的 Local 模式和 MapReduce 模式都有三種運行方式,分別為: Grunt Shell 方式、腳本文件方式和嵌入式程序方式。下面我們將對其進行一一介紹。

 1.Local 模式:

 ( 1 ) Grunt Shell 方式

    用戶使用 Grunt Shell 方式時,需要首先使用命令開啟 Pig 的 Grunt Shell ,只需在 Linux 終端中輸入如下命令並執行即可:

    $pig –x local

      這樣 Pig 將進入 Grunt Shell 的 Local 模式,如果直接輸入“ $pig ”命令, Pig 將首先檢測 Pig 的環境變量設置,然后進入相應的模式。如果沒有設置 MapReduce 環

      境變量, Pig 將直接進入 Local 模式。

      Grunt Shell 和 Windows 中的 Dos 窗口非常類似,這里用戶可以一條一條地輸入命令對數據進行操作。

( 2 ) 腳本文件方式

     使用腳本文件作為批處理作業來運行 Pig 命令,它實際上就是第一種運行方式中命令的集合,使用如下命令可以在本地模式下運行 Pig 腳本:

      $pig –x local script.pig

       其中,“ script.pig ”是對應的 Pig 腳本,用戶在這里需要正確指定 Pig 腳本的位置,否則,系統將不能識別。例如, Pig 腳本放在“ /root/pigTmp ”目錄下,那

       么這里就要寫成“ /root/pigTmp/script.pig ”。用戶在使用的時候需要注意 Pig 給出的一些提示,充分利用這些能夠幫助用戶更好地使用 Pig 進行相關的操作 。

( 3 ) 嵌入式程序方式

      我們可以把 Pig 命令嵌入到主機語言中,並且運行這個嵌入式程序。和運行普通的 Java 程序相同,這里需要書寫特定的 Java 程序,並且將其編譯生成對應的 class 文

      件或 package 包,然后再調用 main 函數運行程序。用戶可以使用下面的命令對 Java 源文件進行編譯:

      $javac -cp pig-*.*.*-core.jar local.java

      這里“ pig-*.*.*-core.jar ”放在 Pig 安裝目錄下,“ local.java ”為用戶編寫的 java 源文件,並且“ pig-*.*.*-core.jar ”和“ local.java ”需要用戶正確地指定相應的       位置。例如,我們的“ pig-*.*.*-core.jar ”文件放在“ /root/hadoop-0.20.2/ ”目錄下,“ local.java ”文件放在“ /root/pigTmp ”目錄下,所以這一條命令我們應       該寫成:$javac -cp /root/hadoop-0.20.2/ pig- 0 . 20 . 2 -core.jar /root/pigTmp/ local.java當編譯完成后, Java 會生成“ local.class ”文件,然后用戶可以通過          如下命令調用執行此文件。

       $ java -cp pig-*.*.*-core.jar:. Local

 

 2.MapReduce 模式

(1 ) Grunt Shell 方式

    用戶在 Linux 終端下輸入如下命令進入 Grunt Shell 的 MapReduce 模式:

  $pig –x mapreduce

( 2 ) 腳本文件方式

   用戶可以使用如下命令在 MapReduce 模式下運行 Pig 腳本文件。

   $pig –x mapreduce script.pig

 (3 ) 嵌入式程序

    和 Local 模式相同,在 MapReduce 模式下運行嵌入式程序同樣需要經過編譯和執行兩個步驟。用戶可以使用如下兩條命令,完成相應的操作。

     javac -cp pig-0.7.0-core.jar mapreduce.java

     java -cp pig-0.7.0-core.jar:. mapreduce


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM