Mac OS安装Hadoop执行sbin/start-dfs.sh报错问题求助
问题根因
你的报错完全是/etc/hosts配置不符合规范导致的,同时存在两个次要问题需要同步修复:
- hosts文件要求格式为「IP地址 无协议/无端口的纯域名」,你配置的
0.0.0.0 https://account.jetbrains.com:443、1.2.3.4 http://www.jetbrains.com两行带了HTTP/HTTPS协议前缀和端口号,不符合hosts语法,导致Hadoop解析主机名时把带/的错误字符串识别为secondary namenode地址,执行sed命令时/和sed默认分隔符冲突,抛出替换命令错误。 - 已存在运行中的datanode进程,启动脚本检测到冲突报错。
hadoop-env.sh中的JAVA_HOME配置被注释,未生效。
修复步骤
1. 修正/etc/hosts配置
执行以下命令编辑hosts文件:sudo vi /etc/hosts
删除以下不符合格式的两行:
0.0.0.0 https://account.jetbrains.com:443 1.2.3.4 http://www.jetbrains.com
剩余jetbrains相关的配置仅保留纯域名条目,不要同时配置多个IP指向同一个域名,二选一即可,修正后参考配置:
127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost 1.2.3.4 account.jetbrains.com 1.2.3.4 www.jetbrains.com 1.2.3.4 www-weighted.jetbrains.com
保存退出后执行dscacheutil -flushcache刷新DNS缓存。
2. 清理残留的Hadoop进程
执行以下命令停止已运行的dfs进程,清理残留:
sbin/stop-dfs.sh kill -9 26210
执行jps命令校验,确保输出中没有NameNode、DataNode、SecondaryNameNode进程。
3. 生效JAVA_HOME配置
编辑hadoop-env.sh文件,删除export JAVA_HOME行开头的#注释符,确保配置生效,可执行/usr/libexec/java_home校验你本机的Java安装路径是否和配置一致。
4. 重新启动Hadoop
执行启动命令:sbin/start-dfs.sh
启动完成后执行jps确认三个核心进程都正常运行即可。
内容的提问来源于stack exchange,提问作者Alexey
相关产品推荐
相关产品推荐

