web-dev-qa-db-ja.com

hadoop.tmp.dirはどうあるべきですか?

Hadoopには設定パラメータhadoop.tmp.dirがあり、これはドキュメントに従って、 `"他の一時ディレクトリのベースです。 "私は、このパスはローカルファイルシステムへ。

この値を/mnt/hadoop-tmp/hadoop-${user.name}に設定しました。 namenodeをフォーマットしてすべてのサービスを開始した後、HDFSで作成されたまったく同じパスが表示されます。

つまり、hadoop.tmp.dir[〜#〜] hdfs [〜#〜]

27
Shashikant Kore

混乱を招きますが、hadoop.tmp.dirはローカルの一時ディレクトリのベースとして使用され、[〜#〜] hdfs [〜#〜]でも使用されます。ドキュメントはすばらしいですが、mapred.system.dirはデフォルトで"${hadoop.tmp.dir}/mapred/system"に設定されており、これにより[〜#〜] hdfs [〜#〜]のパスが定義されますMap/Reduceフレームワークがシステムファイルを格納する場所。

これらを結び付けたくない場合は、mapred-site.xmlを編集して、mapred.system.dirの定義が${hadoop.tmp.dir}に関連付けられていないようにすることができます。

31
kkrugler

Kkruglerの答えにもう少し追加してみましょう:

値にhadoop.tmp.dirを含む3つのHDFSプロパティがあります

  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です。

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

25
darcyq

これに関する情報を見て回った。私が思いつくことができる唯一のものは、 Amazon Elastic MapReduce Dev Guide のこの投稿でした:

Hadoop-site.xmlで、hadoop.tmp.dirを/ mnt/var/lib/hadoop/tmpに設定しました。/mntは、「追加の」EC2ボリュームをマウントする場所です。デフォルトのボリュームよりも多くのデータを含めることができます。 (正確な量はインスタンスのタイプによって異なります。)HadoopのRunJar.Java(入力JARをアンパックするモジュール)は、hadoop.tmp.dirをローカルパスではなくHadoopファイルシステムパスとして解釈するため、代わりにHDFSのパスに書き込みますローカルパスの。 HDFSは/ mnt(具体的には/ mnt/var/lib/hadoop/dfs /)の下にマウントされています。そのため、大量のデータを書き込むことができます。

3
Binary Nerd