我正在关注this教程以在我的计算机中安装Hadoop。完成安装后,当我尝试使用此命令./start-dfs.sh
启动Hadoop时,它会返回以下内容:
U:sbin U$ ./start-dfs.sh
Starting namenodes on [localhost]
localhost: U@localhost: Permission denied (publickey,password,keyboard-interactive).
Starting datanodes
localhost: U@localhost: Permission denied (publickey,password,keyboard-interactive).
Starting secondary namenodes [U.local]
U.local: U@pc.local: Permission denied (publickey,password,keyboard-interactive).
2018-02-25 14:52:15,505 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
我尝试了多次卸载并安装它以重新检查我是否遗漏了一些东西,但我仍然在最后收到此错误。在查看了一些在线论坛之后,我发现最后一个警告:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform
并不是什么大问题,因为它在我们在64位机器上运行Hadoop时会出错。请问你能告诉我其他两个错误是什么意思以及如何修复它们吗?我已尝试在互联网上发布了许多解决方案。
答案 0 :(得分:18)
问题是当您尝试ssh到服务器(在本例中为localhost)时,它会尝试使用您的凭据对您进行身份验证。并存储该信息。但是这里没有配置无密码身份验证,因此每次尝试ssh时,它都会询问您的密码,如果 machines try to communicate with each other
使用ssh,则会出现问题。因此,要设置无密码ssh,我们需要将用户计算机的公钥添加到服务器计算机 ~/.ssh/authorized_keys
文件中。在这种情况下,两个系统都是相同的机器。
如此长的故事短命以下命令。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
答案 1 :(得分:12)
继续以下步骤:
生成新密钥。
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
注册密钥:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
答案 2 :(得分:0)
那些仍在努力解决此错误的人,我的回答可能会对他们有所帮助。 如果您做对了所有事情,并且还已经在authorized_keys中添加了密钥,那么您要做的就是删除id_rsa和id_rsa.pub(无论密钥对文件使用了什么名称)并清空您的authorized_keys,简而言之回滚,因为生成rsa密钥时您可能已经输入了密码。
因此,只需做一件事,即可通过以下方式再次创建RSA密钥:
ssh-keygen -t rsa
提供文件名(出现提示时):
然后不给它一个密码短语,而只是简单地按Enter键即可。,即,将其保留为空白,因此您将永远不会看到权限被拒绝的错误(在我的情况下有效)>
答案 3 :(得分:0)
我按照以下3个步骤创建了无需登录的密码
答案 4 :(得分:0)
cd hadoop/etc/hadoop
nano hadoop-env.sh
并将此行粘贴到hadoop-env.sh
export HADOOP_SSH_OPTS="-p 22"