关于Hadoop集群HDFS启动问题:NameNode启动正常,DataNode启动报错ERROR: Cannot set priority of namenode process 19826
出了问题第一步一定要先看日志!看日志!看日志!
DataNode日志文件在Hadoop目录下的logs文件夹
[root@hadoopb ~]$ cat $HADOOP_HOME/logs/hadoop-root-datanode-hadoopb.log
以下列举两种问题的解决方法:
1.最常见的就是对NameNode进行了多次格式化操作,格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除集群中所有机器的data和logs目录(格式化之前需要重新创建一个logs目录,不然会提示找不到logs目录,导致失败)然后再进行格式化。
[root@hadoopb hadoop]$ rm -rf data logs
[root@hadoopb hadoop]$ mkdir logs
[root@hadoopc hadoop]$ rm -rf data logs
[root@hadoopc hadoop]$ mkdir logs
[root@hadoopd hadoop]$ rm -rf data logs
[root@hadoopd hadoop]$ mkdir logs
[root@hadoopb hadoop]$ bin/hdfs namenode -format
再次启动HDFS,用jps命令查看DataNode启动情况
[root@hadoopb hadoop]$ sbin/start-dfs.sh
[root@hadoopb hadoop]$ jps
2.
主要原因是hdfs配置文件写错了!(也是我这次报错的原因)
停止HDFS,检查hdfs-site.xml文件中配置的路径是否有问题,改完记得分发到集群中其他机器上!!!
再次启动HDFS就成功了