hadoop.tmp.dir は何でなければなりませんか?
質問
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
彼らの価値観の中で
dfs.name.dir
:namenode がメタデータを保存するディレクトリ (デフォルト値)${hadoop.tmp.dir}/dfs/name
.dfs.data.dir
:HDFS データ ブロックが保存されるディレクトリ (デフォルト値)${hadoop.tmp.dir}/dfs/data
.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 /。だからあなたはできる それへのデータの書き込みがたくさんます。