OpenSuse Tumbleweed 20170703でHadoop 2.8.2で単一の擬似分散ノード(localhost)をセットアップしました。Javaバージョンは1.8.0_151です。一般的に、それは正しく設定されているようです。私はエラーなしなどとnamenode
の書式を設定できHadoop fs -lsは、hdfsボリュームのファイルではなく、現在の作業ディレクトリのファイルを出力します。
私がしようとしたときしかし、現在の作業ディレクトリからhadoop fs -ls
、ファイル/ディレクトリが(現時点では何もないはずです)hdfs
ボリュームファイルを返す予想される動作ではなく、返されます。
this guide for CentOS(必要に応じて変更)とApache Hadoop guideに続いていました。
私はそれが設定上の問題だと思っていますが、なぜそうなるのかわかりません。私はcore-site.xml
とhdfs-site.xml
で遊んだことがあります。
/opt/hadoop-hdfs-volume/
があり、ユーザグループhadoop
のユーザhadoop
に割り当てられています。 /opt/hadoop/
ディレクトリ(ビンの場合)と同じです。
EDIT:
/tmp/hadoop-hadoop/dfs/name
はどこhdfs namenode -format
コマンドが実行されます。 /tmp/
も私のユーザ(/tmp/hadoop-dijksterhuis
)とhadoop
ユーザディレクトリを保持しているようです。
これは私には以下の*-site.xml
設定ファイルを考慮すると奇妙に思えます。
ディレクトリの.sh
スクリプトを使用してdfs
とyarn
サービスを再起動しようとしました。また再起動しました。いいえ、運がない!
コア-site.xmlの:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-hdfs-volume/${user.name}</value>
</property>
</configuration>
HDFS-site.xmlを:
<configuration>
<property>
<name>dfs.datanode.data.dir</name>
<value>${hadoop.tmp.dir}/dfs/data</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>${hadoop.tmp.dir}/dfs/name</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
誰もが任意のアイデアがありますか?必要に応じて詳細を提供することができます。
hadoop
ユーザーの.bashrc
に$HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop
を追加します。