問題タブ [hadoop2]
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.
hadoop - Hadoop: データノードが起動していません
Centos 6.5 システムに Hadoop バージョン 2.2 をインストールしましたが、コマンド start-dfs.sh を使用すると、. マスター PC とスレーブ PC でデータノードが起動しません。データノードのログを添付しています。
強いテキスト これは私が start-dfs.sh と start-yarn.sh を実装した方法です
マスターおよびスレーブ IP アドレスに関する現在の情報
Hadoop Namenode -format は私にこれを与えます
java - Hadoop (糸):マッパー入力セパレーターを設定しますか?
MR ジョブのマップ機能で受け取るキーと値のペアに異なるセパレータを設定できるようにしたいと考えています。
たとえば、私のテキストファイルには次のものが含まれている可能性があります。
私のマップ関数では、各要素のキーをJohn、値を23などにします。
次に、出力セパレーターを設定すると
レデューサーは最初の「-」までキーを取得し、その後すべての値を取得しますか? または、レデューサーにも変更を加える必要がありますか?
ありがとう
hadoop - mapreduce ジョブの map フェーズの出力は常にソートされていますか?
Mapper から得た出力に少し混乱しています。
たとえば、次の入力テキストを使用して単純なワードカウント プログラムを実行すると、次のようになります。
これは私が得る出力です:
ご覧のとおり、マッパーからの出力は既にソートされています。私はまったく走りませんでしたReducer
。しかし、別のプロジェクトで、マッパーからの出力がソートされていないことがわかりました。だから私はこれについて完全に明確です..
私の質問は次のとおりです。
- マッパーの出力は常にソートされていますか?
- 並べ替えフェーズはすでにマッパー フェーズに統合されているため、マップ フェーズの出力は中間データで既に並べ替えられていますか?
- フェーズからデータを収集し、
sort and shuffle
Reducer に送られる前に保持する方法はありますか? レデューサーには、キーとイテラブルのリストが表示されます。このデータを永続化する方法はありますか?
java - MapReduce のグローバル変数またはプロパティ?
ジョブの完了後に確認できる、MR ジョブのマップ フェーズである種の変数またはフラグを設定できるようにしたいと考えています。いくつかのコードで私が望むものを示す最良の方法だと思います: ps 私は Hadoop 2.2.0 を使用しています
hadoop - Hadoop 入力分割ダンプ
特定のタスクが失敗した場合、このタスクが実行されている入力分割のダンプを取得して、入力およびリモート デバッグのその部分でジョブをローカルで実行できるようにすることはできますか?
hadoop - Jobtracker で Hadoop 2.2.0 が Accepted 状態のままスタックする
シンプルな 1 ノード Hadoop セットアップを実行しようとしています (1 マネージャーと 1 ワーカーのように)。仮想クラスターは、どちらのマシンでも問題なく動作しています。しかし、実際のクラスターに変更しようとすると、ジョブが開始ACCEPTED
され、ジョブ トラッカーの状態でスタックします。map/reduce をまったく開始しません (map 0% reduce 0% も表示されず、アプリケーション ID が表示され、空白になります)。
構成ファイルを変更して、正しい量のメモリを使用しようとしました。しかし、それは常に同じ結果になります。wordcount を実行しようとしたときの DEBUG ログとともに、構成ファイルを次に示します。
「cloud1 sent X」/「cloud1 received X」が重複していたため、一部の DEBUG 行を削除しました。そうしないと、ログが長すぎて投稿できませんでした。
また、2台のコンピューターの仕様は次のとおりです。
- comp1(マネージャー):8コアXeon、16GB RAM、2TB HDD
- comp2(ワーカー):6コアXeon、8GB RAM、2TB HDD
core-site.xml
hdfs-site.xml
mapred-site.xml
ヤーンサイト.xml
そしてデバッグログ:
hadoop - コンバイナーはどこでマッパー出力を結合しますか? Map-reduce ジョブの map フェーズまたは reduce フェーズで?
コンバイナーは、ローカル マップ タスクで動作するレデューサーのようなものであるという印象を受けました。つまり、出力転送のネットワーク帯域幅を削減するために、個々のマップ タスクの結果を集約します。
そして、読んでみるHadoop- The definitive guide 3rd edition
と、私の理解は正しいようです。
第2章(34ページ)より
コンバイナー関数 多くの MapReduce ジョブは、クラスターで使用できる帯域幅によって制限されるため、マップ タスクとリデュース タスク間で転送されるデータを最小限に抑えることが重要です。Hadoop を使用すると、マップ出力で実行するコンバイナ関数を指定できます。コンバイナ関数の出力は、reduce 関数への入力を形成します。コンバイナ関数は最適化であるため、Hadoop は特定のマップ出力レコードに対して何回呼び出すかを保証しません。つまり、コンバイナ関数を 0 回、1 回、または何度も呼び出すと、レデューサから同じ出力が生成されます。
そこで、単語数の問題について次のことを試しました。
カウンターは次のとおりです。
そしてここにありますpart-m-00000
:
したがって、明らかにコンバイナーは適用されません。Hadoop は、コンバイナーが呼び出されるかどうかをまったく保証しないことを理解しています。しかし、reduce フェーズをオンにすると、コンバイナーが呼び出されます。
この動作の理由
今、第 6 章 (208 ページ) を読んだときhow MapReduce works
。で説明されているこの段落を参照してくださいReduce side
。
map 出力が十分に小さい場合、reduce タスク JVM のメモリにコピーされます (バッファのサイズは、この目的に使用するヒープの割合を指定する mapred.job.shuffle.input.buffer.percent によって制御されます)。それ以外の場合は、ディスクにコピーされます。メモリ内バッファがしきい値サイズ (mapred.job.shuffle.merge.percent で制御) に達するか、マップ出力のしきい値数 (mapred.inmem.merge.threshold) に達すると、マージされてディスクにスピルされます。コンバイナーが指定されている場合、マージ中に実行され、ディスクに書き込まれるデータの量が削減されます。
この段落からの私の推論は次のとおりです。1)コンバイナーは削減フェーズでも実行されます。
hadoop - 通話詳細レコードのデータを処理できるように、hadoop を実装する必要がありますか?
HDFS、Datanode、namenode、および hbase を構成しました。CDR csv ファイルを HDFS に保存しました。では、どうすればそれを Hbase にマップして、処理できるように準備できるのでしょうか?