运行start-dfs.sh时出现权限被拒绝错误

Gau*_*bey 3 sockets hadoop hdfs hadoop-yarn hadoop2

我在执行时遇到此错误 start-dfs.sh

Starting namenodes on [localhost] 
pdsh@Gaurav: localhost: rcmd: socket: Permission denied 
Starting datanodes
pdsh@Gaurav: localhost: rcmd: socket: Permission denied
Starting secondary namenodes [Gaurav]
pdsh@Gaurav: Gaurav: rcmd: socket: Permission denied 2017-03-13 09:39:29,559 
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Run Code Online (Sandbox Code Playgroud)

使用hadoop 3.0 alpha 2版本.

任何帮助表示赞赏

小智 9

尝试卸载pdsh

sudo apt-get remove pdsh

然后通过以下方式重新启动hadoop:

sudo start-dfs.sh

这对我有用。


小智 8

我也遇到了同样的事情,我这样做了我发现我的pdsh默认rcmd是rsh,而不是ssh,rsh和ssh远程登录验证不一样,安装hadoop时我配置了ssh localhost无密码登录,但是rsh不是可能.

所以,请尝试:

1.检查你的pdsh默认rcmd rsh

pdsh -q -w localhost
Run Code Online (Sandbox Code Playgroud)

看看你的pdsh默认rcmd是什么.

2.将pdsh的默认rcmd修改为ssh

export PDSH_RCMD_TYPE=ssh
Run Code Online (Sandbox Code Playgroud)

你可以添加到〜/ .bashrc,和 source ~/.bashrc

3.sbin / start-dfs.sh

  • 你太棒了。这绝对对我有用。人们可能是通过 ssh 设置的。但这个设置是rsh。这是正确的解决方案。 (2认同)

Gar*_*ang 6

卸载pdsh将解决此问题。我正在 Ubuntu 18.04.4 LTS 上使用 Hadoop 3.2.1 版。

start-dfs.sh在几台全新安装的虚拟机和一台旧 VM 上进行了测试。该命令仅在旧 VM 上失败。我尝试了高票答案,发现只pdsh安装了旧VM 。所以我卸载了这个软件,然后命令成功执行。

因此,如果您不是pdsh出于某种目的安装,您可以尝试卸载它。


小智 0

尝试用sudo

例子:

sudo start-dfs.sh
Run Code Online (Sandbox Code Playgroud)

否则更改文件夹 hadoop_1.2.7 的所有者

例子:

sudo chown -R user_name:user_name hadoop_1.2.7
Run Code Online (Sandbox Code Playgroud)