为了完成计算机综合实验的考核,折腾了三天,终于完成了在Hadoop集群上完成了Mapreduce的实验。但是,后面的考试接踵而至,也就没能及时写下心得,考试结束了。赶紧把过程中的步骤和遇到的困难记录下来,跟大家分享交流一下,废话少说,入正题。
一、创建Hadoop用户
~$ sudo addgroup hadoop
~$ sudo adduser --ingroup hadoop hadoop
但是,所创建的用户还不具备admin权限,所以需要赋予admin权限。
~$ sudo gedit /etc/sudoers
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
这样,就可以使用hadoop用户,并且拥有admin权限了。以下操作,都是在hadoop用户下进行的。而且,集群中的每一台机器都要创建这样的用户,并且在这样的用户下进行如下操作。
二、基本准备之Java&JDK
每一台机器,都要配置好Java环境。不过,话说这部分我的集群上的集群是一个64位3个32位,而且一个是jdk1.7其它的多是openjdk,结果事实证明,没有问题出现。
三、基本准备之修改/etc/hosts文件
~$ sudo gedit /etc/hosts
127.0.0.1 localhost
192.168.1.102 zhangju-ThinkPad-T420
192.168.1.107 jojo-Thinkpad-R60
192.168.1.100 Ubuntu
192.168.1.104 zhaohui-ThinkPad-X230
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
集群中的每一台机器,都要填好以上的信息。这里需要强调的是,我们一开始是用无线路由器配置的,后来,证明速度有些慢,后来改成了网线,建议大家一开始就用网线固定IP地址的分配。
四、安装配置SSH
需要注意的事情是,所有的集群都需要关闭防火墙:
~$ sudo ufw disable
~$ sudo apt-get install ssh
这个安装完后,可以直接使用ssh命令了。
执行$ netstat -nat 查看22端口是否开启了。
测试:ssh localhost。
输入当前用户的密码,回车就ok了。说明安装成功,同时ssh登录需要密码。
(这种默认安装方式完后,默认配置文件是在/etc/ssh/目录下。sshd配置文件是:/etc/ssh/sshd_config):
注意:在所有机子都需要安装ssh。
安装之后:
~$ cd /home/hadoop
~$ ssh-keygen -t rsa
然后一直回车,完成后,在home跟目录下会产生隐藏文件夹.ssh。
~$ cd .ssh
~$ ls
~$ cp id_rsa.pub authorized_keys
测试:
~$ ssh localhost
第一次ssh会有提示信息:
The authenticity of host ‘node1 (10.64.56.76)’ can’t be established.
RSA key fingerprint is 03:e0:30:cb:6e:13:a8:70:c9:7e:cf:ff:33:2a:67:30.
Are you sure you want to continue connecting (yes/no)?
输入 yes 来继续。这会把该服务器添加到你的已知主机的列表中
发现链接成功,并且无需密码。
复制authorized_keys到集群其他机器上,为了保证主节点可以无需密码自动登录到其他机器,先在其他机器上执行:
~$ su hadoop
~$ cd /home/hadoop
~$ ssh-keygen -t rsa
一路按回车.
然后回到主节点,复制authorized_keys到其他集群的机器上:
~$ cd /home/hadoop/.ssh
~$ scp authorized_keys node1.2.3.....n:/home/hadoop/.ssh/
这里会提示输入密码,输入hadoop账号密码就可以了。
改动你的 authorized_keys 文件的许可权限
~$ sudo chmod 644 authorized_keys
测试:ssh node1.2.....n(第一次需要输入yes)。
如果不须要输入密码则配置成功,如果还须要请检查上面的配置能不能正确。