我目前正在使用hadoop 1.2.1(因为我需要运行空间处理软件才支持此版本)。我尝试在多节点模式下部署一个主服务器和三个从服务器。
我确信我能够在没有密码(包括他们自己)的情况下在所有主服务器和从服务器之间进行ssh。此节点上的主机名也是正确的。 每个节点共享相同的主机文件:
192.168.56.101 master
192.168.56.102 slave1
192.168.56.103 slave2
192.168.56.104 slave3
我一直在奴隶节点遇到问题,错误日志信息如下,
2015-05-21 23:39:16,841 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.lang.IllegalArgumentException: Does not contain a valid host:port authority: file:///
at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:164)
at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:212)
at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:244)
at org.apache.hadoop.hdfs.server.namenode.NameNode.getServiceAddress(NameNode.java:236)
at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:359)
at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:321)
at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1712)
at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1651)
at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1669)
at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1795)
at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:181
core-site.xml中的配置
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
在mapred-site.xml中:
<configuration>
<property>
<name>mapred.job.tracter</name>
<value>master:8012</value>
</property>
</configuration>
在hdfs-site.xml中:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration
答案 0 :(得分:4)
节点主机名的命名约定可能存在问题。 确保它们不包含&#34; _&#34;等符号。 检查Wikipedia是否有限制。
答案 1 :(得分:2)
尝试更改&#34; master&#34;在所有配置文件中的实际IP地址。
答案 2 :(得分:0)
你说好了。运行命令“$ HADOOP_HOME / sbin / start-dfs”后需要运行命令“ $ HADOOP_HOME / bin / hdfs namenode -format master ”