Hadoop Pig チュートリアル: Apache Pig とは何ですか? Archi構造、例
Pig の紹介から始めます
Apache Pigとは何ですか?
Pig は、大規模なデータ セットの分析に役立つ高レベル プログラミング言語です。 Pig は Yahoo! での開発努力の成果です。
MapReduce フレームワークでは、プログラムを一連の Map および Reduce ステージに変換する必要があります。 ただし、これはデータ アナリストが精通しているプログラミング モデルではありません。 そこで、このギャップを埋めるために、Hadoop 上に Pig と呼ばれる抽象化が構築されました。
Apache Pig を使用すると、人々はさらに集中できるようになります。 バルク データ セットを分析し、Map-Reduce プログラムの作成時間を短縮します。 何でも食べる豚に似たアパッチ豚 プログラミング言語 あらゆる種類のデータを処理できるように設計されています。 だから名前は「ブタ」なんです!

この初心者向けの Apache Pig チュートリアルでは、次のことを学びます。
豚 Archi構造
その ArchiPig の構造は 2 つのコンポーネントで構成されます。
-
豚ラテン語、 どれが言語ですか
-
ランタイム環境、 PigLatin プログラムを実行するためのものです。
Pig Latin プログラムは、出力を生成するために入力データに適用される一連の操作または変換で構成されています。これらの操作は、Hadoop Pig 実行環境によって実行可能な表現に変換されるデータ フローを記述します。その下には、これらの変換の結果が一連の MapReduce ジョブとして存在しますが、プログラマーはそれを認識していません。つまり、ある意味では、Hadoop の Pig によって、プログラマーは実行の性質ではなくデータに集中できるようになります。
PigLatin は比較的強化された言語で、データ処理でおなじみのキーワード (結合、グループ、フィルターなど) を使用します。

