特定の問題のMapReduceアルゴリズムを実装しようとしています。私のマッパーでは、大きなサイズのテキストオブジェクトを処理する必要があるとしましょう。私の質問は次の例に要約されています。私はテキストオブジェクトを持っています:Today is a lovely day
と私は言葉にいくつかの処理を行う必要があります。私は減速にキーと値のペア<1,Today is a lovely day>
を送信してから処理することができますHadoopのMapReduce - MapperからReducerにデータを送信する
<1,Today>
<1,is>
<1,a>
<1,lovely>
<1,day>
:私は、フォームの減速キーと値のペアに送信することができます
:だから私は2つのオプションがありますそれ、例えばStringオブジェクトをトークン化します。
この場合の最適な方法は何ですか?最初のケースでは、減速機にもっとデータを送る必要がありますが、2番目のケースと同様にトークン化するStringオブジェクトはありません。しかし、2番目のケースでは、Mapperが送信するデータの量が少なくなっています。
ありがとうございました(upvoted)。だから、基本的には、2番目のケースではデータを少なく(if)送信しますが、2番目のオプションを適用すると操作の面でより多くの利点があると言います。右? – thanasissdr
@thanasissdrあなたはどちらかから多かれ少なかれ恩恵を受けるとは言えませんが、私はこれらの2つのケースが異なるユースケースを対象としていると言います。第二の選択肢では、あなたが最初に行うことと反対に行うことはできません。 2番目のケースでは、データが少なくなります。これはおそらく想定しているほどの最終パフォーマンスには影響しません。あなたの時間の大部分は、マッパーとレデューサーによって実行される計算に費やされます。 – Alex