2

同じキーで分散され、結合条件でこれらのキー列を使用するテーブルを結合すると、netezza の各 SPU (マシン) は他とは 100% 独立して動作します ( nz-interviewを参照)。

ハイブにはバケット化されたマップ結合がありますが、データノードへのテーブルを表すファイルの配布は HDFS の責任であり、ハイブの CLUSTERED BY キーに従って行われません!

同じキーで CLUSTERED BY された 2 つのテーブルがあり、そのキーで結合するとします。ハイブは、一致するバケットが同じノードに配置されるという保証を HDFS から取得できますか? それとも、小さなテーブルの一致するバケットを、大きなテーブル バケットを含むデータノードに常に移動する必要がありますか?

ありがとう、イド

(注: これは私の前の質問のより良い言い回しです: Hive/hadoop は、各マッパーがローカルのデータで動作することをどのように保証しますか? )

4

1 に答える 1

0

データのブロックをどこに保存するかを HDFS に伝えることはできないと思います。
次のトリックを検討できます。これは、小さなクラスターで行うことができます。テーブルの 1 つのレプリケーション ファクターを、クラスター内のノード数に近いか等しい数に増やすことです。
その結果、参加プロセス中に、適切なデータが必要なノードにほぼ常に (または常に) 存在します。

于 2011-08-05T08:36:22.467 に答える