質問

Hadoopには構成パラメータがあります hadoop.tmp.dir ドキュメントによれば、これは `「他の一時ディレクトリのベース。」 このパスはローカル ファイル システムを参照していると思われます。

この値を次のように設定しました /mnt/hadoop-tmp/hadoop-${user.name}. 。ネームノードをフォーマットしてすべてのサービスを開始すると、まったく同じパスが HDFS 上に作成されていることがわかります。

これはつまり、 hadoop.tmp.dir の一時的な場所を指します HDFS?

役に立ちましたか?

解決

これは混乱していますが、hadoop.tmp.dirがローカルに一時ディレクトリのベースとして使用され、また、中にのHDFS の。文書は素晴らしいではありませんが、mapred.system.dir"${hadoop.tmp.dir}/mapred/system"にデフォルトで設定されており、この定義上のパスのHDFS のどこどこマップ/フレームワークの店舗にシステムファイルを削減します。

あなたはこれらを一緒に接続されないようにしたい場合は、

、あなたはmapred.system.dirの定義はmapred-site.xml

に関連付けられていない何かであるように、あなたの${hadoop.tmp.dir}を編集することができます

他のヒント

kkruglerの答えにもう少し追加しましょう。

HDFS プロパティには次のものが 3 つあります。 hadoop.tmp.dir 彼らの価値観の中で

  1. dfs.name.dir:namenode がメタデータを保存するディレクトリ (デフォルト値) ${hadoop.tmp.dir}/dfs/name.
  2. dfs.data.dir:HDFS データ ブロックが保存されるディレクトリ (デフォルト値) ${hadoop.tmp.dir}/dfs/data.
  3. fs.checkpoint.dir:セカンダリ ネームノードがチェックポイントを保存するディレクトリ。デフォルト値は次のとおりです。 ${hadoop.tmp.dir}/dfs/namesecondary.

これが、あなたが見た理由です。 /mnt/hadoop-tmp/hadoop-${user.name} namenode をフォーマットした後の HDFS 内。

は、この1については、周りを見ていました。私が思い付くことができる唯一の事は Amazonで弾性にこのポストでしたMapReduceのデベロッパーガイドするます:

  Hadoopの-site.xmlで

、我々はセット   hadoop.tmp.dirへ   / mntには/ var / libに/ Hadoopを/ tmpに。 / mntはどこです   私たちは、「余分な」EC2ボリュームをマウント   これは、より多くのデータよりを含めることができます   デフォルトのボリューム。 (正確な量   インスタンスタイプによって異なります。)のHadoopの   RunJar.java(アンパックモジュール   入力JARファイル)を解釈   Hadoopのファイルシステムとしてhadoop.tmp.dir   パスではなく、ローカルパス、それ   HDFS内のパスへの書き込みの代わりに、   ローカルパス。 HDFSは、下にマウントされ   / MNT(具体的には   / mntには/ var / libに/ Hadoopの/ DFS /。だからあなたはできる   それへのデータの書き込みがたくさんます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top