Hadoop完全分布式环境下,DataNode进程正常启动,但是网页上不显示DataNode节点

在Hadoop完全分布式环境中,上传文件至HDFS时遇到DataStreamerException错误,提示文件复制失败,原因是DataNode未正常运行。实际检查发现DataNode进程已启动,但Hadoop界面显示LiveNodes为0。解决此问题需检查/etc/hosts文件中是否正确配置了从节点的hostname到ip的映射,并在NameNode的hdfs-site.xml中禁用IP与hostname的校验。

Hadoop完全分布式环境下,上传文件到hdfs上时报错:

19/05/15 11:03:12 WARN hdfs.DFSClient: DataStreamer Exception
org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /wc_input/file1.txt._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1).  There are 0 datanode(s) running and no node(s) are excluded in this operation.
	at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget4NewBlock(BlockManager.java:1550)
	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getNewBlockTargets(FSNamesystem.java:3110)
	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:3034)
	at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:723)
	at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:492)
	at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamen
Hadoop 完全分布式配置中,master 节点使用 jps 命令后进程出现完全的原因及解决办法如下: ### 原因 #### 配置文件问题 配置文件存在错误或一致是常见原因。例如,`core-site.xml`、`hdfs-site.xml`、`yarn-site.xml` 和 `mapred-site.xml` 等文件中的参数配置错误,可能导致某些进程无法正常启动。若 `fs.defaultFS` 参数配置错误,NameNode 可能无法正常工作,从而在 jps 结果中缺失 NameNode 进程。 #### 主机名和 IP 地址问题 集群中各节点的主机名和 IP 地址配置错误或一致,会影响节点之间的通信。若 `/etc/hosts` 文件中 IP 地址和主机名映射错误,节点之间无法正常通信,部分进程可能无法启动。 #### 数据目录问题 数据目录权限足或数据目录被损坏,会影响进程正常运行。NameNode 和 DataNode 的数据目录若权限足,可能导致 NameNode 或 DataNode 无法启动。 #### 进程冲突 之前启动进程没有正确停止,导致端口被占用,新的进程无法启动。若上次启动的 ResourceManager 没有正常停止,再次启动时会因端口被占用而失败。 #### 格式化问题 若 NameNode 没有正确格式化,或在集群运行过程中多次格式化 NameNode,会导致数据一致,部分进程无法正常启动。 ### 解决办法 #### 检查配置文件 仔细检查 `core-site.xml`、`hdfs-site.xml`、`yarn-site.xml` 和 `mapred-site.xml` 等配置文件,确保参数配置正确且各节点之间的配置一致。例如: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> </configuration> ``` #### 检查主机名和 IP 地址 确保各节点的主机名和 IP 地址配置正确,`/etc/hosts` 文件中 IP 地址和主机名映射正确,且各节点之间可以通过主机名相互访问。 #### 检查数据目录 检查 NameNode 和 DataNode 等数据目录的权限,确保 Hadoop 进程有足够的权限读写这些目录。若数据目录被损坏,可以尝试删除并重新格式化 NameNode: ```bash hdfs namenode -format ``` #### 解决进程冲突 使用 `jps` 命令查看正在运行的进程,使用 `kill` 命令停止必要的进程,释放被占用的端口。例如: ```bash jps kill -9 <进程 ID> ``` #### 重新格式化 NameNode 若怀疑 NameNode 格式化有问题,可以删除所有节点上的 `tmp/` 和 `logs/` 目录,然后重新格式化 NameNode 并启动集群[^1]。 ```bash rm -rf /path/to/tmp /path/to/logs hdfs namenode -format start-dfs.sh start-yarn.sh ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值