HADOOP(2)设置主机名(hostName)和免密码登陆
设置主机名(hostName )和SSH 免密码登陆修改主机名(hostName )为了方便起见,一般我们需要修改各节点的主机名hostName ,这样有助于我们区别该节点电脑的身份。默认安装后所有节
设置主机名(hostName )和SSH 免密码登陆
修改主机名(hostName )
为了方便起见,一般我们需要修改各节点的主机名hostName ,这样有助于我们区别该节点电脑的身份。默认安装后所有节点的系统内hostName 都是localhost.localdomain, 这样并不能方便我们后面的操作和配置。


接下去以Master 修改hostName 操作为例,说明详细步骤,Client1和Client2的修改操作雷同:
1,以root 身份登录Master,
然后用vi 修改/etc/sysconfig/network文件:vi /etc/sysconfig/network 将HOSTNAME=localhost.localdomain改成HOSTNAME=hadoopMaster
2,修改/etc/hosts文件,设置将hadoopMaster 解析为本机ip
vi 修改/etc/hosts文件文件:vi /etc/hosts
删除不需要的,添加192.168.0.150 hadoopMaster
,
3, 重启系统:shutdown -r now
重启后验证

hostName: hostname
结果显示hadoopMaster 为成功
验证域名解析:ping

hadoopMaster
结果显示 ·····form localhost(192.168.0.150为成功
这样我们就完成了Master 的hostName 修改,接下去Client1和Client2操作步骤雷同,不再重述。
4,在所有hostName 修改完成后,我们需修改所有节点的hosts 文件来保证大家都能互相用hostName 解析到对方的ip
A 修改Master , 在Master 下用vi 打开/etc/hosts: vi /etc/hosts
,将127.0.0.1中hadoopMaster 删除,然后在后面最加 192.168.0.150 hadoopMaster
192.168.0.151 hadoopClient1
192.168.0.152 hadoopClient2
结果如图:

验证:ping hadoopClient1
如果 ·····form localhost(192.168.0.151)为成功 ping hadoopClient2
如果 ·····form localhost(192.168.0.152)为成功
这样就完成了Master 的域名解析修改工作
B. 修改Client1, 在Client1下用vi 打开/etc/hosts: vi /etc/hosts 将Client1和Client 的解析规则添加进去,即后面追加加入:
192.168.0.150 hadoopMaster
192.168.0.151 hadoopClient1
192.168.0.152 hadoopClient2
如图:

设置完成后
验证:ping hadoopMaster
如果 ·····form localhost(192.168.0.150)为成功 ping hadoopClient2
如果 ·····form localhost(192.168.0.152)为成功 这样就完成了Client1的域名解析修改工作
C. 修改Client2, 在Client2下用vi 打开/etc/hosts: vi /etc/hosts 将Client1和Client 的解析规则添加进去,即后面追加加入:
192.168.0.150 hadoopMaster
192.168.0.151 hadoopClient1
192.168.0.152 hadoopClient2
如图:
,
设置完成后
验证:ping hadoopMaster
如果 ·····form localhost(192.168.0.150)为成功
ping hadoopClient1
如果 ·····form localhost(192.168.0.151)为成功
这样就完成了Clien2的域名解析修改工作
SSH 免密码登陆
因为Hadoop 需要通过SSH 登录到各个节点进行操作,我们一般情况下不是直接用root 身份来安装hadoop 的,实际上生产环境中root 权限是不容易拿到的,很常规的是我们会特地的设一个hadoop 用户,为了安全起见并设置密码,所以我们接下去要实现以下几个目标: 1,为所有的节点电脑都设置一个hadoop 用户,及设置密码
2,为Master 节点设置能够用hadoop 用户免密码登陆本机,之所有这样做是因为我们是计划吧NameNode 和JobTrack 都放在同一台电脑即Master 上,所以我们要实现Master 用hadoop 用户免密码登陆自己。 3,为Master 节点设置能够用hadoop 用户ssh 免密码登陆Client1和Client2, 因为Client1和Client2上要安装的是dataNode 和TaskTrack
,为所有节点创建hadoop 用户:
以Master 为例:
用root 身份登录Master ,
用useradd 命令创建hadoop 用户:useradd hadoop
然后用passwd 命令为hadoop 用户设置密码:passwd hadoop
然后测试用新建的hadoop 用户即密码登录系统,如果成功,就完成了用户添加工作。其他两个节点以同样的步骤创建hadoop 用户,不再累述。
Master 节点设置能够用hadoop 用户免密码登陆本机 以root 身份登录
由于是最小化安装,默认连ssh 客户端都没有转,
先用yum 命令安装ssh 客户端:yum -y install openssh-clients
安装完后转用hadoop 身份:su hadoop
然后以hadoop 身份用生成公钥和私钥:ssh-keygen -t rsa
此过程中有提示,直接回车就行了。
完成后我们在/home/hadoop/.ssh/目录下就能看到生成了公钥和私钥:
,
接着我们将公钥写入authorized_keys文件:
cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys 修改权限:chmod 600 authorized_keys
测试是否要密码:ssh hadoopMaster
(第一次需要输入yes ,以后就不用了)
如果能登录,就ok 了
为Master 节点设置能够用hadoop 用户ssh 免密码登陆Client1和Client2
以下操作为让所有节点都能免密码互访,即Master 能免密码登陆clinet1,相反client1也能免密码登陆master, 他们都用hadoop 用户互相密码登陆,同样Master 和client2也是如此
Client1设置
以root 登陆
因为最小化安装,所以先转ssh 客户端:yum -y install openssh-clients
安装完后转用hadoop 身份:su hadoop
然后以hadoop 身份用生成公钥和私钥:ssh-keygen -t rsa
此过程中有提示,直接回车就行了。
然后将公钥上传到Master:
scp /home/hadoop/.ssh/id_rsa.pub hadoop@hadoopMaster:/home/hadoop/.ssh/id_rsa.pubClient1
,然后会提示输入Master 机上hadoop 用户密码,正确输入后就开始上传
Client2设置
以root 登陆
因为最小化安装,所以先转ssh 客户端:yum -y install openssh-clients
安装完后转用hadoop 身份:su hadoop
然后以hadoop 身份用生成公钥和私钥:ssh-keygen -t rsa
此过程中有提示,直接回车就行了。
然后将公钥上传到Master:
scp /home/hadoop/.ssh/id_rsa.pub hadoop@hadoopMaster:/home/hadoop/.ssh/id_rsa.pubClient2 然后会提示输入Master 机上hadoop 用户密码,正确输入后就开始上传
最后设置Master
以hadoop 用户登陆
转到hadoop 用户的.ssh 目录:cd /home/hadoop/.ssh
将Client1传过来的id_rsa.pubClient1追加到authorized_keys:
cat /home/hadoop/.ssh/id_rsa.pubClient1 >> /home/hadoop/.ssh/authorized_keys
将Client2传过来的id_rsa.pubClient2追加到authorized_keys:
cat /home/hadoop/.ssh/id_rsa.pubClient2 >> /home/hadoop/.ssh/authorized_keys
传给Client1 追加完成后将authorized_keys传给Client1和Client2:
scp /home/hadoop/.ssh/authorized_keys hadoop@hadoopClient1:/home/hadoop/.ssh/authorized_keys
传给Client2
scp /home/hadoop/.ssh/authorized_keys hadoop@hadoopClient2:/home/hadoop/.ssh/authorized_keys
传完后在Master 测试是否要密码:
,
至此,免密码登陆准备工作完成