問題タブ [mrv2]
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.
eclipse - 新しい MapReduce アーキテクチャと Eclipse
MapReduce 周辺の Hadoop では、いくつかの主要なリファクタリングが行われています。同じことに関する詳細は、以下の JIRA にあります。
https://issues.apache.org/jira/browse/MAPREDUCE-279
ResourceManager、NodeManager、および HistoryServer デーモンがあります。Eclipseでそれらを実行しようとした人はいますか? これにより、開発とデバッグが容易になります。
Hadoop フォーラムにメールを送信しましたが、誰も試していません。誰かがスタックオーバーフローで同様のことをしたかどうかを確認したかっただけです。
hadoop - 0.23 リリース (MRv2 または NextGen MR) でセットアップされた Hadoop クラスター
Hadoop の最新の安定版リリースは 0.20.x です。最新リリースは 0.23 です。. .20からの変更点が多いようです。0.23.x に。
安定したリリース (0.20.2) で小さなクラスターをセットアップし、mapreduce プログラミングを実践することができます。
0.23.x で追加された多くの新しい API を見てきました。0.23.x を探索するには、0.23.x リリースでもクラスターをセットアップする必要があります。
0.23.x リリースでクラスターをセットアップできるドキュメントを教えてください。
tarファイルを解凍すると、0.23.xは0.20.xとはまったく異なるようです。クラスタのセットアップが最初から言及されている参考書/ドキュメントを教えてください。
ありがとうMRK
hadoop - Hadoop の secondarynamenode の概念について
ドキュメント (http://hadoop.apache.org/common/docs/r0.20.203.0/hdfs_user_guide.html) に従って、secondarynamenode は hadoop0.20.203.0 リリース以降で非推奨になり、checkpointnode と backupnode に置き換えられました。しかし、クラスターセットアップドキュメント(http://hadoop.apache.org/common/docs/r0.20.203.0/cluster_setup.html)では、その変更について言及されていません。さらに、bin/start-dfs.sh は、conf/masters ファイルに記載されているアドレスで secondaryname ノードを開始します。
誰かが違いを提供できますか?構成が変更されていないということですか。secondarynamenode の内部アーキテクチャのみが変更されます。
また、hadoop0.23.0 リリースでは、セカンダリ ネーム ノードを開始する必要があるホスト アドレスを指定するために使用した conf/masters ファイルがありません。
ありがとうMRK
hadoop - Hadoop / Yarn(v0.23.3)疑似分散モードのセットアップ::ジョブノードなし
Hadoop / Yarn 2.x(具体的にはv0.23.3)を疑似分散モードでセットアップしました。
私は、多かれ少なかれそれを設定するための同じ処方箋を提供するいくつかのブログとウェブサイトの指示に従いました。また、O'reillyのHadoop本の第3版(皮肉なことに最も役に立たなかった)もフォローしました。
問題:
構成:
次の環境変数は、myとhadoopのUNIXアカウントプロファイルの両方に設定されています。〜/ .profile:
hadoop $ java -version
etc / hadoop / conf / hdfs-site.xmlでも指定されているNAMENODEおよびDATANODEディレクトリ:
次に、さまざまなXML構成ファイル(ここでもYARN / MRv2 / v0.23.3):
core-site.xml
mapred-site.xml
hdfs-site.xml
ヤーンサイト.xml
etc / hadoop / conf / saves
その他のまとめのメモ:
ありがとうございました!
hadoop - 同じノードで NodeManager と ResourceManager を結び付ける
(デフォルトで) Hadoop Yarn の「リソース マネージャー」と同じノードに「ノード マネージャー」はありますか? そうでない場合、それらを同じノードで実行することは可能ですか?
hadoop - コンテナがメモリ制限を超えて実行されています
Hadoop v1 では、それぞれ 7 つのマッパーとリデューサー スロットに 1GB のサイズを割り当てました。マッパーとリデューサーは問題なく動作します。私のマシンには 8G メモリ、8 プロセッサが搭載されています。YARN を使用して、同じマシンで同じアプリケーションを実行すると、コンテナー エラーが発生しました。デフォルトでは、次の設定があります。
それは私にエラーを与えました:
次に、mapred-site.xml でメモリ制限を設定しようとしました。
しかし、まだエラーが発生しています:
map タスクがこれほど多くのメモリを必要とする理由がわかりません。私の理解では、map/reduce タスクには 1GB のメモリで十分です。コンテナにより多くのメモリを割り当てると、タスクがより多くのメモリを使用するのはなぜですか? 各タスクがより多くの分割を取得するためですか? コンテナのサイズを少し小さくして、より多くのコンテナを作成して、より多くのタスクを並行して実行する方が効率的だと思います。問題は、各コンテナが処理できる以上の分割が割り当てられないようにするにはどうすればよいですか?
hadoop - Hadoop ストリーミング ジョブを送信し、Hadoop 2.x で実行履歴を確認する方法
私はHadoopの初心者です。Hadoop 1.X では、マスター ノードから Hadoop ストリーミング ジョブを送信し、namenode Web から結果と実行時間を確認できます。
以下は、Hadoop 1.X での Hadoop ストリーミングのサンプル コードです。
ただし、Hadoop 2.x では、ジョブ トラッカーは削除されています。Hadoop 2.X で同じ機能を取得するにはどうすればよいですか?
hadoop - MRv2 / YARN の機能
私は新しい API の実際の目的について頭を悩ませようとしており、インターネットで読んでいると、扱っていたのと同じ質問に対するさまざまな回答が見つかりました。
答えを知りたい質問は次のとおりです。
1) MRv2/YARN デーモンのうち、アプリケーション コンテナーの起動とアプリケーション リソースの使用状況の監視を担当するのはどれか。
2) MRv2/YARN が対処するように設計されている 2 つの問題はどれですか?
このスレッドを他の読者にとって有益で建設的なものにするために、私の検索から得たリソースと実際のデータを指定します。そのため、質問をして投稿するだけで十分な情報を提供しすぎたように見えないことを願っています。より短い。
最初の質問については、ドキュメントを読んで、頼りになる 3 つの主要なリソースを見つけることができました。
Hadoop のドキュメントから:
ApplicationMaster<-->NodeManager コンテナーを起動します。NMClientAsync オブジェクトを使用して NodeManager と通信し、NMClientAsync.CallbackHandler によってコンテナー イベントを処理します。
ApplicationMaster は YARN クラスターと通信し、アプリケーションの実行を処理します。非同期方式で操作を実行します。アプリケーションの起動時に、ApplicationMaster の主なタスクは次のとおりです。
a) ResourceManager と通信して、将来のコンテナーのリソースをネゴシエートおよび割り当てる。
b) コンテナーの割り当て後、YARN NodeManager (NM) に通信してアプリケーションコンテナーを起動します。
Hortonworks のドキュメントから
ApplicationMaster は、事実上、フレームワーク固有のライブラリのインスタンスであり、ResourceManager からのリソースをネゴシエートし、NodeManager と連携してコンテナーとそのリソース消費を実行および監視します。ResourceManager から適切なリソース コンテナーをネゴシエートし、それらの状態を追跡し、進行状況を監視する責任があります。
Cloudera のドキュメントから:
MRv2 デーモン -
ResourceManager – クラスタごとに 1 つ – ApplicationMasters を起動し、スレーブ ノードにリソースを割り当てます
ApplicationMaster – ジョブごとに 1 つ – リソースを要求し、個々の Map および Reduce タスクを管理します
NodeManager – スレーブ ノードごとに 1 つ – 個々のスレーブ ノードのリソースを管理します
JobHistory – クラスターごとに 1 つ – ジョブのメトリックとメタデータをアーカイブします
質問 (アプリケーション コンテナの起動とアプリケーション リソースの使用状況の監視を担当するデーモンはどれか) に戻ると、次のように自問します。
それはNodeManagerですか?それはApplicationMasterですか?
私が理解していることから、ApplicationMaster は NodeManager に実際に仕事をさせる人です。つまり、誰が箱を地面から持ち上げる責任があるのか を尋ねるようなものです。体を動かしてリフティングをさせます...
難しい質問だと思いますが、答えは 1 つしかありません。
2 番目の質問については、オンラインで読むと、多くのリソースからさまざまな回答を見つけることができたので混乱しましたが、私の主な情報源は次のとおりです。
Cloudera のドキュメントから:
MapReduce v2 (「MRv2」) – YARN の上に構築 (Yet"Another Resource NegoGator)
– ResourceManager/NodeManager アーキテクチャを使用
– クラスタのスケーラビリティを向上
– ノード リソースは、あらゆるタイプのタスクに使用できます
– クラスタの使用率を向上
– 非/MR ジョブのサポート
質問に戻ると (MRv2/YARN が対処するように設計されている 2 つの問題はどれですか?)、私は MRv2 が JobTracker へのリソースの圧迫を防ぐなどのいくつかの変更を行ったことを知っています (MRv1 では、クラスター内のノードの最大数は約 4000 になる可能性があり、 MRv2 はこの数の 2 倍以上です)。また、MPI などの MapReduce 以外のフレームワークを実行する機能を提供することもわかっています。
ドキュメントから:
Application Master は従来の ResourceManager の機能の多くを提供するため、システム全体をより劇的に拡張できます。テストでは、最新のハードウェアで構成された 10,000 ノード クラスターを重大な問題なくシミュレートしました。
と:
すべてのアプリケーション フレームワーク固有のコードを ApplicationMaster に移動すると、システムが一般化され、MapReduce、MPI、グラフ処理などの複数のフレームワークをサポートできるようになります。
しかし、NameNode が単一障害点であり、新しいバージョンには高可用性モードを介したスタンバイ NameNode があるという事実にも対処したと思います (古い API と新しい API の機能を混同している可能性があります。 MRv1 対 MRv2 であり、それが私の質問の原因かもしれません):
Hadoop 2.0.0 より前は、NameNode は HDFS クラスターの単一障害点 (SPOF) でした。各クラスタには単一の NameNode があり、そのマシンまたはプロセスが使用できなくなった場合、NameNode が再起動されるか、別のマシンで起動されるまで、クラスタ全体が使用できなくなります。
では、3 つのうち 2 つを選択する必要がある場合、MRv2/YARN が対処するように設計されている 2 つの問題として機能する 2 つはどれでしょうか?
-JobTracker のリソース プレッシャー
-MPI など、MapReduce 以外のフレームワークを実行する機能。
- NameNode の単一障害点。
前もって感謝します!D
hadoop - MRv1 および MRv2 パラメータ
パラメーターの全リスト (Hadoop-2.6 用) はリンクに記載されています
ただし、MRv1 または MRv2 スタイルのいずれかでジョブを実行できます。のように MRv1 にのみ適用されるパラメータがいくつかあると思いますがmapreduce.tasktracker.map.tasks.maximum
、これは本当ですか? はいの場合、そのようなパラメーターをすべて把握するためのよりスマートな方法はありますか? -Dproperty=value または -D property=value を介してすべてのパラメーターを渡すことができますか、またはこのように渡すことができないパラメーターはありますか?