在Centos7下安装CDH6.X

1 安装流程概述

在安装之前我们先来梳理下安装的思路,根据官方安装1 文档:

  • Step1  配置一个Cloudra Manager本地Yum2仓库
  • Step2  安装oracle 1.8+ openjdk 11+
  • Step3  安装Cloudra Manager Server
  • Step4  安装数据库
  • Step5  配置Cloudra Manager数据库
  • Step6  安装CDH和其他软件
  • Step7  完成集群配置

马克思说过:实践是检验真理的唯一标准,下面我们就来搞一把,把CDH集群装起来。

2 集群规划

主机名IP操作系统角色
node01192.169.1.200Centos 7Cloudra Manager, Name Node,Data Node
node02192.169.1.201Centos 7Data Node
node03192.169.1.202Centos 7Data Node

根据Cloudra官方安装文档说明,我们首先安装Cloudra Manager

3 安装准备

在安装之前,我们要对我们的集群的所有节点进行一些公共的系统配置

3.1检查jdk安装

通过java -version命令检查java的版本,oracle的jdk需要使用1.8版本以上,IBM的openjdk需要使用11版本以上的版本。
1.oracle jdk的安装方法就不再赘述了,记得配置环境变量:
编辑/etc/profile文件,并在文件末尾追加一下内容(P.S.:我的jdk放在/usr/local/java)

export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

编辑完成后使环境变量生效:

source /etc/profile
  1. openjdk的安装方法首先安装openjdk1.8然后在安装openjdk11,一般centos7安装的时候openjdk1.8就已经安装好了,只需要直接圣洁openjdk11即可

3.2 根据集群规划配置主机名称、网络及配置hosts文件

  1. 配置主机名
    通过hostnamectl命令来设置主机名称:
    hostnamectl 命令描述
    通过上图我们可以看到可以通过(以配置node01主机为例)
hostnamectrl set-hostname node01

2.配置网络
根据集群节点的规划配置集群的网络。
首先,通过ifconfig检查网络设备名称
然后,根据得出的网络设备名称对网络设备进行配置,我得到的名称是ens33,故我要编辑的网络设备的配置为/etc/sysconfig/network-scripts/ifcfg-ens33 (仍然以node01为例,其他节点修改方法以此类推)

vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 替换内容如下:
TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="ens33"
ONBOOT="yes"
UUID="cb26e1ac-5b8d-4896-85ac-a46f20c99e64" #如实填写
DEVICE="ens33"
IPADDR=192.168.1.200 #根据集群节点规划填写
GATEWAY=192.168.1.1
NETMASK=255.255.255.0
DNS1=8.8.8.8
DNS2=114.114.114.114
#DNS的填写根据网络运营商或自己的实际网络信息填写

编辑完成以后重启网络服务:

systemctl restart network.service

3.配置hosts
修改/etc/hosts文件,添加映射关系,执行命令:

vi /etc/hosts

添加如下内容:

192.168.1.200 node01
192.168.1.201 node02
192.168.1.202 node03

3.3 配置免密

1.配置host key自动添加到know_hosts列表中
sed -i "s/#   StrictHostKeyChecking ask/StrictHostKeyChecking no/g" /etc/ssh/ssh_config
2.生成秘钥
ssh-keygen -t rsa

根据提示一直回车到提示结束,中间不输入任何其他命令或配置

3.复制公钥到其他节点

在每个节点上执行一下操作

ssh-copy-id root@node01
ssh-copy-id root@node02
ssh-copy-id root@node03
# @前面的用户根据自己实际使用的用户填写

3.4 集群系统参数调整

1. 关闭防火墙

首先检查防火墙是否已经关闭,且禁用开机启动
执行systemctl status firewalld.service命令
在这里插入图片描述
如上图所示,如果返回的结果最后一行有Stoped关键字,那么为关闭状态。如果是Started关键字,那么执行systemctl stop firewalld.service,在所有节点上进行检查,配置好免密登录后可以执行以下操作:

#关闭防火墙
ssh node01 'systemctl stop firewalld.service'
ssh node02 'systemctl stop firewalld.service'
ssh node03 'systemctl stop firewalld.service'
# 禁止防火墙开机自启
ssh node01 'systemctl disable firewalld.service'
ssh node02 'systemctl disable firewalld.service'
ssh node03 'systemctl disable firewalld.service'
2. 禁用Selinux
vim /etc/sysconfig/selinux
## 修改配置项:    
SELINUX=disabled 

