Hadoop:start-dfs.sh 连接被拒绝

Bob*_*ish 7 ssh debian hadoop hadoop3

我在 debian/stretch64 上有一个 vagrant box 我尝试使用文档http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.htm安装 Hadoop3

当我运行 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$
Run Code Online (Sandbox Code Playgroud)

当然,我尝试使用以下命令更新我的 hadoop-env.sh:export HADOOP_SSH_OPTS="-p 22"

ssh localhost 工作(无密码)

我不知道我可以改变什么来解决这个问题

Hug*_*iro 11

pdsh默认情况下工作方式存在问题(请参阅编辑),但 Hadoop 可以没有它。Hadoop 检查系统是否pdsh开启/usr/bin/pdsh,如果开启则使用它。摆脱使用的一种简单方法pdsh是编辑$HADOOP_HOME/libexec/hadoop-functions.sh

更换线

if [[ -e '/usr/bin/pdsh' ]]; then
Run Code Online (Sandbox Code Playgroud)

经过

if [[ ! -e '/usr/bin/pdsh' ]]; then
Run Code Online (Sandbox Code Playgroud)

然后hadoop不用了pdsh,一切正常。

编辑:

一个更好的解决方案是使用pdsh,但ssh不是rsh作为解释在这里,因此从替代路线$HADOOP_HOME/libexec/hadoop-functions.sh

PDSH_SSH_ARGS_APPEND="${HADOOP_SSH_OPTS}" pdsh \
Run Code Online (Sandbox Code Playgroud)

经过

PDSH_RCMD_TYPE=ssh PDSH_SSH_ARGS_APPEND="${HADOOP_SSH_OPTS}" pdsh \
Run Code Online (Sandbox Code Playgroud)

Obs:export PDSH_RCMD_TYPE=ssh正如我在评论中提到的,只做是行不通的。我不知道为什么...

我也打开了一个问题并提交了一个补丁来解决这个问题:HADOOP-15219


小智 0

检查您的 vagrant box 上是否正在运行防火墙

chkconfig iptables off
/etc/init.d/iptables stop
Run Code Online (Sandbox Code Playgroud)

如果没有,请查看底层日志 /var/log/...