実行モード:
Hadoop の Pig には XNUMX つの実行モードがあります。
-
ローカル モード: このモードでは、Hadoop Pig 言語が単一の言語で実行されます。 JVM ローカル ファイル システムを利用します。 このモードは、Hadoop で Pig を使用した小規模なデータセットの分析にのみ適しています。
-
Map Reduce モード: このモードでは、Pig Latin で記述されたクエリは次のように変換されます。 MapReduce ジョブは Hadoop クラスター上で実行されます (クラスターは擬似分散型または完全分散型です)。完全分散型クラスターを使用した MapReduce モードは、大規模なデータセットで Pig を実行する場合に便利です。
Pig をダウンロードしてインストールする方法
この Apache Pig チュートリアルでは、Pig をダウンロードしてインストールする方法を学びます。
実際のプロセスを始める前に、Hadoop がインストールされていることを確認してください。 ユーザーを「hduser」に変更します (Hadoop 構成中に使用される ID。Hadoop 構成中に使用されるユーザー ID に切り替えることができます)
ステップ1) 次のいずれかのミラー サイトから、Pig Hadoop の安定した最新リリースをダウンロードします。
http://pig.apache.org/releases.html
選択する tar.gz (ではなく src.tar.gz) ダウンロードするファイル。
ステップ2) ダウンロードが完了したら、ダウンロードした tar ファイルを含むディレクトリに移動し、その tar ファイルを Pig Hadoop をセットアップする場所に移動します。 この場合、/usr/local に移動します。
Pig Hadoop ファイルを含むディレクトリに移動します
cd /usr/local
以下のようにtarファイルの内容を抽出します。
sudo tar -xvf pig-0.12.1.tar.gz
ステップ3)。 修正します 〜/ .bashrc Pig 関連の環境変数を追加するには
店は開いています 〜/ .bashrc 任意のテキスト エディターでファイルを作成し、以下の変更を加えます。
export PIG_HOME=<Installation directory of Pig> export PATH=$PIG_HOME/bin:$HADOOP_HOME/bin:$PATH
ステップ4) 次に、以下のコマンドを使用してこの環境構成を取得します。
. ~/.bashrc
ステップ5) 再コンパイルする必要があります 豚 サポートへ ハドゥープ 2.2.0
これを行う手順は次のとおりです。
PIG ホームディレクトリに移動します
cd $PIG_HOME
Antをインストールする
sudo apt-get install ant
注: ダウンロードが開始され、インターネット速度に応じて時間がかかります。
PIG を再コンパイルする
sudo ant clean jar-all -Dhadoopversion=23
この再コンパイル プロセスでは、複数のコンポーネントがダウンロードされることに注意してください。 したがって、システムはインターネットに接続する必要があります。
また、このプロセスがどこかでスタックし、20 分以上コマンド プロンプトに動きが見られない場合は、 Ctrl + C 同じコマンドを再実行します。
私たちの場合、20分かかります
手順 6) テストする 豚 コマンドを使用したインストール
pig -help
Pig スクリプトの例
Pig スクリプトを使用して、各国で販売された製品の数を調べます。
入力: 入力データセットは CSV ファイルです。 SalesJan2009.csv
手順 1) Hadoopを開始する
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
手順 2) Pig in Big Data は次からファイルを取得します HDFS MapReduce モードで結果を HDFS に保存します。
ファイルをコピーする SalesJan2009.csv (ローカル ファイル システムに保存され、 ~/input/SalesJan2009.csv) HDFS (Hadoop 分散ファイル システム) ホーム ディレクトリへ
この Apache Pig の例では、ファイルはフォルダー入力にあります。 ファイルが他の場所に保存されている場合は、その名前を付けます
$HADOOP_HOME/bin/hdfs dfs -copyFromLocal ~/input/SalesJan2009.csv /
実際にファイルがコピーされたかどうかを確認します。
$HADOOP_HOME/bin/hdfs dfs -ls /
ステップ3) 豚の構成
まず、$PIG_HOME/conf に移動します。
cd $PIG_HOME/conf
sudo cp pig.properties pig.properties.original
店は開いています pig.properties 任意のテキスト エディタを使用して、ログ ファイルのパスを指定します。 pig.logfile
sudo gedit pig.properties
Loger はこのファイルを使用してエラーを記録します。
ステップ4) コマンド「pig」を実行すると、対話型シェル Pig クエリである Pig コマンド プロンプトが起動されます。
pig
ステップ5)Pig の Grunt コマンド プロンプトで、以下の Pig コマンドを順番に実行します。
— A. データを含むファイルをロードします。
salesTable = LOAD '/SalesJan2009.csv' USING PigStorage(',') AS (Transaction_date:chararray,Product:chararray,Price:chararray,Payment_Type:chararray,Name:chararray,City:chararray,State:chararray,Country:chararray,Account_Created:chararray,Last_Login:chararray,Latitude:chararray,Longitude:chararray);
このコマンドの後に Enter を押します。
— B. データをフィールド国ごとにグループ化する
GroupByCountry = GROUP salesTable BY Country;
— C. の各タプルについて 「国別グループ」、フォームの結果の文字列を生成します-> 国名: 販売された製品の数
CountByCountry = FOREACH GroupByCountry GENERATE CONCAT((chararray)$0,CONCAT(':',(chararray)COUNT($1)));
このコマンドの後に Enter を押します。
— D. データ フローの結果をディレクトリに保存する 'pig_output_sales' HDFS 上
STORE CountByCountry INTO 'pig_output_sales' USING PigStorage('\t');
このコマンドの実行には少し時間がかかります。完了すると、次の画面が表示されます。
ステップ6) 結果はコマンド インターフェイスから次のように確認できます。
$HADOOP_HOME/bin/hdfs dfs -cat pig_output_sales/part-r-00000
結果は Web インターフェイス経由でも確認できます。
Web インターフェースを介した結果 -
店は開いています http://localhost:50070/ Webブラウザーで。
今すぐ選択 「ファイルシステムを参照」 そして上まで移動します /user/hduser/pig_output_sales
店は開いています パート-r-00000





















