apache-pigapache-pigを使い始める


備考

このセクションでは、apache-pigの概要と、なぜ開発者がそれを使いたいのかを概説します。

また、apache-pig内の大きなテーマについても言及し、関連するトピックにリンクする必要があります。 apache-pigのドキュメンテーションは新しいので、これらの関連トピックの初期バージョンを作成する必要があります。

インストールまたはセットアップ

Linux

要件(r0.16.0)

必須

現在のApache-Pig ドキュメントでは、 Unix およびWindows オペレーティングシステムのみをサポートしています。

  • Hadoop 0.23.X、1.Xまたは2.X
  • Java 1.6以降のバージョンがインストールされ、JAVA_HOME環境変数がJavaのインストールディレクトリに設定されている

オプション

  • Python 2.7以上(Python UDF)
  • Ant 1.8(ビルド用)

最新のPigリリースをダウンロードする

http://pig.apache.org/releases.html#Downloadから最新バージョンのブタをダウンロードしてください

インストール

mkdir Pig
cd Downloads/ 
tar zxvf pig-(latest-version).tar.gz 
tar zxvf pig-(latest-version).tar.gz 
mv pig-(latest-version).tar.gz/* /home/Pig/
 

構成

Apache Pigをインストールしたら、それを設定する必要があります。

.bashrcファイルを開きます。

vim ~/.bashrc
 

.bashrcファイルで、次の変数を設定します。

export PIG_HOME = /home/Pig
export PATH  = PATH:/home/Pig/bin
 

ファイルを保存し、bashrcを環境内で再読み込みします。

. ~/.bashrc
 

豚のバージョンを確認する

pig –version 
 

インストールが成功すると、上記のコマンドはインストールされているPigのバージョン番号を表示します。

豚のインストールのテスト

pig -h
 

これは、ブタに関連するすべての可能なコマンドを表示するはずです

あなたの豚はローカルにインストールされ、ローカルパラメータを使用して実行することができます

pig -x local
 

Hadoopに接続する

Hadoop1.xまたは2.xがクラスタにインストールされていて、HADOOP_HOME環境変数が設定されている場合。

前のように.bashrcに行を追加することで、豚とHadoopを接続することができます

export PIG_CLASSPATH = $HADOOP_HOME/conf
 

ランニングブタ

実行モード

あなたはpig (bin / pig)コマンドを使用するか、 jar ファイル(java -cp pig.jar)を実行することによってPigを実行できます。

PIG スクリプトは3つの異なるモードで実行できます:

  • ローカルモード

     pig -x local ...
     
  • Mapreduceモード (デフォルトモード)

     pig -x mapreduce ...
          (or)
     pig ...
     
  • Tezローカルモード

     pig -x tez ...
     

インタラクティブモード

豚は、 Grunt シェルを使用してインタラクティブモードで実行できます。 Pigラテンのステートメントとコマンドは、このシェルで対話的に入力できます。

$ pig -x <mode> <enter>
grunt>
 

Mode は、前のセクションで説明した実行モードの1つです。

バッチモード

豚はバッチモードでも実行できます。ここでは、豚のステートメントとコマンドのリストを含む.pig ファイルが提供されています。

$ pig -x <mode> <script.pig>
grunt>
 

同様に、 Mode は、前のセクションで説明した実行モードの1つです。

豚とは何ですか?

PigはHadoopで並列にデータフローを実行するためのエンジンを提供します。これらのデータフローを表現するための言語Pig Latinが含まれています。 Pig Latinには、従来のデータ操作(結合、ソート、フィルターなど)の多くのオペレーター、ユーザーがデータの読み取り、処理、および書き込みのための独自の機能を開発する機能が含まれています。 PigはApacheのオープンソースプロジェクトです。これは、ユーザーがソースまたはバイナリとして自由にダウンロードし、それ自身で使用し、貢献し、Apache Licenseの条項の下で自ら使用し、自社の製品で使用し、適切に変更することを意味します。

豚の単語数の例

入力ファイル

Mary had a little lamb
its fleece was white as snow
and everywhere that Mary went
the lamb was sure to go.
 

ピッグワードカウントコード

-- Load input from the file named Mary, and call the single
-- field in the record 'line'.
input = load 'mary' as (line);

-- TOKENIZE splits the line into a field for each word.
-- flatten will take the collection of records returned by
-- TOKENIZE and produce a separate record for each one, calling the single
-- field in the record word.
words = foreach input generate flatten(TOKENIZE(line)) as word;

-- Now group them together by each word.
grpd = group words by word;

-- Count them.
cntd = foreach grpd generate group, COUNT(words);

-- Print out the results.
dump cntd;
 

出力

Mary,2
had,1
a,1
little,1
lamb,2
its,1
fleece,1
was,2
white,1
as,1
snow,1
and,1
everywhere,1
that,1
went,1
the,1
sure,1
to,1
go,1