Ubuntu上Hadoop Mapreduce集群搭建以及程序运行

为了完成计算机综合实验的考核,折腾了三天,终于完成了在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)。

如果不须要输入密码则配置成功,如果还须要请检查上面的配置能不能正确。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/71d1983eaabf6c2d09ea491c0989837d.html