fedora下配置hadoop(一)

在Hadoop启动以后,Namenode是通过SSH(Secure Shell)来启动和停止各个节点上的各种守护进程的,这就需要在节点之间执行指令的时候是不需要输入密码的方式,故我们需要配置SSH使用无密码公钥认证的方式。

两台电脑一台NameNode(NameNode,192.168.0.100)一台DataNode1,(DataNode1, 192.168.0.101)

修改每台电脑的hosts文件。

把DataNode1的主机名和ip地址加到NameNode里,把NameNode的主机名和ip地址加到DataNode1里。

如果是多台DataNode,可以把DataNode的主机名和ip地址都加入到NameNode里,然后把NameNode的hosts文件传给所有的NameNode。有的地方说把hosts文件里的回环地址那行注销了或者把localhost改成相应的主机名,但是我没改,目前没发现问题。

然后在所有的电脑上建立相同的用用户hadoop,用户不一样的话很容易混乱。

在所有电脑上建立.ssh目录。建在/home/hadoop/里就行了。

mkdir .ssh

以NameNode为例,执行

ssh-keygen -t rsa

然后一直Enter.会按照默认的选项将生成的密钥保存在.ssh中,id_rsa是私钥,id_rsa.pub是公钥 。

接着进入到.ssh目录里,执行

cp id_rsa.pub authorized_keys

scp authorized_keys DataNode1:/home/hadoop/.ssh   #把公钥传给DataNode1。

这样就可以用ssh DataNode1命令访问DataNode1主机了,第一次访问需要密码,后来就不需要了。

但是实际中,是不行的。一直需要密码。重来了好几次,后来细看了一下,有这么一条提示Agent admitted failure to sign using the key。尼玛。。。

在这执行下面命令就好了

ssh-agent  #打开ssh代理。

ssh-add id_rsa    #将私 加进去. 

现在就可以用NameNode无密码访问DataNode1里。

如果是多台主机的话,可以用cat命令把各种DataNode的公 追加到一块,以防出错。

DataNode无密码访问NameNode过程一样。

另外如果还不能无密码访问,可能是权限问题。.ssh 设置成700,公钥设置成600,就可以了,据说这样最安全。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值