使用yum源安装CDH Hadoop集群

本文主要是记录使用yum安装CDH Hadoop集群的过程,包括HDFS、Yarn、Hive和HBase。本文使用CDH5.4版本进行安装,故下文中的过程都是针对CDH5.4版本的。

0. 环境说明

系统环境:

集群各节点角色规划为:

192.168.56.121 cdh1 NameNode、ResourceManager、HBase、Hive metastore、Impala Catalog、Impala statestore、Sentry 192.168.56.122 cdh2 DataNode、SecondaryNameNode、NodeManager、HBase、Hive Server2、Impala Server 192.168.56.123 cdh3 DataNode、HBase、NodeManager、Hive Server2、Impala Server

cdh1作为master节点,其他节点作为slave节点。

1. 准备工作

安装 Hadoop 集群前先做好下面的准备工作,在修改配置文件的时候,建议在一个节点上修改,然后同步到其他节点,例如:对于 hdfs 和 yarn ,在 NameNode 节点上修改然后再同步,对于 HBase,选择一个节点再同步。因为要同步配置文件和在多个节点启动服务,建议配置 ssh 无密码登陆。

1.1 配置hosts

CDH 要求使用 IPv4,IPv6 不支持,禁用IPv6方法:

$ vim /etc/sysctl.conf #disable ipv6 net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1 net.ipv6.conf.lo.disable_ipv6=1

使其生效:

$ sysctl -p

最后确认是否已禁用:

$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6 1

1、设置hostname,以cdh1为例:

$ hostname cdh1

2、确保/etc/hosts中包含ip和FQDN,如果你在使用DNS,保存这些信息到/etc/hosts不是必要的,却是最佳实践。

3、确保/etc/sysconfig/network中包含hostname=cdh1

4、检查网络,运行下面命令检查是否配置了hostname以及其对应的ip是否正确。

运行uname -a查看hostname是否匹配hostname命令运行的结果:

$ uname -a Linux cdh1 2.6.32-358.23.2.el6.x86_64 #1 SMP Wed Oct 16 18:37:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux $ hostname cdh1

运行/sbin/ifconfig查看ip:

$ ifconfig eth1 Link encap:Ethernet HWaddr 08:00:27:75:E0:95 inet addr:192.168.56.121 Bcast:192.168.56.255 Mask:255.255.255.0 ......

先安装bind-utils,才能运行host命令:

$ yum install bind-utils -y

运行下面命令查看hostname和ip是否匹配:

$ host -v -t A `hostname` Trying "cdh1" ... ;; ANSWER SECTION: cdh1. 60 IN A 192.168.56.121

5、hadoop的所有配置文件中配置节点名称时,请使用hostname和不是ip

1.2 关闭防火墙

$ setenforce 0 $ vim /etc/sysconfig/selinux #修改SELINUX=disabled #清空iptables $ iptables -F

1.3 时钟同步 搭建时钟同步服务器

这里选择 cdh1 节点为时钟同步服务器,其他节点为客户端同步时间到该节点。安装ntp:

$ yum install ntp

修改 cdh1 上的配置文件 /etc/ntp.conf :

restrict default ignore  //默认不允许修改或者查询ntp,并且不接收特殊封包 restrict 127.0.0.1        //给于本机所有权限 restrict 192.168.56.0 mask 255.255.255.0 notrap nomodify  //给于局域网机的机器有同步时间的权限 server  192.168.56.121    # local clock driftfile /var/lib/ntp/drift fudge  127.127.1.0 stratum 10

启动 ntp:

#设置开机启动 $ chkconfig ntpd on $ service ntpd start

ntpq用来监视ntpd操作,使用标准的NTP模式6控制消息模式,并与NTP服务器通信。

ntpq -p 查询网络中的NTP服务器,同时显示客户端和每个服务器的关系。

$ ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *LOCAL(1) .LOCL. 5 l 6 64 1 0.000 0.000 0.000

”* “:响应的NTP服务器和最精确的服务器。

”+”:响应这个查询请求的NTP服务器。

“blank(空格)”:没有响应的NTP服务器。

“remote” :响应这个请求的NTP服务器的名称。

“refid “:NTP服务器使用的更高一级服务器的名称。

“st”:正在响应请求的NTP服务器的级别。

“when”:上一次成功请求之后到现在的秒数。

“poll”:当前的请求的时钟间隔的秒数。

“offset”:主机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒(ms)。

客户端的配置

在cdh2和cdh3节点上执行下面操作:

$ ntpdate cdh1

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

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