我按照这个教程在我的计算机上安装hadoop。完成安装后,当我尝试使用以下命令启动hadoop时 ./start-dfs.sh
,它返回以下内容:
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时,它会产生错误。你能告诉我另外两个错误是什么意思以及如何修正它们吗?我尝试过许多在网上发布的解决方案。
5条答案
按热度按时间y0u0uwnf1#
对于那些还在为这个错误挣扎的人,我的回答可以帮助他们。如果您做的一切都是正确的,并且已经在authorized\u keys中添加了密钥,那么您所需要做的就是删除您的id\u rsa和id\u rsa.pub(无论您在keypair文件中使用了什么名称)并清空您的authorized\u keys,简言之,只需回滚,因为您可能在生成rsa密钥时提供了密码。
所以只需做一件事,通过以下方式再次创建rsa密钥:
给出文件名(出现提示时):<your\u filename>
然后不要给它一个密码短语,而只是简单地按回车键,也就是说,将其留空,这样您就永远不会看到权限被拒绝的错误(在我的情况下它是有效的)
u0njafvf2#
并将这一行粘贴到hadoop-env.sh中
2eafrhcq3#
继续执行以下步骤:
生成新的keygen。
注册密钥生成:
5w9g7ksd4#
问题是,当您尝试ssh到服务器(在本例中是localhost)时,它会尝试使用您的凭据对您进行身份验证。并储存这些信息。但是这里没有配置无密码身份验证,所以每次尝试ssh时,它都会要求您输入密码,如果
machines try to communicate with each other
使用ssh。所以要设置无密码ssh,我们需要将用户机器的公钥添加到服务器机器~/.ssh/authorized_keys
文件。在这种情况下,两个系统是相同的机器。长话短说,执行以下命令。
ohtdti5x5#
我执行了以下3个步骤来创建无密码登录
ssh keygen-t rsa(每行按回车键)
cat~/.ssh/id\u rsa.pub>~/.ssh/authorized\u密钥
chmod og wx~/.ssh/授权的\u密钥