私の知る限り、Mapreduce には pig を使用できます。また、java も使用できます。どのシナリオでどのシナリオを使用するか説明していただけますか?
質問する
1210 次
1 に答える
3
Pig (または Hive) で実行できる場合は、Pig (または Hive) で実行します。
それ以外の場合は、Java MapReduce で行います。
豚の利点:
- CSV のような構造化データは、読み込みと使用が非常に簡単です。
- Javaよりそれほど遅くない
- Java レベルのバグが発生しにくい
- 読み書きがより簡単に
- コンパイルする必要はありません: 保守が容易で、展開が容易です
最初は Pig では実行できないと思われ、Java を使用したいと思われることがいくつかありますが、詳細を理解すれば、Pig で実行できるようになります。
- Java でユーザー定義ローダーを作成できます。いずれにせよ、その複雑なデータ形式を解析する Java を作成するつもりなので、Pig Loader でそれを実行してみませんか?
- ネスト
map
とbag
データ型は階層データ構造をうまくモデル化できますが、おそらく大量の UDF を作成する必要があります。 - Pig で Java MapReduce を使用できます。これにより、Pig で難しい操作を行うことができますが、他の場所ではより簡単な操作を行うことができます。
ここにいくつかありますが、要点はわかります。Pig は非常にカスタマイズ可能であり、一般的に Java を記述することは少なくなります。
基本的なことは簡単です。階層データ構造やカスタム ロードなどは、少し手間をかけるだけで実行できます。さて、何が残っていますか?
- MapReduce が意図していないことを行うためのパーティショナーのエキゾチックな使用。
- 本当に厄介なデータ形式または完全に構造化されていないデータ (ビデオ、オーディオ、生の人間が読めるテキスト)
- DistributedCache で複雑な操作を行う (基本的なことは と で実行でき
JOIN
ますUSING 'replicated'
)
Pig ではできなかったことを他の人がコメントに追加してくれることを願っています。
于 2012-12-27T14:11:13.960 に答える