我在 debian/stretch64 上有一个 vagrant box 我尝试使用文档安装 Hadoop3 http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.htm
当我运行 start-dfs.sh 时 我有这个消息
vagrant@stretch:/opt/hadoop$ sudo sbin/start-dfs.sh
Starting namenodes on [localhost]
pdsh@stretch: localhost: connect: Connection refused
Starting datanodes
pdsh@stretch: localhost: connect: Connection refused
Starting secondary namenodes [stretch]
pdsh@stretch: stretch: connect: Connection refused
vagrant@stretch:/opt/hadoop$
当然,我尝试用以下方法更新我的 hadoop-env.sh: 导出 HADOOP_SSH_OPTS="-p 22"
ssh 本地主机工作(无密码)
我不知道我可以改变什么来解决这个问题
最佳答案
默认情况下 pdsh
的工作方式存在问题(请参阅编辑),但 Hadoop 可以没有它。 Hadoop 检查系统是否在/usr/bin/pdsh
上有pdsh
,如果有就使用它。摆脱使用 pdsh
的一种简单方法是编辑 $HADOOP_HOME/libexec/hadoop-functions.sh
替换行
if [[ -e '/usr/bin/pdsh' ]]; then
通过
if [[ ! -e '/usr/bin/pdsh' ]]; then
然后 hadoop 在没有 pdsh
的情况下运行,一切正常。
编辑:
更好的解决方案 将使用 pdsh
,但使用 ssh
而不是 rsh
,如 here 所述,所以替换 $HADOOP_HOME/libexec/hadoop-functions.sh
中的行:
PDSH_SSH_ARGS_APPEND="${HADOOP_SSH_OPTS}" pdsh \
通过
PDSH_RCMD_TYPE=ssh PDSH_SSH_ARGS_APPEND="${HADOOP_SSH_OPTS}" pdsh \
Obs:正如我在评论中提到的那样,仅执行 export PDSH_RCMD_TYPE=ssh
是行不通的。我不知道为什么...
我还打开了一个问题并提交了这个问题的补丁:HADOOP-15219
关于Hadoop : start-dfs. sh 连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48189954/