重启生效,可以先不重启,等配置完成后进行重启计算机操作。

3. 设置最大文件打开数据和用户最大进程数
vim /etc/security/limits.conf 

结尾添加以下内容 :

* soft nofile 1048576
* hard nofile 1048576 
* soft nproc 655360 
* hard nproc unlimited 
* soft memlock unlimited 
* hard memlock unlimited
4. 配置ntpd时间同步服务

因为集群节点间的时间需要同步,故需要给节点配置ntp服务,让时间能够同步,此次安装使用的是cn.ntp.org.cn的ntp服务器,如果有自己的ntp服务也可以使用自己的IP,通过执行一下命令进行配置ntp服务器

ntpdate cn.ntp.org.cn

检查时区配置

##检索时区值
timedatectl list-timezones | grep -i shanghai
##设置时区
timedatectl set-timezone Asia/Shanghai
5. 关闭透明页(非必需,属于优化选项)

临时关闭, 在/etc/rc.local文件中加入:

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

永久关闭

echo ' ' >> /etc/rc.local
echo '# 关闭大透明页面' >> /etc/rc.local 
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local 
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local 

查看是否已经关闭

cat /sys/kernel/mm/redhat_transparent_hugepage/defrag 
cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
6. 设置交换内存

在centos7中有两个地方需要修改来禁用交换内存:

#最佳禁用配置到/etc/sysctl.conf
echo "vm.swappiness=0" >> /etc/sysctl.conf
#使配置生效
sysctl -p /etc/sysctl.conf 

查找/usr/lib/tuned/路径下的交换内存配置

grep "vm.swappiness" -R /usr/lib/tuned/

在这里插入图片描述
执行以下命令进行修改

sed -i "s/vm\.swappiness=10/vm\.swappiness=0/g" /usr/lib/tuned/latency-performance/tuned.conf /usr/lib/tuned/throughput-performance/tuned.conf
sed -i "s/vm\.swappiness = 30/vm\.swappiness = 0/g" /usr/lib/tuned/virtual-guest/tuned.conf

4 安装MySQL

根据官方安装文档,CDH支持多种数据库如 PostgreSQL, MariaDB, MySQL, or Oracle,我们这里选择使用MySQL作为CDH的元数据数据引擎。
安装文档参考我的blog 在Centos7下离线安装mysql5.7
如果是rpm安装记得安装mysql-community-libs-compat,不然后续安装Cloudra Manager会缺少依赖

5安装Cloudra Manager

安装完成数据库后,我们来安装Cloudra Manager,首先要下载安装包

5.1 下载安装包

Cloudera Manager 6.3.1
CM6 Repo:https://archive.cloudera.com/cm6/6.3.1/repo-as-tarball/cm6.3.1-redhat7.tar.gz
MySQL JDBC驱动
要求使用5.1.26以上版本的jdbc驱动,可点击这里直接下载mysql-connector-java-5.1.47.tar.gz
CDH 6.3.2
CDH6 Parcels:https://archive.cloudera.com/cdh6/6.3.2/parcels/
需要下载以下文件

CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256
manifest.json

下载 allkeys.asc:https://archive.cloudera.com/cm6/6.3.1/allkeys.asc

5.2 安装httpd服务

# 安装httpd服务
yum install httpd
#开启httpd服务
service httpd start
#配置httpd服务开机自启
systemctl enable httpd.service

5.3 创建Cloudra Manager的本地yum源

# 创建软件目录
mkdir -p /opt/software/cloudera/cm
# 进入软件目录
cd /opt/software/cloudera/cm
#将cm安装包拷贝到当前目录
cp /root/install/cm6.3.1-redhat7.tar.gz.tar ./
# 解压cm
tar -zxvf cm6.3.1-redhat7.tar.gz.tar
# 创建yum repo 
createrepo /opt/software/cloudera/cm6.3.0/
# 创建http服务映射
ln -s /opt/software/cloudera/cm6.3.1/ /var/www/html/cm
#将allkey.asc 文件拷贝到
cp /root/install/allkey.asc ./

创建cm的Yum配置文件

vi /etc/yum.repos.d/cm.repo
# 编辑Cloudra Manager yum源配置 
[cm]
name=cm
baseurl=http://192.168.1.200/cm
enabled=1
gpgcheck=0

创建Yum缓存

yum clean all
yum makecache

5.4 安装Cloudra Manager

yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

5.5 配置CDH的Parcel源

