Hadoop在执行start-dfs.sh时,会报“pdsh@localhost connect: Connection refused”的错误(其中的localhost也可以是hostname)

很多文章都提及export PDSH_RCMD_TYPE=ssh能解决问题,但该方法对新版无效。

新版有2个方法解决,都是通过修改$HADOOP_HOME/libexec/hadoop-functions.sh文件。

sudo vim $HADOOP_HOME/libexec/hadoop-functions.sh

 

方法一

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

改成

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

 

方法二

PDSH_SSH_ARGS_APPEND="${HADOOP_SSH_OPTS}" pdsh \

改成

PDSH_RCMD_TYPE=ssh PDSH_SSH_ARGS_APPEND="${HADOOP_SSH_OPTS}" pdsh \

也就是说,在前面加上PDSH_RCMD_TYPE=ssh