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

标签 hadoop ssh debian hadoop3

我在 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/

相关文章:

linux - 如何在 Makefile 中使用 chroot?

hadoop - HBase连接异常

ssh - 期望脚本读取空行

hadoop - 将文件从本地放到hadoop环境

git - 如何强制 Git 通过其 ssh 连接使用 socks 代理?

python - SSH连接成功后执行命令

c++ - CMake 错误 : variable is NOTFOUND. ACE_INCLUDE_DIR(高级)

linux - debian - lampp - 在 sublime 和权限中打开文件

hadoop - 无法在 Spark API 中打印/记录消息

hadoop - 通过分布式缓存访问Pig中的文件