完全分布式hadoop集群搭建SSH免密码登录(详细版)
| 分类: hadoop |
该博文为初学hadoop者并且linux基础薄弱的同学而作,大鸟级别的同学请不要嫌弃啰嗦,因为并不是所有人都有基础,这也是本人写作初衷,本人于小豆站长为整理该博文也 花费了不少休息时间,所以转载请注明出处,谢谢
按照该文档搭建完全分布式hadoop集群,需要从该文档环境准备步骤逐步操作,否则会出现环境版本不一致导致的不必要错误。按步骤逐步操作应该不会出现问题,但是也需要同学们操作的过程中细心,毕竟我不能保证哪里是否打错了字
环境准备:
开始搭建
1,安装虚拟机
2,linux root权限分配以及修改hosts文件
3.安装JDK
http://s1/mw690/002JZ2FHgy6ViR63tHGb0&690
http://s11/mw690/002JZ2FHgy6ViR8RoMO6a&690
执行命令后再次执行rpm
-qa|grep jdk,如果还有显示再次执行rpm
-e --nodeps
http://s1/mw690/002JZ2FHgy6ViRc4Zq040&690
http://s3/mw690/002JZ2FHgy6ViRfvR9862&690
此时,说明原有的版本jdk已经删除干净了,可以安装自己的jdk了
http://s7/mw690/002JZ2FHgy6ViRmUyVw76&690
(6)
进入/usr
命令:sudo rpm -ivh jdk-7u79-linux-x64.rpm
http://s5/mw690/002JZ2FHgy6ViRyYiHy74&690
执行java
-version
(7)配置Java环境变量
命令:sudo
vim /etc/profile,
到此,jdk的安装和配置就已经完成了。
4,hadoop安装
(1)把安装包移动到/usr目录下
命令:sudo mv
hadoop-2.2.0-x64.tar.gz
http://s9/mw690/002JZ2FHgy6ViRICYo8b8&690
(2)解压缩包
命令:sudo
http://s13/mw690/002JZ2FHgy6ViRXUFyY6c&690
(3)修改hadoop目录名称
命令:sudo mv hadoop-2.2.0 hadoop
http://s9/mw690/002JZ2FHgy6ViROCtiE48&690
(4)hadoop安装完毕需要配置hadoop的一些文件,准备工作先建立几个文件夹
~/dfs/name
~/dfs/data
命令依次如下:mdir
如下图
http://s14/mw690/002JZ2FHgy6ViRSXs3b1d&690
(5)配置hadoop文件
首先,需要配置的文件都在hadoop目录的etc目录的hadoop目录下,进入该目录
命令:cd /usr/hadoop/etc/hadoop
http://s5/mw690/002JZ2FHgy6ViRW2tUw14&690
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<5>配置hdfs-site.xml,命令:sudo vi hdfs-site.xml添加如下代码:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<6>配置mapred-site.xml,该文件在此版本的hadoop里没有,先mapred-site.xml.template复制一份并命名为mapred-site.xml,该方法如下图,然后在执行命令:sudo vi mapred-site.xml添加如下代码:
http://s8/mw690/002JZ2FHgy6ViS2iQjZ77&690
-
mapreduce.framework.name
-
yarn
-
-
-
mapreduce.jobhistory.address
-
master:10020
-
-
-
mapreduce.jobhistory.webapp.address
-
master:19888
-
<7>配置yarn-site.xml,命令:sudo vi yarn-site.xml添加如下代码:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
(6)配置hadoop环境变量
sudo
vim /etc/profile,
export HADOOP_PREFIX=/usr/hadoop
至此,hadoop已经安装和配置完毕。
(7)把hadoop安装包拷贝到slave1和slave2两个节点下,这样就不用重复安装和配置hadoop了
命令:sudo scp -r /usr/hadoop hadoop@192.168.239.129:~/(注意:把ip改成自己的slave ip)
至此,三台虚拟机都已经搭建好了环境,理论上可以运行了,但是节点之间访问需要输入密码,我们需要配置节点之间的无密码访问服务ssh
5,配置SSH无密码访问
Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止各个DataNode上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,所以我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到NameNode。
(1)命令:rpm
查看是否安装ssh服务,该版本环境已经安装该服务,所以无需安装,没有的情况下需要安装。
(2)配置master无密码登录所有的slave
Master(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode | Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端Master复制到Slave上。
Master机器上生成密码对
命令:ssh-keygen
命令:cat
~/.ssh/id_rsa.pub >>
~/.ssh/authorized_keys
命令:chmod 600 ~/.ssh/authorized_keys(修改文件"authorized_keys"权限,这步骤很重要,很多莫名其妙的错误有可能就是权限的问题)
命令:sudo vi
/etc/ssh/sshd_config
PubkeyAuthentication
yes #
AuthorizedKeysFile
.ssh/authorized_keys #
命令:service sshd restart(重新启动服务)
命令:ssh
localhost
下面是把公钥复制到所有的slave节点上去
命令:scp ~/.ssh/id_rsa.pub hadoop@192.168.239.129:~/(记得改成自己的ip,这个是我的slave1的ip,就是把master节点的公钥发送到了slave1的根目录下了)
到这里,我的master节点的公钥已经发送到了slave1的根目录下,现在登录slave1节点,在slave1节点虚拟机上操作下面的内容
命令:chmod 700 ~/.ssh(修改.ssh权限)
命令:cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
命令:sudo
vi
到这里,master节点已经可以无密码访问slave1节点了,现在在master节点虚拟机上操作,测试是否已经成功,命令是:ssh 192.168.239.129,如果不输入密码登录成功就说明master无密码访问slave1成功.
注意:这里只是配置了master节点无密码访问slave1,还需要配置master无密码访问slave2节点、slave1无密码访问master节点、slave2无密码访问master节点,slave1无密码访问slave2节点、slave2无密码访问slave1节点。每次配置的步骤和上面讲述的master节点无密码访问slave1节点一样的,原理就是:::A若想无密码访问B,就需要把公钥发送给B,B把A发来的公钥添加到自己的授权文件里。
所有的SSH配置完毕,整个分布式的集群也就搭建完成了,下面是启动给节点虚拟的的效果图。
master节点虚拟机上操作如下:
<1>,命令:
<2>命令:./sbin/start-all.sh
<3>命令:jps
http://s6/mw690/002JZ2FHgy6ViSgN46p55&690
slave1节点操作如下内容:
<1>命令:./sbin/start-all.sh
<2>命令:jps
http://s3/mw690/002JZ2FHgy6ViSjWR9Md2&690
slave2节点操作如下内容:
<1>命令:./sbin/start-all.sh
<2>命令:jps
喜欢
0
赠金笔

加载中…