hdfs:error Initialization failed for block pool Block pool registering service

el/2024/7/24 2:33:46

一、执行start-dfs.sh后,datenode没有启动

  查看日志如下:  

2014-06-18 20:34:59,622 FATAL org.apache.Hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block pool <registering> (Datanode Uuid unassigned) service to localhost/127.0.0.1:9000
Java.io.IOException: Incompatible clusterIDs in /usr/local/hadoop/hdfs/data: namenode clusterID = CID-af6f15aa-efdd-479b-bf55-77270058e4f7; datanode clusterID = CID-736d1968-8fd1-4bc4-afef-5c72354c39ce

at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:472)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:225)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:249)
at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:929)
at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:900)
at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:274)
at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:220)
at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:815)
at java.lang.Thread.run(Thread.java:744)

 

从日志中可以看出,原因是因为datanode的clusterID 和 namenode的clusterID 不匹配

 

打开hdfs-site.xml里配置的datanode和namenode对应的目录,分别打开current文件夹里的VERSION,可以看到clusterID项正如日志里记录的一样,确实不一致,修改datanode里VERSION文件的clusterID 与namenode里的一致,再重新启动dfs(执行start-dfs.sh)再执行jps命令可以看到datanode已正常启动。

 

出现该问题的原因:在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时namenode的clusterID会重新生成,而datanode的clusterID 保持不变。





http://www.ngui.cc/el/5557066.html

相关文章

CentOS 开启关闭防火墙

CentOS 6: 1&#xff09; 永久性生效&#xff0c;重启后不会复原 开启&#xff1a; chkconfig iptables on 关闭&#xff1a; chkconfig iptables off 2&#xff09; 即时生效&#xff0c;重启后复原 service iptables status 查看防火墙状态 service iptables …

lxc如何修改配置参数

Linux 容器的资源管理 https://www.ibm.com/developerworks/cn/linux/1404_caojh_lxc/

Linux Container(LXC容器)基本命令使用简介

lxc能做什么: 可以为容器绑定特定的cpu和memory&#xff0c;分配特定比例的cpu时间、IO时间&#xff0c;限制可以使用的内存大小&#xff08;包括内存和swap空间&#xff09;&#xff0c;提供device访问控制&#xff0c;提供独立的namespace&#xff08;网络、pid、ipc、mnt、u…

perf stat 输出解读

perf stat 输出解读 原文链接&#xff1a;http://zhengheng.me/2015/11/12/perf-stat/ task-clock&#xff1a;用于执行程序的CPU时间&#xff0c;单位是ms(毫秒)。第二列中的CPU utillized则是指这个进程在运行perf的这段时间内的CPU利用率&#xff0c;该数值是由task-clock除…

centos的SSH远程连接服务慢的解决方法

连接慢的主要原因是DNS解析导致 解决方法&#xff1a; 1、在ssh服务端上更改/etc/ssh/sshd_config文件中的配置为如下内容&#xff1a; UseDNS no # GSSAPI options GSSAPIAuthentication no 然后&#xff0c;执行/etc/init.d/sshd restart重启sshd进程使上述配置生效&#xff…

java字符串处理常用函数(数字型和字符串转换,字符串拆分、查找、截取)

一、字符串转化成数字型 String s "123.456 "; //要确保字符串为一个数值&#xff0c;否则会出异常 double d Double.parseDouble(s); float f Float.parseFloat(s); String s "123 "; int i Integer.parseInt(s); 二、…

linux mac和windows换行符的区别

Unix系统里&#xff0c;每行结尾只有“<换行>”&#xff0c;即“\n”&#xff1b; Windows系统里面&#xff0c;每行结尾是“ <回车><换行>”&#xff0c;即“\r\n”&#xff1b; Mac系统里&#xff0c;每行结尾是“<回车>”。 一个直接后果是&#…

centos系统有多个内核,修改默认启动内核

打开系统文件 vim /boot/grub/grub.conf 默认由0开始计数&#xff0c;因此须将default值改为0即可。 重启服务器 reboot ----------------------------- #boot/dev/sda default1 timeout5 splashimage(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-194.17.1.el…

一台linux机器配置多个物理网卡,导致的上不了网的问题

鄙人因为实验的需要配置了多个物理网卡&#xff0c;每个物理网卡用网线都与同一台交换机相连。eth0配置了静态IP&#xff08;static&#xff09;&#xff0c;eth1&#xff0c;eth2&#xff0c;eth3&#xff0c;eth4&#xff08;dhcp&#xff09;都动态分配&#xff0c;配置完成…

CentOS升级内核(elrepo-kernel-lt)--非编译方法

最近在研究ceph的安装&#xff0c;发现块设备的挂载需要内核支持rbd模块。 但centos系列的内核默认是不带这个模块的&#xff0c;所以就需要升级内核&#xff0c;简单的办法就是使用 elrepo的内核&#xff0c;该内核中包含了rbd模块。 安装方式非常的简单&#xff0c;可以安装…