2

HadoopMapreduceとPig環境について質問があります。このスレッドでは、PigラテンコードがPigシステムによってインターペット化されていることがわかりました。

最初に、Pigがmapメソッドとreduceメソッドを使用して.jarファイルを作成すると思いました。次に、このファイルをHadoop Mapreduce環境に「送信」して、mapreduceジョブを実行します(これはPigの開発者の将来の作業です)。

では、HadoopMapreduceがPigSystemで正確に使用されるのはいつですか?ピッグラテンコードの解釈中のどこかにありますか?または、別の言葉で質問すると、Hadoop Mapreduceへの入力として送信されるPigの出力は何ですか?

ご回答ありがとうございます。

4

2 に答える 2

3

MapReduce の役割は「実行エンジン」と言えます。システムとしての Pig は、Pig Latin コマンドを 1 つ以上の MR ジョブに変換しています。Pig 自体にはそれらを実行する機能はありません。この作業は Hadoop に委任されます。
コンパイラと OS の類推を構築します。OSがプログラムを実行している間に、コンパイラがプログラムを作成します。このアナロジーでは、Pig はコンパイラーであり、Hadoop は OS です。
Pig はもう少し処理を行います。ジョブを実行したり、監視したりします。したがって、コンパイラであることに加えて、「シェル」と見なすことができます。
私の理解では、Pig は次の観点から 100% コンパイラではありません。コマンドごとに MR ジョブをコンパイルするわけではありません。既存のジョブに何をすべきかについての情報を渡します (私は 99% 確信していますが、ここでは 100% 確信していません)。

于 2012-08-30T10:55:42.183 に答える
2

Pigsの演算子の実装は、HadoopsのAPIを使用しています。そのため、構成に応じて、ジョブはローカルモードまたはHadoopクラスターで実行されます。PigはHadoopに出力を渡していません...map-reduceジョブの入力タイプとデータの場所を設定します。

Pig Latinは、結合、フィルター、group by、order by、unionなどの一連の標準データ処理操作を提供します。これらの操作は、map-reduceジョブにマップされます。Pig Latinスクリプトは、有向非巡回グラフ(DAG)を記述します。ここで、エッジはデータフローであり、ノードはデータを処理する演算子です。

于 2012-08-30T13:53:25.923 に答える