从零搭建生产Hadoop集群(三)——CDH集群搭建

1、概述

继本系列前两篇文章讲到的离线安装YUM源搭建规划与环境准备,本文开始讲述CDH集群的搭建步骤及注意要点。本文基于CentOS7进行部署,Cloudera Manager版本选择5.8.1,CDH版本5.8.0。html

2、硬件检查与系统配置

1.硬件检查

1)检查内存

free -g

在这里插入图片描述

2)检查全部磁盘挂载。将noatime参数写入/etc/fstab,并remount全部数据盘。

vim /etc/fstab

在这里插入图片描述

for i in 1 2 3 4 5;do mount -o remount /opt$i
mount

在这里插入图片描述

3)检查磁盘读写

能够用dd或者hdparm命令进行测试,具体步骤能够参考网上的一些作法。java

4)检测网卡设置

ethtool [interface]

在这里插入图片描述

5)检测路由

route -n

若路由缺失,使用如下命令添加路由并添加到/etc/rc.local以使重启生效node

route add -net [网段] netmask [掩码] gw [网关] dev [网口]

6)检查系统版本

检查系统版本是否为CDH推荐的版本,版本不兼容可能会产生稳定性问题mysql

cat /etc/issue
uname -a

2.系统配置

1)配置hostname与/etc/hosts(全部节点)

若在没有dns服务的内部网络,配置hosts就颇有必要了,集群间全部节点均需配置以相互通讯。linux

设置hostname

命令行执行:web

hostname [name]

设置HOSTNAME以使重启生效sql

vim /etc/sysconfig/network

设置/etc/hosts

将集群全部节点的信息添加到该文件中数据库

vim /etc/hosts

2)全部节点安装SSH(全部节点)

能够选择CM server到agent经过用户名密码登陆或者是公钥的方式。若使用用户名的方式,需保证全部服务器root用户名和密码一致。vim

3)安装Oracle JDK(全部节点)

CentOS自带Openjdk,不过运行CDH5须要使用Oracle的jdk。至于安装,可经过web安装界面指定使用CM Server来进行安装(安装yum repo中的配置的Java版本)。浏览器

4)关闭防火墙和SELinux(全部节点)

清除iptables

iptables -L

iptables -F

关闭SELinux

/etc/selinux/config 的SELINUX=disabled

5)设置swappiness(全部节点)

命令行执行:

sysctl -w vm.swappiness=0

/etc/sysctl.conf添加如下内容:

vm.swappiness = 0

6)设置ulimit(全部节点)

命令行执行:

ulimit -n 65535

/etc/security/limits.conf添加如下内容:

soft nofile 65535
hard nofile 65535

7)设置ntp服务(全部节点)

使用ntpdate命令与ntp服务器对时

date
ntpdate [ntpserver]

/etc/ntp.conf添加如下内容:

server [ntpserver]

启动ntpd

systemctl restart ntpd

查看是否同步成功

ntpstat

8)设置DNS(全部节点)

若集群域名解析仅依赖/etc/hosts文件,建议注释掉/etc/resolv.conf,以免不良影响。

9)关闭THP

CDH 5 所支持的大多数 Linux 平台包含名为透明大页面压缩的功能,该功能与 Hadoop 工做负载交互较差,可能会严重影响性能,所以建议关闭。命令行执行如下命令,并写到/etc/rc.local文件中。

echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag

3、数据库安装与配置

CM支持多种类型数据库做为配置及监控数据的存储方式,这里以mysql为例。CM数据库、Hue/Oozie配置数据库、Hive Metastore元数据库等最好可以根据实际应用及负载分开部署,而且部署高可用方案(主从或主主互备,后续会有专题讲解)。

1.安装MySql

表配置为Innodb引擎,不然CM启动可能会遇到问题。

yum install mysql-server
service mysqld start

2.配置CM Server数据库

用于存放CM的配置与监控数据。

mysqladmin -u root password 'xxxx'
mysql -uroot -p 进入mysql命令行,建立如下数据库:
create database amon DEFAULT CHARACTER SET utf8;
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY 'xxxx';
create database smon DEFAULT CHARACTER SET utf8;
grant all on smon.* TO 'smon'@'%' IDENTIFIED BY 'xxxx';
create database rman DEFAULT CHARACTER SET utf8;
grant all on rman.* TO 'rman'@'%' IDENTIFIED BY 'xxxx';
create database hmon DEFAULT CHARACTER SET utf8;
grant all on hmon.* TO 'hmon'@'%' IDENTIFIED BY 'xxxx';
create database nav DEFAULT CHARACTER SET utf8;
grant all on nav.* TO 'nav'@'%' IDENTIFIED BY 'xxxx';
flush privileges;

