作者:段自强

文档编写目的




CDH6.3.3于2020年2月4日发布,从该版本开始,Cloudera将不再提供CDH免费版,用户只能通过试用或者购买正式许可证才能够下载CDH安装包及使用,参考《0743-Cloudera Enterprise 6.3.3发布》。这篇文档主要介绍了在Redhat7.6环境下安装CDH6.3.3集群的详细步骤。

  • 操作环境

1.操作系统:RedHat7.6

2.集群环境:CDH6.3.3

3.操作用户:root


前置准备




2.1 网络设置

修改网络IP,并设置为静态:

vim /etc/sysconfig/network-scripts/ifcfg-ens192

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql


2.2 yum源配置

1.挂载系统镜像

准备系统镜像文件,注意:准备的系统镜像文件必须与当前系统版本一致

cat /etc/redhat-release

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_02

在/media目录下创建DVD文件夹,然后挂载,系统镜像到此目录

mkdir /media/DVD
mount -o loop /dev/cdrom /media/DVD/

查看镜像已经挂载成功

df -h

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_03

进入 /etc/yum.repos.d 文件夹,创建os.repo文件并编辑该文件,编辑内容如下:

[osrepo]
name=RedHat7.6
baseurl=file:///media/DVD/
enabled=true
gpgcheck=false


cd /etc/yum.repos.d/
touch os.repo
vim os.repo

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_04

保存退出。然后执行命令 yum repolist:

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_05

在下面2.4节做好交互式脚本后,使用脚本进行同步到集群所有节点:

sh batch_scp.sh node.list /etc/yum.repos.d/os.repo /etc/yum.repos.d/

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_06

执行yum repolist:

sh batch_cmd.sh node.list "yum repolist"

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_07


2.3 安装httpd

1.下载安装httpd:

yum install -y httpd

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_08


2.修改配置文件

启动httpd,并设置开机自动启动,查看httpd状态:

systemctl start httpd
systemctl enable httpd
systemctl status httpd

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_09


2.修改系统yum源配置

创建/var/www/html/iso目录,然后将/media/DVD目录下的所有内容拷贝到/var/www/html/iso目录

