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

一、概述

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

二、硬件检查与系统配置

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命令进行测试,具体步骤可以参考网上的一些做法。

4)检测网卡设置

ethtool [interface]

在这里插入图片描述

5)检测路由

route -n

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

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

6)检查系统版本

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

cat /etc/issue
uname -a

2.系统配置

1)配置hostname与/etc/hosts(所有节点)

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

设置hostname

命令行执行:

hostname [name]

设置HOSTNAME以使重启生效

vim /etc/sysconfig/network 
设置/etc/hosts

将集群所有节点的信息添加到该文件中

vim /etc/hosts

2)所有节点安装SSH(所有节点)

可以选择CM server到agent通过用户名密码登录或者是公钥的方式。若使用用户名的方式,需保证所有服务器root用户名和密码一致。

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

三、数据库安装与配置

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;

四、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页面查看集群的运行情况,并可通过界面直接操作集群服务。

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

  • 6
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值