Ubantu 14.04下Hadoop完全分布式集群安装

本文目的是教大家配置Hadoop的完全分布式的集群,除了完全分布式还有两种分别是单节点和伪分布式部署。伪分布式只需要一台虚拟机,配置的东西也相对较少,大多用作代码调试,大家稍微查阅资料,或者对我的配置进行一些删减,就可以实现伪分布式,所以我这里还是使用完全分布式,开了三台虚拟机,都只分配了1G,1核的默认内存,跑得无压力,所以你的笔记本大概需要4G+的内存,就可以完成这个实验。

基于Hadoop 2.x版本和1.x版本的巨大差异,而我更熟悉1.x版本,所以本次使用的Hadoop版本是1.2.1,至于2的操作和配置,你熟悉了1以后一定是手到擒来,再者网上大多资料以及书籍都是基于1.x的,这样,即使你遇到了问题,也会更好解决。

至于Hadoop下载地址网上多的是,官网也有,大家可以自行获取,我用的Linux版本是Ubantu 14.04,为什么选这个系统呢?因为我用得顺手。如果大家使用CentOS,有些指令可能略有不同,不过这应该难不倒你,百度谷歌就能告诉你答案。

先行条件:

安装Hadoop之前,有两个先行条件,一个是JAVA环境的安装,因为Hadoop是基于java开发的,具体过程我后面会讲;另一个是实现SSH互通,这个大家上课做过实验,但是Ubantu的设置和Centos有所不同!!所以我也会写在下面。

让我们开始把!

注意:1.本实验全程不要使用sudo su操作,那样非常不专业,容易导致很多安全问题的发生。

2.合理使用tab键让你linux操作更加顺手。

为了统一,大家点击虚拟机的编辑,选择虚拟网络编辑器。如下配置:

Ubantu 14.04下Hadoop完全分布式集群安装

Ubantu 14.04下Hadoop完全分布式集群安装

打开终端,第一步是修改hosts文件,输入:sudo vim /etc/hosts,加上以下三行:

192.168.217.130 master                                                         

192.168.217.201 slave1

192.168.217.202 slave2

Ubantu 14.04下Hadoop完全分布式集群安装

然后要修改ip地址,根据上面所填写的三个内容,ip地址的设置也是不一样的。这里,要注意,Ubantu不要在终端下修改ip地址,不然后果很严重,不吹不黑,大家就用他自带图形界面来修改就好,方便又直观。

Ubantu 14.04下Hadoop完全分布式集群安装

Ubantu 14.04下Hadoop完全分布式集群安装

根据不同的主机,address不同,其他的一样。

然后要建立一个hadoop账户,输入如下指令:

sudo addgroup hadoop

sudo adduser --ingroup hadoop hadoop(前一个hadoop为组名,后面才是用户名,用户名可以自己取,我方便起见写了hadoop,不过我自己的虚拟机不是这样,所以看截图的时候不要太过于纠结。后面会让你输入一个密码,是你登录这个用户时的密码,键入之后,出现任何提示都直接回车表示默认)

sudo gedit /etc/sudoers(不要使用vim,因为那样子打开文件是只读的,除非你进入root,修改后,再把权限改为只读,一定要改回只读。但是这个好麻烦,没有gedit直接根据提示apt-get即可,)

在root   ALL=(ALL:ALL)  ALL下面,加上hadoop  ALL=(ALL:ALL)  ALL

Ubantu 14.04下Hadoop完全分布式集群安装

添加这句话是为了让hadoop用户也能使用sudo。

输入su hadoop即可登入该用户

注:三个虚拟机都需要进行上面的操作。(可以先做一份,然后克隆两份,再进行修改,记得登录hadoop用户,接下来的配置都在这个用户下进行配置)

接下来,需要进行ssh无密码互连的操作。

输入sudo apt-get install ssh来获取ssh。

输入ls -a /home/u(u为你的当前用户,即hadoop)

里面应该可以看到一个.ssh的隐藏文件夹,如果没有可以手动创建,接下来输入命令:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa(这里就不详细解释每个参数的作用了,~代表当前用户文件夹,此处是/home/hadoop)

这个命令会在.ssh文件夹下创建两个文件id_dsa及id_dsa.pub,相当于现实中的锁和钥匙,把后者追加到授权的key中去,输入:

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys.

这样就可以实现无密码ssh自登陆,可以试试命令:ssh localhost

exit退出登录

为了实现master与slave之间互相都能免密码ssh登录,这里需要把id_dsa.pub发送到每一个主机的authorized_keys中,先把id_dsa.pub文件通过scp命令传输过去。

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

转载注明出处:https://www.heiqu.com/bf662dc6c325f3df6657a6730e8e1dcf.html