8

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

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

ssh localhost 工作(无密码)

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

4

8 回答 8

11

默认情况下的工作方式存在问题pdsh(请参阅编辑),但 Hadoop 可以没有它。Hadoop 检查系统是否已pdsh开启/usr/bin/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,所以替换行来自:$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

于 2018-02-09T02:24:18.140 回答
2

我通过添加解决了 hadoop 3.1.0 的这个问题

PDSH_RCMD_TYPE=ssh

在我.bashrc的以及$HADOOP_HOME/etc/hadoop/hadoop-env.sh

于 2018-04-08T08:49:21.193 回答
2

检查您的/etc/hosts文件是否包含主机名stretchlocalhost映射

我的/etc/hosts档案

于 2020-07-26T07:42:20.943 回答
0

I was dealing with my colleague's problem. he configured ssh using hostname from the hosts file and specified ip in the workers. after I rewrote the workers file everything worked.

~/hosts file

10.0.0.1 slave01

#ssh-copy-id hadoop@slave01

~/hadoop/etc/workers

slave01

于 2021-05-27T13:18:40.803 回答
0

转到您的 hadoop 主目录

~$ cd libexec

~$ nano hadoop-functions.sh

编辑这一行:

if [[ -e '/usr/bin/pdsh' ]]; then

和:

if [[ ! -e '/usr/bin/pdsh' ]]; then
于 2020-04-23T12:24:24.907 回答
0

我添加export PDSH_RCMD_TYPE=ssh到我的 .bashrc 文件,注销并重新登录,它工作。

出于某种原因,简单地导出并立即运行对我来说不起作用。

于 2021-06-14T04:39:08.660 回答
0

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

chkconfig iptables off
/etc/init.d/iptables stop

如果不是,请查看底层日志 /var/log/...

于 2018-01-10T15:24:17.380 回答
0

此外,建议还安装 pdsh 以更好地管理 ssh 资源。—— Hadoop:搭建单节点集群

我们可以删除 pdsh 来解决这个问题。

apt-get remove pdsh
于 2021-03-30T05:34:25.957 回答