启动Hadoop start-dfs.sh时DataNode报hostname含无效字符问题求助
Hadoop 3.1.3启动start-dfs.sh时DataNode主机名无效字符问题解决(Ubuntu 20.04.1)
错误现象
执行start-dfs.sh时出现如下日志:
Starting namenodes on [hadoop01] Starting datanodes : hostname contains invalid characters : hostname contains invalid characters : hostname contains invalid characters Starting secondary namenodes [hadoop03]
解决步骤
检查并修正节点主机名
- 执行
hostname查看当前主机名,确认是否包含下划线、特殊符号等不符合DNS规范的字符(Hadoop主机名仅允许字母、数字、连字符)。 - 编辑
/etc/hostname文件,替换为合法主机名(如hadoop01、hadoop02)。 - 执行
hostnamectl set-hostname 新主机名使主机名立即生效,无需重启系统。
- 执行
修正Hadoop配置文件中的主机名
- 编辑
$HADOOP_HOME/etc/hadoop/workers文件,确保每行一个DataNode主机名,且均为合法名称,无特殊字符。 - 检查
core-site.xml和hdfs-site.xml中的配置项(如fs.defaultFS、dfs.namenode.secondary.http-address),确认其中的主机名合法且正确。
- 编辑
修正/etc/hosts映射
- 编辑
/etc/hosts文件,配置集群节点IP与合法主机名的对应映射,示例格式:192.168.1.101 hadoop01 192.168.1.102 hadoop02 192.168.1.103 hadoop03 - 执行
ping hadoop01验证主机名解析是否正常。
- 编辑
清理临时目录并重新格式化(若已格式化过NameNode)
- 停止所有Hadoop服务:
stop-all.sh。 - 删除DataNode存储目录(默认路径为
/tmp/hadoop-${USER}/dfs/data,具体以hdfs-site.xml中dfs.datanode.data.dir配置为准)。 - 重新格式化NameNode:
hdfs namenode -format。 - 再次启动DFS服务:
start-dfs.sh。
- 停止所有Hadoop服务:
内容的提问来源于stack exchange,提问作者RayZen
相关产品推荐
相关产品推荐

