本文介绍在EMR集群对NameNode格式化后如何启动NameNode。
具体报错
ERROR namenode.NameNode: Failed to start namenode.
问题原因
在EMR集群上以root用户权限执行命令hadoop namenode -format对NameNode格式化,启动NameNode需要切换为hdfs用户,但hdfs用户对这些root用户拥有的文件没有权限,从而无法启动NameNode。
解决方案
停止所有HDFS服务,包括NameNode、DataNode等相关服务。
切换到hdfs用户执行格式化操作。
su hdfs hadoop namenode -format
hadoop namenode -format属于高危操作,会格式化hdfs,删掉里面的所有元数据。由于用户已使用root用户执行过,所以当前hdfs中没有数据才执行该命令。
如果在执行格式化操作时仍然有部分目录报权限问题,请给hdfs用户授权后再执行格式化操作。
执行以下命令重启服务。
/usr/lib/hadoop-current/sbin/hadoop-daemon.sh start namenode
验证服务是否正常。
执行以下命令查看文件是否能正常读写。
hadoop fs -ls hadoop fs -put hadoop fs -get
执行一个MapReduce作业,验证YARN是否正常。
该文章对您有帮助吗?
- 本页导读 (1)
- 具体报错
- 问题原因
- 解决方案