mkdir /var/www/html/iso
cp -r /media/DVD/* /var/www/html/iso/

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_10

然后修改/etc/yum.repos.d/os.repo文件如下:

baseurl=http://192.168.0.193/iso/

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_11

然后执行yum repolist命令

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_12

使用Web访问iso目录测试如下目录

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_13

3.配置Cloudera Manager的repo源

将Cloudera Manager的所有rpm包放到 /var/www/html/目录的新建目录cm6.3.3下:

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_14

在/var/www/html/cm6.3.3目录下执行命令:createrepo . 生成rpm元数据:

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_15

在/etc/yum.repos.d/目录下新建cm.repo文件,并添加如下内容:

[cm_repo]
name = cm_repo
baseurl = http://192.168.0.193/cm6.3.3/
enable = true
gpgcheck = false

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_16

保存退出。

执行   

yum clean all
yum repolist

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_17

验证安装JDK

yum -y install openjdk8-8.0+232_9-cloudera

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_18

2.4 准备交互式脚本

上传脚本到master节点,执行 

yum -y install expect 

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_19


2.5 主机名设置

1.使用hostnamectl set-hostname 主机名 :(所有节点执行)

hostnamectl set-hostname cdp1.hadoop.com

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_20


2.配置 /etc/hosts

添加主机IP映射

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_21

主机IP hostname

192.168.0.193 cdp1.hadoop.com
192.168.0.194 cdp2.hadoop.com
192.168.0.196 cdp3.hadoop.com

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_22

保存退出。

使用脚本分发到所有节点:

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_23

重开窗口确认主机名生效

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_24


2.6 禁止Selinux

执行如下命令(所有节点):

./batch_cmd.sh node.list "setenforce 0"

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_25

修改配置文件

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_26


2.7 关闭防火墙

批量关闭防火墙(所有节点):

使用脚本命令:

./batch_cmd.sh node.list "systemctl stop firewalld"

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_27

设置开机不启动防火墙:

使用脚本命令:

./batch_cmd.sh node.list "systemctl disable firewalld"

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_28

查看防火墙状态:

使用脚本命令:

./batch_cmd.sh node.list "systemctl status firewalld"


0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_29


2.8 关闭透明大页面

使用脚本命令批量执行如下操作(所有节点):

sh batch_cmd.sh node.list "echo never > /sys/kernel/mm/transparent_hugepage/defrag"
sh batch_cmd.sh node.list "echo never > /sys/kernel/mm/transparent_hugepage/enabled"

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_30

修改/etc/rc.d/rc.local文件,设置开机自动关闭透明大页面,添加内容如下:

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi


vim /etc/rc.d/rc.local 

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_31

将修改后的文件分发到所有节点,然后修改文件可执行权限

sh batch_scp.sh node.list /etc/rc.d/rc.local /etc/rc.d/
sh batch_cmd.sh node.list "chmod +x /etc/rc.d/rc.local"
sh batch_cmd.sh node.list "ls -l /etc/rc.d/|grep rc.local"

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_32


2.9 设置swappiness

使用脚本批量执行(所有节点)

sh batch_cmd.sh node.list "sysctl vm.swappiness=1"
sh batch_cmd.sh node.list "echo 1 > /proc/sys/vm/swappiness"

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_33

永久修改

vim /etc/sysctl.conf
vm.seappiness = 1

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_34

分发到所有节点

sh batch_scp.sh node.list /etc/sysctl.conf /etc/

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_35

查看swappiness的值:

sh batch_cmd.sh node.list "cat /proc/sys/vm/swappiness"

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_36

2.10安装ntp时间

1.卸载chrony

在Redhat7.x的操作系统上,已经默认的安装了chrony,我们这里先卸载chrony,然后安装ntp。使用ntp来配置各台机器的时钟同步。

所有节点卸载chrony

./batch_cmd.sh node.list "yum -y remove chrony"


2.所有节点下载安装ntp服务

使用脚本批量执行

./batch_cmd.sh node.list "yum -y install ntp"

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_37


Master节点修改 /etc/ntp.conf文件:

注释部分内容

添加以下内容:

server 127.127.1.0 
fudge 127.127.1.0 stratum 10

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_38

集群其他节点修改/etc/ntp.conf文件如下:

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_39

启动ntpd服务并设置开机自启:

sh batch_cmd.sh node.list "systemctl start ntpd"
sh batch_cmd.sh node.list "systemctl enable ntpd"
sh batch_cmd.sh node.list "systemctl status ntpd | grep Active"

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_40

查看同步状态:

sh batch_cmd.sh node.list "ntpq -p"

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_41

2.11安装数据库

1.安装外部数据库

yum -y install mariadb mariadb-server

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_42

启动MariaDB数据库服务,并设置未开机自启:

systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_43

配置mariadb,设置密码为password

/usr/bin/mysql_secure_installation

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_44

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_45


2.创建集群所需要的数据库

create database metastore default character set utf8;
CREATE USER 'hive'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON metastore.* TO 'hive'@'%';
FLUSH PRIVILEGES;
create database scm default character set utf8;
CREATE USER 'scm'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON scm.* TO 'scm'@'%';
FLUSH PRIVILEGES;
create database rm default character set utf8;
CREATE USER 'rm'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON rm.* TO 'rm'@'%';
FLUSH PRIVILEGES;

create database am default character set utf8;
CREATE USER 'am'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON am.* TO 'am'@'%';
FLUSH PRIVILEGES;
create database hue default character set utf8;
CREATE USER 'hue'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON hue.* TO 'hue'@'%';
FLUSH PRIVILEGES;
create database oozie default character set utf8;
CREATE USER 'oozie'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON oozie.* TO 'oozie'@'%';
FLUSH PRIVILEGES;
create database sentry default character set utf8;
CREATE USER 'sentry'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON sentry. * TO 'sentry'@'%';
FLUSH PRIVILEGES;
create database nav_ms default character set utf8;
CREATE USER 'nav_ms'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON nav_ms. * TO 'nav_ms'@'%';
FLUSH PRIVILEGES;
create database nav_as default character set utf8;
CREATE USER 'nav_as'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON nav_as. * TO 'nav_as'@'%';
FLUSH PRIVILEGES;

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_46

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_47

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_48

3.安装jdbc驱动

创建/usr/share/java/文件夹,然后将MySQL的JDBC驱动包上传至该目录

注意:不是所有节点都需要MySQL驱动,只有节点上有服务需要数据库时,该节点才需要驱动jar包。

使用软链接的形式去掉驱动jar包的版本号

ln -s mysql-connector-java-5.1.34.jar mysql-connector-java.jar

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_49

集群的部署安装




3.1 安装并启动Cloudera-Manager-Server

在master节点上安装Cloudera-Manager-Server:

yum -y install cloudera-manager-server

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_50

初始化数据库:

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm password

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_51

启动cloudera-scm-server,并查看7180端口是否被监听。当出现如下所示7180端口被监听,则可以打开浏览器Web页面。

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm password

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_52

3.2 集群安装向导


3.2.1 登录CM

通过网页访问192.168.193:7180

输入账户:admin

密码:admin登录CM

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_53

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_54



3.2.2 选择60天试用,点击继续

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_55

点击继续

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_56

继续,输入集群名称,可以使用默认的“Cluster 1”。

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_57



3.2.3 指定安装主机

指定集群主机机器

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_58

根据输入搜索到指定主机,点击继续



3.2.4 设置存储库

添加自定义的cm存储库URL

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_59

设置自定义的parcel存储库URL和cm存储库URL

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_60

添加自定义的Parcel存储卡URL

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_61

点击继续

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_62



3.2.5 安装JDK

选择JDK,点击继续

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_63



3.2.6 ssh登录

选择用户,并输入密码

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_64

安装…

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_65

安装成功

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_66

安装选定parcel…

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_67

安装成功,继续


3.2.7 主机正确性检查

主机正确性检查,确保全部通过后点完成

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_68



3.2.8 组件安装

群集设置,

选择自己要安装的组件

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_69

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_70

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_cloudera_71



3.2.9 数据库连接测试

测试数据库连接

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_72

审核更改

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_73

首次运行命令,启动集群服务

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_ide_74

集群设置配置成功,点击完成

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3_mysql_75

集群安装完成,进入Cloudera Manager主页


总结





1.从安装方式上来看,CDH6与CDH5变化不大,这也方便了CDH5的用户可以较为快速的迁移到CDH6,以及适应CDH6的安装与使用。


2.安装条件前置没有任何变化,包括防火墙,Selinux关闭,ntp同步等等


3.在配置Cloudera Manager连接到数据库时的脚本有所变化。以前是/usr/share/cmf/schema/scm_prepare_database.sh,现在是/opt/cloudera/cm/schema/scm_prepare_database.sh


4.在JDK方面,CDH自带JDK1.8.0_181,将不再支持JDK1.7。


5.从CDH6.3.3开始已经不再提供免费版,安装界面只有2个选择,一个是试用60天,另一个是上传许可证后继续安装。