2017-09-09 34 views
1

當我嘗試命令hadoop版本 - 其工作正常。 的Hadoop的NameNode -format命令也工作正常 命令start-dfs.sh - 不工作 我在[本地主機] 本地主機越來越 開始namenodes:不良端口 'localhost' 的 本地主機:不良端口 'localhost' 的 啓動輔助名稱節點[0.0.0.0]start-dfs.sh - 不工作 - localhost:壞端口'localhost'(Hadoop 2.7.2)

請找到下面的配置文件,謝謝。

芯SITE.XML

<configuration> 
    <property> 
    <name>fs.default.name</name> 
    <value>hdfs://localhost:9000</value> 
    </property> 
</configuration> 

HDFS-site.xml中

<configuration> 
    <property> 
    <name>dfs.replication</name> 
    <value>1</value> 
    </property> 
    <property> 
    <name>dfs.permission</name> 
    <value>false</value> 
    </property> 
    <property> 
    <name>dfs.namenode.name.dir</name> 
    <value>/home/.../hadoop-2.7.2/hadoop2_data/hdfs/namenode</value> 
    </property> 
    <property> 
    <name>dfs.datanode.data.dir</name> 
    <value>/home/.../hadoop-2.7.2/hadoop2_data/hdfs/datanode</value> 
    </property> 
</configuration> 

紗線的site.xml

<configuration> 
    <property> 
    <name>yarn.nodemanager.aux-services</name> 
    <value>mapreduce_shuffle</value> 
    </property> 
    <property> 
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> 
    <value>org.apache.hadoop.mapred.ShuffleHandler</value> 
    </property> 
</configuration> 

hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 

mapred-site.xml中

<configuration> 
<property> 
<name>mapreduce.framework.name</name> 
<value>yarn</value> 
</property> 
</configuration> 

主機

127.0.0.1 localhost 
127.0.1.1 arun 

# The following lines are desirable for IPv6 capable hosts 
::1  ip6-localhost ip6-loopback 
fe00::0 ip6-localnet 
ff00::0 ip6-mcastprefix 
ff02::1 ip6-allnodes 
ff02::2 ip6-allrouters 

bashrc中

#adding this 

export HADOOP_HOME=/home/arun/my_work/hadoop/hadoop-2.7.2 
export HADOOP_CONF_DIR=/home/arun/my_work/hadoop/hadoop-2.7.2/etc/hadoop 
export HADOOP_MAPRED_HOME=$HADOOP_HOME 
export HADOOP_COMMON_HOME=$HADOOP_HOME 
export HADOOP_HDFS_HOME=$HADOOP_HOME 
export YARN_HOME=$HADOOP_HOME 
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib" 


export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 
export PATH="$PATH:/usr/lib/jvm/java-7-openjdk-amd64/bin" 


export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin 
export HADOOP_PID_DIR=/home/.../hadoop-2.7.2/hadoop2_data/hdfs/pid 

雖然乳寧命令./sbin/start-dfs.sh得到下面的錯誤。

Starting namenodes on [localhost] 
localhost: Bad port 'localhost' 
localhost: Bad port 'localhost' 
Starting secondary namenodes [0.0.0.0] 
0.0.0.0: Bad port '0.0.0.0' 

回答

0

同樣的問題,我面對,並按照以下步驟固定,

1)SSH本地主機應該得到迴應。如果不是,請安裝ssh並關閉所有終端,重新啓動ssh,然後執行/ etc/sbin中的start-dfs.sh
2)在hadoop-env.sh中檢查HADOOP_OPTS = -Djava.net.preferIPv4Stack = true

0

有時hadoop將舊的配置文件保留在緩存中,我多次遇到這些類型的問題。儘管你的配置文件對我來說看起來很好,但我懷疑你最初可能錯誤地給出了「localhost」作爲端口號,並試圖啓動hdfs。之後,您確實修復了配置並嘗試重新啓動hdfs,但您的舊配置仍在緩存中。重新啓動服務器應該有所幫助。

0

嘗試在您的hadoop-env.sh和其他位置檢查HADOOP_SSH_OPTS。我有同樣的問題,原因是我在HADOOP_SSH_OPTS中有一些未完成的參數,如

export HADOOP_SSH_OPTS="-p" 
相關問題