您的位置:首页 > 运维架构

Ubuntu12.04+Hadoop2.6.5实现全分布式集群搭建

2017-12-12 00:29 246 查看
最近学习了hadoop很多理论,今天终于将集群环境配置好,中间遇到了许多坑,尤其ssh免密那里,自己也参考了很多文章,希望写这篇文章记录一下这一段历程,同时也希望帮助到需要的人。

主要的参考文章:
http://m.blog.csdn.net/shubingzhuoxue/article/details/49718095 http://m.blog.csdn.net/xiaoxiangzi222/article/details/52757168
一、环境配置
虚拟机:VMware Workstation12
系统: Ubuntu 12.04
节点: 192.168.198.3 master
     192.168.198.4 slaver1
     192.168.198.5 slaver2
jdk-8u65-linux-x64.tar.gz
java version 1.8.0_65
hadoop version 2.6.5

二、安装步骤
1、安装虚拟机系统,并进行准备工作
2、修改各个虚拟机的hostname和host
3、创建用户组和用户

4、配置虚拟机网络,使虚拟机系统之间以及和host主机之间可以相互ping通

5、安装jdk和配置环境变量,检查是否配置成功

6、配置ssh,实现节点间的无密码登录,成功通过指令ssh slaver1、ssh slaver2免密登录到slaver1、slaver2

7、master配置hadoop,并将hadoop文件传输到node节点

8、配置环境变量,并启动hadoop,检查安装是否成功

三、安装虚拟机

在Windows10系统上安装VMware Workstation12软件,并安装下载好的Ubuntu 12.04系统,各虚拟机的配置均为1G运行内存,20G存储内存,一个一个安装,一共三台虚拟机,分别叫master、slaver1、slaver2。安装完成后启动虚拟机。具体虚拟机安装步骤可自行百度,虚拟机安装完成后的示意图如下:

 

四、修改虚拟机的hostname和hosts文件

以master上的机器为例,打开终端,执行如下操作,把hostname修改成master,hosts中,将各虚拟机的ip写入,如下图所示:

修改hostname的指令:

 

 

修改hosts的指令:

 

 

同样地,在slaver1和slaver2上做相似的操作,分别更改主机名为slaver1和slaver2,然后修改hosts文件同master的一样。

五、创建用户和用户组(三台机器上都要操作)

1、创建hadoop用户组
 

2、创建hadoop用户

 

3、给hadoop用户添加权限,打开/etc/sudoers文件

 

给hadoop用户赋予root用户同样的权限,如图:

 

此时,最重要的一步,输入命令su hadoop,进入刚刚创建的hadoop用户组

 

输入刚刚自己设定的密码,之后点击回车

 

发现@前已变为hadoop用户组。

六、检验各个主机之间能否ping通

分别以刚刚创建的hadoop用户重新登录系统,之后的操作都是以hadoop用户登录。采用命令 ping 主机名,检查能否与其他主机连通。

 

若如上图所示,则显示ping通,如果各个节点都能同其他节点ping通,则继续后面的操作。

七、安装jdk和配置环境变量

分别在各主机上安装jdk,并配置环境变量,需进行如下几步:

1、 下载jdk安装包

(1) 可以在自己的window系统中下完然后拖入到虚拟机当中

(2) 在Linux系统中输入命令java 后,按相关提示进行操作

本文采用的是第一种方式。

2、 通过cd命令进入到安装包的当前目录,利用如下命令进行解压缩。

tar –zvxf jdk-8u65-linux-x64.tar.gz(文章开头提到的)

3、 利用如下命令将解压后的文件夹移到/usr目录下

mv jdk jdk-8u65-linux-x64.tar.gz /usr/java

4、 配置环境变量

 

在末尾加上四行:

 

输入source /etc/profile使环境变量生效。

5、 查看配置是否成功

 

若出现以上信息,则说明Java配置成功。

八、配置ssh,实现节点间的无密码登录

自己在这一步耽误好长时间,参考了许多帖子,试了好几种方法,最终配置成功。步骤如下:

1、 安装ssh

首先确定自己的虚拟机是否安装了ssh,因为Ubuntu12.04自带ssh,所以我们输入如下命令进行查看:

 

会显示sshd以及ssh-agent,则说明已有ssh;若没有,则输入

sudo apt-get install openssh-server

