我正在使用hadoop的cloudera发行版,最近不得不更改集群中几个节点的ip地址。更改后,在其中一个节点(旧ip:10.88.76.223,新ip:10.88.69.31)上,当我尝试启动数据节点服务时出现以下错误。
Initialization failed for block pool Block pool BP-77624948-10.88.65.174-13492342342 (storage id DS-820323624-10.88.76.223-50010-142302323234) service to hadoop-name-node-01/10.88.65.174:6666
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.protocol.DisallowedDatanodeException): Datanode denied communication with namenode: DatanodeRegistration(10.88.69.31, storageID=DS-820323624-10.88.76.223-50010-142302323234, infoPort=50075, ipcPort=50020, storageInfo=lv=-40;cid=cluster25;nsid=1486084428;c=0)
at org.apache.hadoop.hdfs.server.blockmanagement.DatanodeManager.registerDatanode(DatanodeManager.java:656)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.registerDatanode(FSNamesystem.java:3593)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.registerDatanode(NameNodeRpcServer.java:899)
at org.apache.hadoop.hdfs.protocolPB.DatanodeProtocolServerSideTranslatorPB.registerDatanode(DatanodeProtocolServerSideTranslatorPB.java:91), I was unable to start the datanode service due to the following error:
有没有人成功地更改了hadoop数据节点的ip地址并将其加入集群而不丢失数据?
2条答案
按热度按时间qnzebej01#
最好是:
从群集中解除服务器的运行,以确保所有块都复制到群集中的其他节点。
从群集中删除服务器
连接到服务器并更改ip地址,然后重新启动cloudera代理
注意,cloudera管理器现在显示了这个服务器的两个条目。删除旧ip和最长心跳时间的条目
将服务器添加到所需集群,并将所需角色添加回服务器(例如hdfs datanode、hbase rs、yarn)
hdfs将读取所有数据磁盘并识别块池和集群id,然后注册datanode。
所有的数据都将是可用的,过程对任何客户都是透明的。
注意:如果遇到hdfs客户机的名称解析错误,应用程序很可能缓存了旧的ip,很可能需要重新启动。特别是以前引用此服务器的java客户端(例如hbase客户端),由于jvm缓存IP,必须重新启动。基于java的客户机可能会抛出与连接到具有更改的ip的服务器有关的错误,因为在重新启动之前,它们会缓存旧的ip。
6ovsh4lw2#
在cloudera manager中更改主机ip
更改所有节点上的主机ip
如果主节点ip发生更改,请在所有节点上编辑ipcloudera config.ini
在postgresql数据库中更改ip
对于密码,请打开postgresql password
查找密码行
打开postgresql
postgresql中的select表
更新表ip
退出工具
在所有节点上重新启动服务
重新启动主节点上的服务