Cloudera Manager Server会被安装在/opt/cloudera/目录中,进入到本地Parcel存储库目录:

cd /opt/cloudera/parcel-repo

将5.1部分下载的CDH Parcel文件拷贝至该目录下,然后执行命令生成sha文件:

sha1sum CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel | awk '{ print $1 }' > CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha

然后执行下面的命令修改文件所有者,安装完成会自动创建cloudera-scm用户和用户组:

chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*

最终/opt/cloudera/parcel-repo目录内容如下:
在这里插入图片描述

6 配置数据库

安装Cloudra Manager完成后,进行数据库的配置

6.1 配置MySQL Connector

解压5.1中下载好的mysql-connector-java-5.1.47.tar.gz包中解压出mysql-connector-java-5.1.47-bin.jar文件

tar zxvf mysql-connector-java-5.1.47.tar.gz

将mysql-connector-java-5.1.47-bin.jar文件拷贝至CM Server节点上的/usr/share/java/目录下并重命名为mysql-connector-java.jar(如果/usr/share/java/目录不存在,需要手动创建):

mkdir -p /usr/share/java/
cp mysql-connector-java-5.1.47-bin.jar /usr/share/java/mysql-connector-java.jar

6.2 配置CDH个组件主要的数据库

组件数据库名称数据库用户
Cloudera Manager Serverscmscm
Activity Monitoramonamon
Reports Managerrmanrman
Huehuehue
Hive Metastore Servermetastorehive
Sentry Serversentrysentry
Cloudera Navigator Audit Servernavnav
Cloudera Navigator Metadata Servernavmsnavms
Oozieoozieoozie

创建数据库脚本

CREATE DATABASE `scm` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE `amon` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE `rman` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE `hue` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE `metastore` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE `sentry` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE `nav` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE `navms` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE `oozie` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

创建数据库用户脚本

GRANT ALL ON scm.* TO'scm'@'%' IDENTIFIED BY 'scm@123';
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'amon@123';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman@123';
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'hue@123';
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'hive@123';
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'sentry@123';
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'nav@123';
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'navms@123';
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie@123';

如果你的mysql配置了安全策略,那么你需要把你mysql用户的密码设置成能够满足安全策略的密码。

6.3设置Cloudera Manager 数据库

Cloudera Manager Server包含一个配置数据库的脚本。

  • mysql数据库与CM Server是同一台主机
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
  • mysql数据库与CM Server不在同一台主机上
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h <mysql-host-ip> --scm-host <cm-server-ip> scm scm

执行命令后,会要求输入密码。然后就会告诉你配置完毕,如下图所示:
在这里插入图片描述

7 CDH集群安装

7.1 启动Cloudra Manager Server

systemctl start cloudera-scm-server

然后等待Cloudera Manager Server启动,可能需要稍等一会儿,可以通过命令tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log去监控服务启动状态。

当看到INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.日志打印出来后,说明服务启动成功.
通过浏览器访问Cloudera Manager WEB界面
打开浏览器,访问地址:http://<server_host>:7180,默认账号和密码都为admin

7.2 选择license

进入界面后,接受条款,选择license,这里先选择免费版本。

7.3 集群配置

  1. 进入集群配置欢迎界面
    在这里插入图片描述
  2. 设置集群名称
    在这里插入图片描述
  3. 选择主机
    通过下表的规则可以查找出可用的机器来搭建集群。
Expansion RangeMatching Hosts
10.1.1.[1-4]10.1.1.1, 10.1.1.2, 10.1.1.3, 10.1.1.4
host[1-3].example.comhost1.example.com, host2.example.com, host3.example.com
host[07-10].example.comhost07.example.com, host08.example.com, host09.example.com, host10.example.com

在这里插入图片描述

  1. 配置安装源
  • 根据5.3配置的Cloudra Manager的Yum Repo
  • 配置公共parcel源
  • 配置其他组件parcel源
  1. 安装JDK
    因为已经安装过JDK了,就不再安装了

  2. 设置集群SSH登录
    在这里插入图片描述

  3. 安装cloudra agent
    在这里插入图片描述

  4. 安装完成然后继续配置集群


  1. CDH官方安装文档
    CDH有详细的官方安装文档支持,如果词汇量允许建议直接阅读官方安装文档,能够得到能够得到更权威的指导。 ↩︎

  2. Yum的相关知识、安装、配置及常用命令可参照我的Blog Linux Yum源创建与配置 ↩︎

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TBicycle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值