进行ssh的安装。

2、 确定ssh是否成功安装

输入命令 ssh localhost

 

出现以上信息,则说明安装成功。此时若想退出登录,则输入命令 exit退出当前远程登录。

 

3、 生成密钥对

输入命令 ssh –keygen –t rsa

输入之后,一直按回车,发现生成的密钥位于~/.ssh文件夹下。

4、 在master上,导入authorized_keys 输入以下命令:

 

这样就可以实现无密码ssh自登陆,如下图所示:

 

之后exit退出登录。

为了实现master与slaver之间互相都能免密ssh登录,需要把id_dsa.pub发送到每一个主机的authorized_keys中,先通过scp命令将id_dsa.pub发送过去。此处,推荐进入slaver1和slaver2,把他们的id_dsa.pub发送到master上,然后再添加到master的authorized_keys中,再把master中的authorized_keys传到slaver1和slaver2中即可。其命令如下:

 

然后输入:

 

当把slaver1和slaver2的公钥都传给master后,再输入:

 

 

此时,在master下输入ssh slaver1,发现可以不需要输入密码就登录到slaver1上,证明配置完成。

 

九、master配置hadoop,然后将master的hadoop文件传送给slaver节点

1、解包移动

输入命令: tar –zvxf hadoop-2.6.5.tar.gz 解压hadoop包
mv hadoop-2.6.5 /home/hadoop 将安装包移到/home目录下

2、新建文件夹

在 /home/hadoop 目录下新建如下目录

mkdir /dfs

mkdir /dfs/name

mkdir /dfs/data

mkdir /tmp

建好后,ls得到如图文件目录结构:

 

3、配置文件hadoop-env.sh()
注意:接下来的几步,我们要修改的配置文件都在如图所示的目录下。
 

首先输入命令 

 
修改JAVA_HOME值
 

5、 配置文件:slaves

首先输入命令:

 

修改内容为:

 

6、 配置文件:core-site.xml

 

注:此处千万记住fs.defaultFS 以及 hadoop.tmp.dir 的内容,否则以后运行时很容易报错。

7、 配置文件:hdfs-site.xml

 

8.配置文件:mapred-site.xml

因为所显示的配置文件列表中无此文件(不要参考之前的那个图,那个是已经创建好的),因此要先创建该文件,再编辑:

输入命令: cp etc/hadoop/mapred-site.xml.templete etc/hadoop/mapred-site.xml
再输入命令:sudo gedit etc/hadoop/mapred-site.xml

 9.配置文件:yarn-site.xml

 

 10.将hadoop传输到slaver1和slaver2 /home/hadoop目录

输入命令:scp –r /usr/hadoop hadoop@slaver1:/home/hadoop
    scp –r /usr/hadoop hadoop@slaver2:/home/hadoop

十、配置环境变量,并启动hadoop,检查安装是否成功

1、配置环境变量

输入命令 sudo gedit /etc/profile

在文件末尾添加如下命令:

 

执行 source /etc/profile 使文件生效。

这里要注意的是:进行完该步骤后,输入ll,查看一下之前所创建的tmp,dfs的所属权限,可看到如下界面:

 

发现tmp和dfs都属于我们所创建的hadoop组。若不属于,通过chmod或者chgrp命令进行修改,具体写法可自行百度。

2、上述配置完成后,将配置好的文件发送给slaver1和slaver2,当然,也可以分别在slaver1和slaver2上配置,但是操作过程一样,浪费了不必要的时间。此处,我们通过命令: sudo scp –r /home/hadoop/hadoop hadoop@slaver1:~/ 

将整个hadoop复制过去。

3、启动hadoop

(1)格式化namenode: hdfs namenode –format

(2)启动hdfs,该命令以及hadoop中的一些其他命令都位于sbin下,如下图所示:

 

输入命令: 
 

此时输入jps,查看master上面运行的进程:

 

进入任意一个slaver节点,此处进入slaver1,输入jps,查看运行的进程:

 

说明一切都正常启动。

(3)启动yarn

 在master节点上输入: 
 

此时输入jps,查看master上面运行的进程:

 

发现ResourceManager正常启动。

进入slaver1,输入jps,查看运行的进程:

 

发现NodeManager也正常启动。

至此,hadoop集群已全部配置完成!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息