【问题标题】:Hadoop : start-dfs.sh Connection refusedHadoop:start-dfs.sh 连接被拒绝
【发布时间】:2018-06-19 18:32:53
【问题描述】:

我在 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 localhost 工作(无密码)

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

【问题讨论】:

  • 我遇到了同样的问题。我尝试了类似pdsh -w node date 的命令并得到了同样的错误,然后我做了export PDSH_RCMD_TYPE=ssh,这解决了终端上命令的问题,但是使用hadoop 脚本的错误仍然存​​在......

标签: hadoop ssh debian hadoop3


【解决方案1】:

我将export PDSH_RCMD_TYPE=ssh 添加到我的 .bashrc 文件中,然后注销并重新登录,它就可以工作了。

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

【讨论】:

    【解决方案2】:

    我正在处理我同事的问题。 他使用主机文件中的主机名配置了 ssh,并在工作人员中指定了 IP。 在我重写了工人文件后一切正常。

    ~/hosts 文件

    10.0.0.1 slave01

    #ssh-copy-id hadoop@slave01

    ~/hadoop/etc/workers

    slave01

    【讨论】:

      【解决方案3】:

      另外,建议也安装 pdsh 以更好地管理 ssh 资源。 ——Hadoop: Setting up a Single Node Cluster

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

      apt-get remove pdsh
      

      【讨论】:

        【解决方案4】:

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

        my /etc/hosts file

        【讨论】:

          【解决方案5】:

          转到您的 hadoop 主目录

          ~$ cd libexec

          ~$ nano hadoop-functions.sh

          编辑这一行:

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

          与:

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

          【讨论】:

            【解决方案6】:

            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

            【讨论】:

            • 您的答案编辑很有帮助!!问题解决了
            【解决方案7】:

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

            PDSH_RCMD_TYPE=ssh

            在我的.bashrc 和$HADOOP_HOME/etc/hadoop/hadoop-env.sh 中。

            【讨论】:

              【解决方案8】:

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

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

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

              【讨论】:

              • 不幸的是,我没有找到任何结论。我一直在寻找解决方案..谢谢您的回答
              • 你找到问题了吗?
              猜你喜欢
              • 1970-01-01
              • 2017-08-08
              • 1970-01-01
              • 1970-01-01
              • 2023-03-21
              • 1970-01-01
              • 2018-08-20
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多