频道栏目
首页 > 网络 > 云计算 > 正文

搭建5个节点的hadoop集群环境(CDH5)

2016-05-21 09:15:18         来源:陌上花开  
收藏   我要投稿

一、硬件准备
 

基本配置:

操作系统

64位

CPU

(英特尔)Intel(R) I3处理器

内存

8.00 GB ( 1600 MHz)

硬盘剩余空间

50G

 

流畅配置:

操作系统

64位

CPU

(英特尔)Intel(R) I5处理器或以上配置

内存

16.00 GB ( 1600 MHz)

硬盘剩余空间

100G

 

注意:上面是在单个pc机上搭建集群,所以对内存要求较高。若是在多台pc机上搭建集群环境,则只需要内存足够即可。

 

二、软件环境准备

虚拟机 VMWare
操作系统 CentOS6.5
JDK jdk-7u79-linux-x64.tar.gz
远程连接 XShell





hadoop生态系统

hadoop-2.6.0-cdh5.4.5.tar.gz

hbase-1.0.0-cdh5.4.4.tar.gz

hive-1.1.0-cdh5.4.5.tar.gz

flume-ng-1.5.0-cdh5.4.5.tar.gz

sqoop-1.4.5-cdh5.4.5.tar.gz

zookeeper-3.4.5-cdh5.4.5.tar.gz

 

三、主机规划

 

由于我们要安装5个节点的集群环境,所以我们分配好ip地址和主机功能

 

 

CDHNode1

/192.168.3.188

CDHNode2

/192.168.3.189

CDHNode3

/192.168.3.190

CDHNode4

/192.168.3.191

CDHNode5

/192.168.3.192

namenode

datanode

resourcemanager

journalnode

zookeeper

注意:Journalnode和ZooKeeper保持奇数个,最少不少于 3 个节点。具体原因,以后详叙。

 

我的主机分配情况是在两台pc的虚拟机上安装centos系统,具体分配情况如下:

 

  CDHNode1 CDHNode2 CDHNode3 CDHNode4 CDHNode4
PC1      
PC2    
这样分配的原因是为了采用HA时,两台namenode在不同pc上,若有一台pc出现异常,导致一个namenode无法运作,而standy namenode(备用namenode)可以active(激活),而不会影响整个集群的运作。

 

 

 

 

三、详细安装步骤

我们首先在1个主机(CHDNode1/192.168.3.188)上安装centos6.5操作系统,使用root用户配置网络,创建hadoop用户,关闭防火墙,安装一些必备软件。为记下来的集群软件安装做准备。

CentOS6.5安装

在主机CHDNode1/192.168.3.188,安装CentOS6.5操作系统。

网络配置

1.打开安装好的CentOS虚拟机CDHNode1

\

 

2、登录CentOS系统

\

3.输入ifconfig命令,先查看ip地址

\

4、这个时候我们发现除了回环地址以外,我们并不能和外界通信,比如我们可以使用ping命令进行测试。

\

注意:ping 127.0.0.1时,结束icmp报文,使用Ctrl+C命令

第一次ping 百度,ping不通,说明虚拟机无法连接外网

第二次ping 虚拟机NAT网关,ping不通

注:虚拟机网关查看方法

 

\

点击虚拟机网络编辑器,点击VMnet8

\

点击Nat设置

\

第三次ping物理机ip地址,ping不通

注:查看物理机IP地址,开启cmd.exe ,输入ipconfig

\

 

第四次ping虚拟机的回环地址,ping成功,说明虚拟机的网络协议是正确的

5、修改网卡的配置文件

\

\

可以看到虚拟机网卡没有开启,因此修改ONBOOT=yes,然后保存退出(按Esc键,然后输入:wq)

\

6、重启网络服务

\

 

7、再次输入ifconfig命令,查看ip地址。

注意:我的虚拟机设置的是桥接模式,所以ip地址是192.168.2.X网段,或192.168.3.X网段;因为桥接模式是直接使用物理网卡,而我的物理主机的网关是192.168.0.1,子网掩码是255.255.252.0,所以我的虚拟机ip地址可以在192.168.0.2-192.168.3.255之间任意选择(除了物理主机的ip)。若你的虚拟机是使用nat模式,可能就是,如:以我的虚拟机为例,nat网关是192.168.117.2,子网掩码为255.255.255.0,所以虚拟机的ip地址可以在192.168.117.3-192.168.117.255之间任意选择。

\

此时网卡已经成功开启。

8.再次ping步骤4的ip或域名,查看具体情况

检查本机网络协议

\

检查网卡链路

\

检查Nat网关

\

检查外网