3.配置Hive Metastore数据库

用于存放Hive的元数据信息。

create database metastore DEFAULT CHARACTER SET utf8;
grant all on metastore.* TO 'hive'@'%' IDENTIFIED BY 'xxxx';
flush privileges;

注意,安装Hive的时候可能会报错,因为使用了MySql做为Hive的元数据存储,所以须要安装MySql的驱动:

yum install mysql-connector-java

4.配置Hue/Oozie数据库

用于存放Hue/Oozie配置信息。

create database hue DEFAULT CHARACTER SET utf8;
grant all on hue.* TO 'hue'@'%' IDENTIFIED BY 'xxxx';
create database oozie DEFAULT CHARACTER SET utf8;
grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY 'xxxx';
flush privileges;

4、CM Server/Agent及CDH相关套件安装

1.下载并执行cloudera-manager-installer

1)下载安装脚本

根据所需版本进行下载,本文使用https://www.cloudera.com/downloads/manager/5-8-1.html
在这里插入图片描述

2)执行安装脚本

该执行程序会指引安装CM Server,前提是YUM源提早要配置好。在须要安装CM Server的linux服务器上,使用root用户执行如下命令。

chmod u+x cloudera-manager-installer.bin
./cloudera-manager-installer.bin --skip_repo_package=1

根据提示,点击下一步,最后完成安装后会提示CM的web登录url及初始用户名密码,默认是adimin、admin。安装过程当中可能会遇到一些异常,根据提示的日志文件信息解决便可。

3)使用浏览器登录CM Web页面进行集群安装

登录CM界面后,根据安装向导执行初始化安装和配置。

(1)选择要安装的 Cloudera Manager 版本

选择免费版、试用版or商业版。

(2)经过主机名和 IP 地址范围查找您指定的群集主机

指定须要经过CM管理的服务器范围。

(3)使用 SSH 链接至每台主机以安装 Cloudera Manager Agent 和其余组件

能够提早将CM Server的公钥放置与其余服务器上,或者输入统一的用户名密码进程操做。

(4)在群集主机上安装 Oracle JDK

(5)安装 CDH 和托管服务软件包或 parcel

“选择方法”选项,选择“使用Parcel(建议)”,并点击右边按钮的“更多选项”,设置“远程Parcel存储库URL"为“http://[my-yum-server]/cloudera-parcel/”,若没有指定本地YUM源,会从网络进行下载,速度就会慢不少;
“选择CDH的版本”,若是以前已经配好了YUM源,这里会显示出相应的CDH parcel安装包,选择便可。
点击下一步就会进行parcel包的分发与安装。这一步主要会进行CM Agent的安装以及将parcel包分发到各个服务器。

(6)自动配置 CDH 和托管服务并启动服务

这一步,主要根据本身的实际需求启动相关服务,如HDFS/YARN/HBASE/HIVE/ZOOKEEPER等,能够选择核心套件,或者自定义,不过,通常以上提到的服务都是生产中经常使用到的,可根据实际调整。

  1. “集群设置”的“自定义角色配置”页面,选择须要在服务器上分配对应的角色实例。生产环境中,最好可以作到数据节点(datanode/nodemanager等)与管理节点(namenode/resourcemanager/hivemetastore/zookeeper等)的分离,因为数据节点常常会运行繁重的任务,可能会影响管理节点的稳定高效运行。
  2. “集群设置”的“数据库设置”页面,将以前在MySql建的对应库名、用户名、密码填入以后,点击链接测试,没有问题则可进入下一步。
  3. 一路点击下一步即会对集群进行初始化,如无心外,可顺利启动集群。
  4. 测试集群运行任务是否正常:hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 10 100

(7)集群启动后的优化

  1. HDFS 启用NameNode HA。点击“HDFS”服务->“操做”->“启用High Availability”,选择两个NN须要分布在哪两个服务器便可。
  2. YARN 启用HA。点击“YARN”服务->“操做”->“启用High Availability”,选择两个RM须要分布在哪两个服务器便可。
  3. HBase 启用HA。主要是HMaster在多个服务器上启动实例便可。
  4. Hive启用HA。Metastore及Hiveserver均需启用多个实例以提升可用性。
  5. 根据实际状况须要,启用kerberos认证,提升安全性,后续进行专题讨论。
  6. 各个服务根据实际使用状况的配置优化,后续进行专题讨论。
    至此,一个可用的Hadoop机器已经搭建起来了。可经过CM页面查看集群的运行状况,并可经过界面直接操做集群服务。

欢迎关注个人微信公众号
在这里插入图片描述