問題タブ [hadoop-streaming]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - hadoop クラスタ: map タスクはすべてではなく 1 つのマシンでのみ実行されます
hadoop cluster of three machines
1台のマシンがマスターとスレーブの両方として機能 する場所があります。
wordcount-exampleを実行すると、worker1
との 2 台のマシンで map タスクが実行されworker2
ます。 しかし、自分のコードを実行すると、それは 1 台のマシンでしかworker1
実行されません。すべてのマシンでマップ タスクを実行するにはどうすればよいでしょうか?
修繕!!!
の構成に次を追加し、mapred-site.xml
修正しました
python - hadoop-streaming : Python インポートの問題
単独で実行すると正常に動作するマッパーがありますが、hadoop コマンドで実行すると ImportError が発生します
コード:
コマンドラインで実行すると
Hadoop で実行すると、次のようなエラーが表示されます。
hadoop - hadoopストリーミングジョブがレポートに失敗しますか?
すべてのジョブはhadoop-streamingを使用して正常に実行されていましたが、突然、ワーカーマシンの1つが原因でエラーが発生し始めました。
質問:
ありがとうございました
python - hadoop-streaming: レデューサーが保留状態で、起動しませんか?
次のようないくつかの失敗したマップタスクが表示されるまで、正常に実行され ていたマップ削減ジョブがあります
そして今、リデューサーは実行を開始しませんが、以前はリデューサーがマップタスクの実行中でもデータのコピーを開始していましたが、私が見るのはこれだけです
私は初心者でhadoop
、mapreduce
以前は正常に実行されていた同じコードが失敗する原因が何であるかを本当に知りません
助けてください
ありがとうございました
hadoop - Map/Reduce では、reduce のみを再起動できますか?
map/reduce ジョブで reduce ジョブのみを再起動することはできますか? 私の推測では「いいえ」ですが、誰かがそれについて他の考えを持っているかどうかを知りたいだけです.
python - hadoop-streaming : 保留状態のタスクを減らすと、「タスクを減らす余地がありません」と表示されます。
マップ タスクは正常に完了し、アプリケーション ログを確認できますが、リデューサーは保留状態のままです
reduce タスクを見ると、
hadoop-hduser-jobtracker-master.log を見ると、次のように表示されます。
この問題を解決するにはどうすればよいですか?
助けてください
python - hadoop-streaming : タスクの計算を減らして入力サイズを減らす方法は? そしてそれを修正する方法は?
jobtracker ログに次のように表示されます。
- hadoop がレデューサー入力を176511226508と計算する方法を知りたいです。
- それぞれ 70 ギガの小さなワーカー ノードが 2 つと、リデューサーが 1 つあります。この問題を解決するにはどうすればよいですか?
by increasing the number of reducers?
python - MapReduceの結果を減らす効率的な方法は?
データセットでngramカウントを取得するMapReduceジョブを作成しました。結果は、100個の300MBファイルの形式になります<ngram>\t<count>
。これらを1つの結果に結合したいのですが、結合の試みが数回失敗しました(「タスクトラッカーがなくなりました」)。タイムアウトが8時間でしたが、このクラッシュは約8.5時間発生したため、関連している可能性があります。私は#reducers = 5(ノードの数と同じ)を持っていました。エラーはそれを示していないようですが、たぶん私はもっと時間を残す必要があります。ノードが過負荷になり、応答しなくなっているのではないかと思います。私の理論では、私のレデューサーはいくつかの最適化を使用できます。
私はcat
マッパーに使用しており、レデューサーには次のPythonスクリプトを使用しています。
更新:
コメントの1つでほのめかしたように、Hadoopによって自動的にどのような並べ替えが行われるかについて混乱しています。Web UIでは、レデューサーのステータスには、「並べ替え」と「削減」を含むいくつかの異なるフェーズが表示されます。このことから、Hadoopはマッパー出力をreduceに送信する前に並べ替えると仮定しますが、並べ替えがレデューサーに送信されるすべてのデータに対して行われるのか、それとも削減される前の各ファイルに対して行われるのかは明確ではありません。言い換えれば、私のマッパーは100フィールドを取得し、これを400の出力に分割します。cat
-それらをレデューサーに送信すると、レデューサー(合計5つ)がそれぞれこれらの80ストリームを受信します。ソートは80をすべて結合しますか、それとも1をソートし、それを減らしますか。等?グラフに基づいて、実際の動作を明らかに示していない可能性がありますが、ソートプロセスは削減の前に実行されます。並べ替えですべての入力ファイルが並べ替えられる場合は、レデューサーを簡略化してすべてのカウントの辞書を保存せず、キーが変更されたらキーとtotalCountのペアを出力することができます。
コンバイナーの使用に関しては、私が削減しようとしている100個のファイルで、削減しているデータがすでに削減されているため、これが私の場合には有益ではないと思います。私の#ノード=#レデューサー(5&5)なので、レデューサーがまだ行っていないことを組み合わせるものは何もありません。
hadoop - 完全に分散された Hadoop/MapReduce プログラムで、個々のノードがローカル入力ファイルを読み取れるようにする方法はありますか?
各ノードがいくつかの入力で一連の C++ Hadoop ストリーミング タスクを実行する、完全に分散された Hadoop/MapReduce インスタンスをセットアップしようとしています。ただし、すべての入力タスクを HDFS に移動したくはありません。代わりに、各ノードのローカル フォルダーから入力データを読み取る方法があるかどうかを確認したいと考えています。
とにかくこれを行うことはありますか?
編集: 実行したいhadoopコマンドの例は、次のようなものです:
この場合、各ノードに保存されているデータは /data/ ディレクトリにあり、出力を各ノードの /output/ ディレクトリに送りたいと考えています。map_example および reducer_example ファイルは、すべてのノードでローカルに利用できます。
マスターノードで実行される場合、すべてのスレーブノードが基本的にx個のノードで同じタスクを実行し、各ノードにローカル出力ファイルを生成するHadoopコマンドを実装するにはどうすればよいでしょうかローカル入力ファイル)?
ありがとう