最近在学习hadoop的HA,遇到了一个很奇葩的问题,记录一下解决办法
问题1:多次格式化 namenode 后,出现 datanode 启动后自动关闭
出错原因:是因为和格式化 namenode 之前的文件发生冲突
解决办法:将 namenode 存放临时文件的目录下的文件全部删除,然后重新格式化
问题2:格式化成功以后,启动 journalnode ,namenode ,datanode 后,发现运行 bin/hdfs dfs -ls / 出现
-ls java.net.Unknowhostname
出错原因:是因为 hdfs-site.xml 配置文件中如下位置的配置出错
</property>
<name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property>
解决办法:配置上面的代码到 hdfs-site.xml 文件中即可
总结:对于hadoop 的 HA 的配置,一定要注意如下几点:
1> 启动 namenode 进程前,必须先启动 journalnode 进程
2> 使用 hdfs 的文件系统相关命令时,必须在 namenode 状态为 active 的那台机上进行
3> 配置 HA 必须保证配置 namenode 节点的两台机器可以互相进行 SSH 免密码进行登陆
以上三点任何一条不通过,测试肯定会出错