\

此时虚拟机连接互联网成功,但使用dhcp(动态主机配置协议)配置ip地址,此时的IP地址时动态生成的,不方便以后hadoop集群环境的搭建。所以我们还需要配置静态Ip地址,配置详情,下面细说。

9、使用ifconfig命令可以查看动态ip地址为192.168.3.188,所以接下来我们把此ip作为CDHNode1的静态ip地址。注:你可以使用你的动态ip作为你当前主机的静态ip。然后后面几台IP地址可以紧跟着设置成,如192.168.3.189。DHCP生成ip地址是随机的,你可具体问题具体分析。

\

10、修改网卡配置信息,把BOOTPROTO=dhcp修改为BOOTPROTO=static,并且添加上设置的ip地址,子网掩码,和网关。

\

注意:由于我是在两台pc上配置集群环境,所以我使用的是桥接模式。若你是在一台主机上建议你使用Nat(网络地址转换)模式。因为nat模式的网关在不同的电脑上虚拟机VMWare虚拟出来的网段是不同的。不方便使用Xshell连接。

下面是桥接模式的配置,IPADDR是设置ip地址,NETMASK(子网掩码)与GATEWAY(网关)可以设置成与物理主机一样的NETMASK(子网掩码)与GATEWAY(网关)。注:物理主机ip配置具体查看,看上面的步骤4。

\

下面是Nat模式的配置,IPADDR是设置ip地址,NETMASK(子网掩码)与GATEWAY(网关)可以设置成与物理主机一样的NETMASK(子网掩码)与GATEWAY(网关)。注:Nat模式ip配置具体查看,看上面的步骤4。

上面步骤中我们可以看到Nat模式的网关是192.168.117.2,子网掩码为255.255.255.0

所以具体可配置成

BOOTPROTO=static

IPADDR=192.168.117.40

NETMASK=255.255.255.0

GATEWAY=192.168.117.2

最后按Esc,然后:wq保存退出。(注意编辑按i或a即可进入编辑模式,具体操作查看vi命令的使用说明)

11、重启网络服务

\

至此网络配置完毕。

 

下载必备软件

注:1、在CDHNode1节点上安装,使用yum命令 ,参数-y表示,下载过程中的自动回答yes,有兴趣的话,可以试试不加的情况;install表示从网上下载安装。

2、使用yum命令安装软件必须是root用户。

1、安装lrzsz,可以方便在Xshell上,上传和下载文件,输入rz命令,可以上传文件,sz命令可以从远程主机上下载文件到本地。

\

2、安装ssh服务器。

\

3、安装ssh客户端。

\


用户创建户

1、使用useradd命令添加用户hadoop,并同时创建用户的home目录,关于useradd的参数使用可以使用 useradd -h查看参数

\

2、可以切换到/home目录下查看,是否创建成功

\

3、为hadoop用户创建密码,这是为了接下来使用XShell软件远程连接CDHNode1节点做准备,出现successfully表示创建密码成功,注意:密码创建必须是root用户。

\

4、可以切换到hadoop用户,使用 su命令,可以看到,此时root@CDHNode1已经改成hadoop@CDHNode1。

\

5、从hadoop用户退出,使用exit命令

\

克隆虚拟机

由于我们使用VMware创建的Centos虚拟机,所以我们可以直接克隆虚拟机,就减少了安装的时间,提高效率。

若你是在一台pc机上配置集群环境,就可以按照以下步骤连续克隆出四个虚拟机分别是CDHNode2、CDHNode3、CDHNode4、CDHNode5;我是在两个pc机上配置的所以,我就需要在另一台pc上重新按照第一台pc机上安装CDHNode1一样,再安装CDHNode2,然后从CDHNode2克隆CDHNode4、CDHNode5。

下面我以在CDHNode2上克隆出CDHNode5虚拟机为例,演示以下克隆的步骤。

1、右键CDHNode2虚拟机--》快照--》拍摄快照

\

2、点击拍摄快照,快照拍摄成功

\

3、再右键CDHNode2虚拟机--》管理--》克隆

\

4、下一步

\

5、选择现有快照--》下一步

\

6、选择创建完整克隆--》下一步

\

7、输入虚拟机名称,点击完成,等待克隆完成。

\

8、至此我们完成了克隆虚拟机的任务

\

\

9、接下来是修改配置虚拟机的网卡信息,下面我们在CDHNode5为例,其他节点自己按照下面的自行配置。

首先打开CDHNode5,此时显示的主机名称为CDHNode2,因为CDHNode5是从CDHNode2克隆来的,所以主机名称还是CDHNode2。

\

