2017-12-28 31 views
0

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.xmlhdfs-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スクリプトを使用してdfsyarnサービスを再起動しようとしました。また再起動しました。いいえ、運がない!


コア-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を追加します。

答えて

0

another SO answerを経由して修正をハックすることができました。

これは、etc/hadoop-env.shの値を上書きするという効果があります。これは、名前ノードをデフォルトのtmp/hadoop-${user-name}ディレクトリに指定し続けます。

source .bashrc et voila!問題は修正されました。

関連する問題