Hadoop运行start-dfs.sh报pdsh@connect: Connection refused错误的解决方法
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
* 两种方法的步骤都需要在每台机执行,也可以先在c1机修改,再用scp同步给其它机
* 如果用了其中一种方法后仍然报错,可以两种一起使用,一般会解决问题。
方法一
把
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