このセクションでは、apache-pigの概要と、なぜ開発者がそれを使いたいのかを概説します。
また、apache-pig内の大きなテーマについても言及し、関連するトピックにリンクする必要があります。 apache-pigのドキュメンテーションは新しいので、これらの関連トピックの初期バージョンを作成する必要があります。
要件(r0.16.0)
必須
現在のApache-Pig
ドキュメントでは、 Unix
およびWindows
オペレーティングシステムのみをサポートしています。
オプション
最新の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