10、暂时不该主机名,我们先查看一下,此时显示没有网卡

\

11、克隆后的网卡变成了eth1,如果想改回eth0,则需要修改配置文件70-persistent-net.rules配置文件

\

\

11、我们先设置行号输入:set number,我们需要修改第8行和第11行,然后输入i或a进入编辑模式,使用#注释第8行,并把第10行的eth1改为eth0,可以记一下第二个网卡的mac硬件地址

\

12、我们先移除网卡e1000,使用modprobe -r e1000命令

\

13、重新安装网卡e000

\

14、修改网卡配置信息

\

\

15、把设备号修改为DEVICE=eth0,先注释掉mac地址(硬件地址),在修改ip地址。

\

16、重启网络服务

\

注意:如果不正确,ip已经被使用,可以重新设置成其他的ip地址,按照以上方式配置。

17、接下来是修改主机名,把CDHNode2改成CDHNode5

\

\

\

18、重启主机后,就可以看到主机名的变成CDHNode5。

\

\

19、由于我们注释了mac地址,所以我们开改成新的mac地址,首先使用ifconfig查看新的mac地址,记住下面地址,

\

20、进入ifcfg-eth0文件,修改HWaddr,改为刚才查看的mac地址

\

\

再使用service network restart命令重启网络服务。至此配置完毕,最后按Esc,然后:wq保存退出。

接下来在其他节点上进行相应的配置。

 

配置host文件

在5个节点上分别配置hosts文件,注意使用root用户配置

\

\

最后按Esc,然后:wq保存退出。

 

关闭防火墙

在所有节点上使用root用户,关闭防火墙。由于要使用ssh协议来进行主机间的无密码访问,所以需要关闭防火墙。

1、首先查看防火墙的状态,显示防火墙正在运行

\

2、然后永久关闭防火墙,使用chkconfig iptables off命令,此时当前虚拟机的防火墙还没有关闭。只有在关机重启后才能生效。

\

3、关闭ipv6的防火墙

\

 

4、也可以使用service iptables stop命令,暂时关闭当前主机的防火墙。

\

5、关闭selinux

\

\

将其SELINUX=enforcing设置为SELINUX=disabled

\

最后按Esc,然后:wq保存退出。

时间同步

当我们每一次启动集群时,时间基本上是不同步的,所以需要时间同步。要求所以节点保持一致的时间。

注意:使用root用户修改,5个节点同时修改

1、我们先使用date命令查看当前系统时间

\

如果系统时间与当前时间不一致,可以按照如下方式修改

2、查看时区设置是否正确。我们设置的统一时区为Asia/Shanghai,如果时区设置不正确,可以按照如下步骤把当前时区修改为上海。

\

3、下面我们使用ntp(网络时间协议)同步时间。如果ntp命令不存在,则需要在线安装ntp

\

4、安装ntp后,我们可以使用ntpdate命令进行联网时间同步。

\

5、最后我们在使用date命令查看,时间是否同步成功。

注意:在桥接模式下,上述同步时钟的方法行不通。换一下方法,我们使用手动配置时间,在xshell中,全部xshell会话的方式的方式同时更改所有节点。

a、使用date查看时间

b、设置日期,比如设置成2016年5月20日

\

c、设置时间,比如设置成下午1点48分45秒

\

d、最后将当前时间和日期写入BIOS,避免重启后失效

\

使用Xshell远程连接centos系统

由于在centos中复制修改等操作方便,我们使用windows上的一款远程连接工具Xshell,下面简单讲一下连接步骤。你需要先从网上下载安装Xshell和Xftp(可以用来可视化的文件传输)这两款工具。

连接步骤如下,以连接CDHNode1为例。

1、首先点击新建按钮,如下;在新建会话属性对话框中输入名称和需要连接的主机ip地址。

\

2、接下来点击左侧的用户身份验证,输入要登录主机的用户名和密码,点击确定,此时创建成功。

\

3、在打开会话对话框中选中刚创建的CDHNode1,然后点击连接

\

4、此时连接成功,即可进行远程操作

\

5、为了以后方便打开远程主机,我们可以把当前连接的主机添加到链接栏中,只需点击添加到链接栏按钮即可添加

\

6、为了防止一个命令在多个主机中输入,我们也可以使用撰写栏,快速的把一个命令传送到所以打开的会话框。提示:撰写栏可以在查看菜单栏中打开。

\

 

 

相关TAG标签 节点 集群 环境
上一篇:spark 环境搭建及几种模式测试
下一篇:学习AWS的VPC并通过快速上手实验室动手实操
相关文章
图文推荐
热门新闻

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站