2016-10-05 8 views
2

Hadoopの単語数の例では、map関数で単語と1つを中間結果としてファイルに書き出し、reduceを使用して合計を行います。キーが単語で値がカウントであるマッパー関数でハッシュマップを使用しないでください.1つの単語が1つのファイルの中で複数回出現すると、その単語の値が追加されます。マッパー関数の最後に、結果を書き出します。Hadoopの単語数

このようにして、コンバイナを使用しても、元のデザイン(コンバイナを使用しない)よりも効率的ですが、効率は同等でなければなりません。

アドバイスはありますか?

答えて

1

はい、ハッシュマップも使用できます。しかし、ソリューションを設計する際に最悪のシナリオを検討する必要があります。

通常、ブロックのサイズは128 MBであり、単語の長さに関しては、繰り返しの数が少ないか少ないと考えられます。この場合、あなたは多くの言葉を持っています。 HashMapのエントリの数が増加し、より多くのメモリを消費します。同じデータノード上でさまざまなジョブが動作する可能性があることを考慮する必要があります。したがって、このHashMapはRAMの消費量が多くなり、他のジョブも遅くなります。また、HashMapのサイズが大きくなると、Rehashingを実行してジョブの実行に時間を追加する必要があります。

+0

メモリが原因である可能性があります。 – Robin

+0

メモリ消費量が増えると、最終的にジョブの実行が遅くなります。 – Azim