作者:段自强
文档编写目的
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
2.2 yum源配置
1.挂载系统镜像
准备系统镜像文件,注意:准备的系统镜像文件必须与当前系统版本一致
cat /etc/redhat-release
在/media目录下创建DVD文件夹,然后挂载,系统镜像到此目录
mkdir /media/DVD
mount -o loop /dev/cdrom /media/DVD/
查看镜像已经挂载成功
df -h
进入 /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
保存退出。然后执行命令 yum repolist:
在下面2.4节做好交互式脚本后,使用脚本进行同步到集群所有节点:
sh batch_scp.sh node.list /etc/yum.repos.d/os.repo /etc/yum.repos.d/
执行yum repolist:
sh batch_cmd.sh node.list "yum repolist"
2.3 安装httpd
1.下载安装httpd:
yum install -y httpd
2.修改配置文件
启动httpd,并设置开机自动启动,查看httpd状态:
systemctl start httpd
systemctl enable httpd
systemctl status httpd
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/
然后修改/etc/yum.repos.d/os.repo文件如下:
baseurl=http://192.168.0.193/iso/
然后执行yum repolist命令
使用Web访问iso目录测试如下目录
3.配置Cloudera Manager的repo源
将Cloudera Manager的所有rpm包放到 /var/www/html/目录的新建目录cm6.3.3下:
在/var/www/html/cm6.3.3目录下执行命令:createrepo . 生成rpm元数据:
在/etc/yum.repos.d/目录下新建cm.repo文件,并添加如下内容:
[cm_repo]
name = cm_repo
baseurl = http://192.168.0.193/cm6.3.3/
enable = true
gpgcheck = false
保存退出。
执行
yum clean all
yum repolist
验证安装JDK
yum -y install openjdk8-8.0+232_9-cloudera
2.4 准备交互式脚本
上传脚本到master节点,执行
yum -y install expect
2.5 主机名设置
1.使用hostnamectl set-hostname 主机名 :(所有节点执行)
hostnamectl set-hostname cdp1.hadoop.com
2.配置 /etc/hosts
添加主机IP映射
主机IP hostname
192.168.0.193 cdp1.hadoop.com
192.168.0.194 cdp2.hadoop.com
192.168.0.196 cdp3.hadoop.com
保存退出。
使用脚本分发到所有节点:
重开窗口确认主机名生效
2.6 禁止Selinux
执行如下命令(所有节点):
./batch_cmd.sh node.list "setenforce 0"
修改配置文件
2.7 关闭防火墙
批量关闭防火墙(所有节点):
使用脚本命令:
./batch_cmd.sh node.list "systemctl stop firewalld"
设置开机不启动防火墙:
使用脚本命令:
./batch_cmd.sh node.list "systemctl disable firewalld"
查看防火墙状态:
使用脚本命令:
./batch_cmd.sh node.list "systemctl status firewalld"
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"
修改/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
将修改后的文件分发到所有节点,然后修改文件可执行权限
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"
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"
永久修改
vim /etc/sysctl.conf
vm.seappiness = 1
分发到所有节点
sh batch_scp.sh node.list /etc/sysctl.conf /etc/
查看swappiness的值:
sh batch_cmd.sh node.list "cat /proc/sys/vm/swappiness"
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"
Master节点修改 /etc/ntp.conf文件:
注释部分内容
添加以下内容:
server 127.127.1.0
fudge 127.127.1.0 stratum 10
集群其他节点修改/etc/ntp.conf文件如下:
启动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"
查看同步状态:
sh batch_cmd.sh node.list "ntpq -p"
2.11安装数据库
1.安装外部数据库
yum -y install mariadb mariadb-server
启动MariaDB数据库服务,并设置未开机自启:
systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb
配置mariadb,设置密码为password
/usr/bin/mysql_secure_installation
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;
3.安装jdbc驱动
创建/usr/share/java/文件夹,然后将MySQL的JDBC驱动包上传至该目录
注意:不是所有节点都需要MySQL驱动,只有节点上有服务需要数据库时,该节点才需要驱动jar包。
使用软链接的形式去掉驱动jar包的版本号
ln -s mysql-connector-java-5.1.34.jar mysql-connector-java.jar
集群的部署安装
3.1 安装并启动Cloudera-Manager-Server
在master节点上安装Cloudera-Manager-Server:
yum -y install cloudera-manager-server
初始化数据库:
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm password
启动cloudera-scm-server,并查看7180端口是否被监听。当出现如下所示7180端口被监听,则可以打开浏览器Web页面。
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm password
3.2 集群安装向导
3.2.1 登录CM
通过网页访问192.168.193:7180
输入账户:admin
密码:admin登录CM
3.2.2 选择60天试用,点击继续
点击继续
继续,输入集群名称,可以使用默认的“Cluster 1”。
3.2.3 指定安装主机
指定集群主机机器
根据输入搜索到指定主机,点击继续
3.2.4 设置存储库
添加自定义的cm存储库URL
设置自定义的parcel存储库URL和cm存储库URL
添加自定义的Parcel存储卡URL
点击继续
3.2.5 安装JDK
选择JDK,点击继续
3.2.6 ssh登录
选择用户,并输入密码
安装…
安装成功
安装选定parcel…
安装成功,继续
3.2.7 主机正确性检查
主机正确性检查,确保全部通过后点完成
3.2.8 组件安装
群集设置,
选择自己要安装的组件
3.2.9 数据库连接测试
测试数据库连接
审核更改
首次运行命令,启动集群服务
集群设置配置成功,点击完成
集群安装完成,进入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天,另一个是上传许可证后继续安装。