私は非常に大量のデータに対してハンプジョブを実行しようとしており、最大32のレデューサーを使用しています。しかし、各減速機の出力を見ると、複数の減速機が(もちろん異なる値の)キーを取得することがあります。より多くのレデューサーを使用している間、この現象を回避できますか?Hadoopはキーを複数のレデューサープールに分割しますか?
LE:代わりにTextクラスを試してみましたが、正常に動作しますが、ヒープスペースが不足してjvmがクラッシュするという問題がありました。 compareToとは別に、キープールにデータを分割するためにhadoopが使用する基準は何ですか?
私は投機的実行オフが、まだ運になってきました、また、私は0.95で減速を開始するためのしきい値を設定して、そして彼らはまだ複数のプールを取得します。 – skyel
カスタムコンパレータを使用していますか?複数のレデューサーが同じキーを取得していることをどのように知っていますか? –
タプルであるためにキーが必要なので、私のキー用のwritableComparableクラスを実装しています。そして、compareToのタプル内の各文字列を比較します。すべてのレデューサーはアウトプット内の1行だけを出力し、異なるレデューサー出力ファイルに分割された同じ行のコピーを持っています – skyel