こんにちは、私はビッグデータの初心者です。インターネット全体を検索して、まさにuberモードとは何かを見つけました。検索すればするほど、混乱してしまいます。誰かが私の質問に答えて私を助けてくれますか?
Hadoop2のUBERモードとは
通常、マッパーとリデューサーはResourceManager(RM)によって実行され、RMはマッパーとリデューサー用に個別のコンテナーを作成します。 Uber構成では、ApplicationMaster(AM)と同じプロセスでマッパーとリデューサーを実行できます。
ber jobs:
Uberジョブは、MapReduce ApplicationMaster内で実行されるジョブです。むしろ、RMと通信して、マッパーコンテナーとレデューサーコンテナーを作成します。 AMはマップを実行し、独自のプロセス内のタスクを削減し、起動してリモートコンテナーと通信するオーバーヘッドを回避します。
理由
小さいデータセットがある場合、または少量のデータでMapReduceを実行する場合、Uber構成は、MapReduceが通常マッパーおよびレデューサーフェーズで費やす追加時間を削減するのに役立ちます。
すべてのMapReduceジョブにUberを構成できますか?
現在のところ、マップのみのジョブと、1つの減速機を持つジョブがサポートされています。
Uberジョブは、複数のマッパーとリデューサーを組み合わせて単一のコンテナーを使用するときに発生します。 mapred-site.xml
のUber Jobsの構成には、4つのコア設定があります。 Uberジョブの構成オプション:
mapreduce.job.ubertask.enable
mapreduce.job.ubertask.maxmaps
mapreduce.job.ubertask.maxreduces
mapreduce.job.ubertask.maxbytes
詳細はこちらをご覧ください: http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.1.15/bk_using-Apache-hadoop/content/uber_jobs.html
Hadoop2.xに関しては、Uberジョブはmapreduce ApplicationMaster自体で起動されるジョブです。つまり、mapおよびreduceジョブ用に個別のコンテナーは作成されないため、 コンテナを作成してコンテナと通信するオーバーヘッドが節約されます。
作業(hadoop 1.xおよび2.xを使用)に関する限り、用語は1.xおよび2.xの用語に関してのみ観察可能で、作業に違いはありません。
構成パラメーターは、Navneet Kumarの回答で言及されたものと同じです。
PS: 小さいデータセットでのみ使用してください。
「Uberモードとは何ですか?」に対してかなり良い答えが与えられます。 「理由」の情報を追加するだけです
アプリケーションマスターは、MapReduceジョブを構成するタスクの実行方法を決定します。ジョブが小さい場合、アプリケーションマスターは、それ自体と同じJVMでタスクを実行することを選択できます。これは、1つのノードでタスクを順番に実行する場合と比較して、新しいコンテナでタスクを割り当てて実行するオーバーヘッドが、並列で実行する場合のゲインを上回ると判断した場合に発生します。
今、質問は「小さな仕事として適格なものは何ですか?
デフォルトでは、小さなジョブとは、10個未満のマッパー、1つのリデューサー、および1つのHDFSブロックのサイズより小さい入力サイズを持つジョブです。