hadoop2 搭建 手工切换HA集群 ,为什么一直bind 我的 dfs.nameservices? 大神帮忙啊。。
这周一直在搭建hadoop2 手工切换 HA 集群。。 有四台机器, 下面是我集群的配置分布。
操作系统是: CentOS release 6.5 (Final) 64位。
s3,s4 为namenode
s5,s6为datanode
s3,s4,s5 journalnode
环境变量,ssh免密码登录 都已经配置好。
我的配置文件:
1) core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://cluster1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
</configuration>
2) hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>cluster1</value>
</property>
<property>
<name>dfs.ha.namenodes.cluster1</name>
<value>hadoop101,hadoop102</value>
</property>
<property>
<name>dfs.namenode.rpc-address.cluster1.hadoop101</name>
<value>s3:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.cluster1.hadoop101</name>
<value>s3:50070</value>
</property>
<property>
<name>dfs.namenode.rpc-address.cluster1.hadoop102</name>
<value>s4:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.cluster1.hadoop102</name>
<value>s4:50070</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled.cluster1</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://s3:8485;s4:8485;s5:8485/cluster1</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/usr/local/hadoop/tmp/journal</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.cluster1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
</configuration>
3) 其余的文件都不重要 ,我就不列举了。
1. 启动journal没有问题。
2. 对s3格式 化没有问题。
3. 启动s3的namenode就出问题 。
hadoop/sbin/hadoop-daemon.sh start namenode
我的主机名大部分都是是 s3,s4,s5,s6 ,cluster1 是 dfs.nameservices..
我特别不明白, 为什么启动的时候 , 一直帮定 cluster1 ,把这个 cluster1
当作一台主机来绑定呢? 那位大神遇到过这个问题?
NameNode metrics system stopped.
2015-01-23 10:52:04,086 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: NameNode metrics system shutdown complete.
2015-01-23 10:52:04,088 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Exception in namenode join
java.io.IOException: Failed on local exception: java.net.SocketException: Unresolved address; Host Details : local host is: "cluster1"; destination host is: (unknown):0;
at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:764)
at org.apache.hadoop.ipc.Server.bind(Server.java:422)
at org.apache.hadoop.ipc.Server$Listener.<init>(Server.java:534)
at org.apache.hadoop.ipc.Server.<init>(Server.java:2203)
at org.apache.hadoop.ipc.RPC$Server.<init>(RPC.java:897)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Server.<init>(ProtobufRpcEngine.java:505)
at org.apache.hadoop.ipc.ProtobufRpcEngine.getServer(ProtobufRpcEngine.java:480)
at org.apache.hadoop.ipc.RPC$Builder.build(RPC.java:742)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.<init>(NameNodeRpcServer.java:273)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createRpcServer(NameNode.java:510)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:493)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:684)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:669)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1254)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1320)
Caused by: java.net.SocketException: Unresolved address
请各位大神帮忙。。 谢谢!