CDH 6.3.2安装步骤
一、准备工作
1.服务器准备
需要3台新服务器,具体配置及架构如下:
2.软件环境准备
CDH安装所需要的系统必要条件如下:
3.前期基础环境配置
①分别修改hostname、hosts(所有节点)
#修改每台服务器hostname
hostnamectl set-hostname XXX
#修改每台服务器ip映射文件
vim /etc/hosts
172.31.41.xxx bigdata111
172.31.41.xxx bigdata112
172.31.41.xxx bigdata113
重启网络
systemctl restart network
②关闭防火墙、selinux(所有节点)
#关闭防火墙
#查看防火墙状态
systemctl status firewalld
#关闭防火墙
systemctl stop firewalld
#禁用
systemctl disable firewalld
#清空防火墙规则
iptables -F
#关闭selinux
vim /etc/selinux/config
SELINUX=disabled
③禁用透明大页(所有节点)
开启固定大小的内存大页,内存大页的好处:在进行内存读写的时候,以整个大页面的大小进行一次IO
吞吐。提高IO的吞吐量。缺点:没有改变底层存储,只是设置一个虚拟页面,可能造成小文件读写的时
候浪费资源。(cloudera建议关闭)
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >>
/etc/rc.d/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >>
/etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
# 如果在后面的检测中,还是会报警告则可以再次执行下面两句
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
④修改Linux swappiness参数(所有节点)
为了避免服务器使用swap功能,swap功能:内存不够时,使用硬盘资源。使用交换swap功能会造成集
群性能下降。一般vm.swappiness修改为0(cloudera建议10以下)
# 临时设置
sysctl vm.swappiness=10
# 永久修改
echo 'vm.swappiness=10'>> /etc/sysctl.conf
⑤时间同步(每个节点执行)
Centos7默认使用Chrony工具而非NTP进行时间同步,Chrony和NTP两者有冲突只能选其一,CDH6推荐使用Chrony,安装和启动命令如下:
# 安装
yum -y install chrony
# 启动
systemctl start chronyd
修改硬件时钟为UTC,时区为本地时区
# 硬件时钟设置为UTC
timedatectl set-local-rtc 0
# 设置本地时区,显示本地时间
timedatectl set-timezone Asia/Shanghai
# 手动加载RTC设置
hwclock --systohc
# 设置ntp为true
timedatectl set-ntp true
⑥配置最大进程数和最大文件句柄数
用户的进程和文件句柄数配置文件是/etc/security/limits.conf,类型包括硬限制(hard)和软限制(soft),*表示所有用户,nproc表示打开最大进程数,nofile表示最大文件句柄数。Cloudera推荐最大进程数nproc为65536或26214。
#每台节点修改大进程数和最大文件句柄数
echo '* soft nproc 65535' >> /etc/security/limits.conf
echo '* hard nproc 65535' >> /etc/security/limits.conf
echo '* soft nofile 65535' >> /etc/security/limits.conf
echo '* hard nofile 65535' >> /etc/security/limits.conf
⑦配置集群节点间免密登录
#生成公钥和私钥
cd /root/.ssh
ssh-keygen -t rsa
#2.将公钥拷贝到要免密登录的目标机器上
[hadoop@hadoop111 .ssh]$ ssh-copy-id bigdata112
[hadoop@hadoop111 .ssh]$ ssh-copy-id hadoop113
#重复1、2的操作分别配置bigdata111、bigdata112、bigdata113三台服务器免密登录
⑧安装jdk(每台节点都需要做)
1.检查系统是否安装了jdk
rpm -qa | grep java
rpm -qa | grep jdk
2.如果存在就卸载已有的jdk
eg: rpm -e --nodeps java-1.7.0-openjdkxxx
3.安装jdk1.8
#1.上传jdk-8u131-linux-x64.rpm文件到 /usr/local/
#2.解压jdk
tar -zxvf jdk-8u131-linux-x64.tar.gz
#3.重命名jdk
mv jdk1.8.0_131 jdk
#4.配置环境变量
vim /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/local/jdk
export CLASS_PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
#5. 重新加载配置文件,使配置文件生效。
source /etc/profile
#6.检查是否安装成功
#安装完成后,使用java -version 显示java version "1.8.0_131"即安装成功
二、安装CM 6.3.1
1.上传安装包
将CM和CDH相关包上传到bigdata111的/data/application/cdh6.3.2 目录下
#在/data目录下创建application目录以后安装组件都放这里
cd /data
mkdir -p /data/application/cdh6.3.2
cdh6.3.2
├── CDH6.3.2
│ ├── 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
│ └── manifest.json
├── CM6.3.1
│ ├── allkeys.asc
│ ├── cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
│ ├── cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
│ ├── cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
│ ├── cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
│ └── enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm
#修改名称,不然会连接网络检查完整性
mv 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.sha
#校验
cat CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
/usr/bin/sha1sum CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
检查两次执行输出的内容是否一致
2.创建CDH对应库、用户
注:提前在在qa环境创建库cdh_scm用于测试是否对生产库中的表产生影响,如果没有影响则按照生产库bigdata103 mysql进行下去
创建CM、CDH元数据库、用户和amon的服务的库、用户
①在mysql安装节点上登录mysql,创建以下库、用户:
#安装CM,先创建以下两个库、用户有即可
CREATE DATABASE cdh_scm DEFAULT CHARACTER SET utf8;
CREATE DATABASE cdh_amon DEFAULT CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON cdh_scm.* TO 'cdh_scm'@'%' IDENTIFIED BY 'cdhscm';
GRANT ALL PRIVILEGES ON cdh_amon.* TO 'cdh_amon'@'%' IDENTIFIED BY 'cdhamon';
#剩下的安装CDH组件的时候载创建
CREATE DATABASE cdh_hue DEFAULT CHARACTER SET utf8;
CREATE DATABASE cdh_metastore DEFAULT CHARACTER SET utf8;
CREATE DATABASE cdh_ozzie DEFAULT CHARACTER SET utf8;
CREATE DATABASE cdh_rman DEFAULT CHARACTER SET utf8;
CREATE DATABASE cdh_nav DEFAULT CHARACTER SET utf8;
CREATE DATABASE cdh_navms DEFAULT CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON cdh_hue.* TO 'cdh_hue'@'%' IDENTIFIED BY 'cdhhue';
GRANT ALL PRIVILEGES ON cdh_metastore.* TO 'cdh_metastore'@'%' IDENTIFIED BY 'cdhmetastore';
GRANT ALL PRIVILEGES ON cdh_ozzie.* TO 'cdh_ozzie'@'%' IDENTIFIED BY 'Udianozzie';
GRANT ALL PRIVILEGES ON cdh_rman.* TO 'cdh_rman'@'%' IDENTIFIED BY 'Udianrman';
GRANT ALL PRIVILEGES ON cdh_nav.* TO 'cdh_nav'@'%' IDENTIFIED BY 'Udiannav';
GRANT ALL PRIVILEGES ON cdh_navms.* TO 'cdh_navms'@'%' IDENTIFIED BY 'Udiannavms';
FLUSH PRIVILEGES;
3.上传mysql jdbc jar包
在每台主机上上传mysql jar包
mkdir /usr/share/java
#将jar包放到/usr/share/java目录下
mv mysql-connector-java-5.1.47.jar mysql-connector-java.jar
4.搭建私有Yum源
制作CDH和CM的本地repo源,方便内网集群节点访问
bigdata111节点安装Apache httpd服务,用于后续通过Http方式访问和下载CDH和CM安装包。
# 安装httpd和createrepo
yum -y install httpd createrepo
# 启动
systemctl start httpd
# 开机启动
systemctl enable httpd
注意:httpd服务在传输parcel文件时,默认会设置“Content-Encoding”,导致CM Server认为parcel文件已经被httpd压缩并尝试解压缩,结果会报错,解决办法是修改httpd的配置文件。
修改配置文件 /etc/httpd/conf/httpd.conf,在中添加支持.parcel文件类型,用于远程下载parcel文件。
[root@node1 ~]# vim /etc/httpd/conf/httpd.conf
<IfModule mime_module>
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz .parcel
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
重启httpd服务
systemctl restart httpd
配置web服务
bidata111节点移动cdh6.3.2到httpd服务的根目录/var/www/html下,生成repo元数据,用于通过Yum访问。
mv /data/application/cdh6.3.2 /var/www/html
cd /var/www/html/cdh6.3.2/CM6.3.1/ && createrepo .
cd /var/www/html/cdh6.3.2/CDH6.3.2/ && createrepo .
验证http访问http://bigdata111/cdh6.3.2/CDH6.3.2/ ,http://bigdata111/cdh6.3.2/CM6.3.1/,看是否有数据
制作本地repo源(每个节点都配置)
在/etc/yum.repos.d目录下创建cm-local.repo配置文件,添加如下内容:
[root@node1 yum.repos.d]# vim /etc/yum.repos.d/cm-local.repo
[cm-repo]
name=cm-repo
baseurl=http://bigdata111/cdh6.3.2/CM6.3.1
enabled=1 # 启用yum
gpgcheck=0 # 不检查检查gpg
在集群其他节点上执行同样命令
scp /etc/yum.repos.d/cm-local.repo root@bigdata112:/etc/yum.repos.d/
scp /etc/yum.repos.d/cm-local.repo root@bigdata113:/etc/yum.repos.d/
#清理 YUM 的缓存目录。重新生成 YUM 软件包管理器的缓存
yum clean all && yum makecache
#显示当前系统中所有可用的 YUM 软件源信息
yum repolist
5.部署CM server+agent
CM各服务架构如下:
①首先bigdtata111节点安装cloudera manager server,其它节点安装cloudera manager agenet方便后续通过Web UI安装CDH。
#安装之前最好安装以下依赖,防止因为缺少依赖导致安装失败(所有节点)
yum install -y bind-utils libxslt cyrus-sasl-plain cyrus-sasl-gssapi portmap fuse-libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 Mysql-python fuse
#在bigdata111节点安装以下服务
yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
#在bidata112、113上安装的以下服务
yum install -y cloudera-manager-daemons cloudera-manager-agent
②主节点修改server配置、所有节点修改agent配置
#主节点(bigdata111)修改server配置
vim /etc/cloudera-scm-server/db.properties
#修改以下内容
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=bigdata111
com.cloudera.cmf.db.name=cdh_scm
com.cloudera.cmf.db.user=cdh_scm
com.cloudera.cmf.db.password=123456
com.cloudera.cmf.db.setupType=EXTERNAL
#所有节点修改agent的配置,指定server节点bigdata111
vim /data/application/cdh6.3.2/cm-6.3.1/etc/cloudera-scm-agent/config.ini
server_host=bigdata111
③配置本地Parcel存储库
#目前cdh包路径和文件如下
[root@bigdata111 CDH6.3.2]# tree /var/www/html/cdh6.3.2/CDH6.3.2
/var/www/html/cdh6.3.2/CDH6.3.2
|-- CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
|-- CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
|-- manifest.json
`-- repodata
#将parcel包拷贝到cdh安装目录下
[root@bigdata111 parcel-repo]# pwd
/opt/cloudera/parcel-repo
cp /var/www/html/cdh6.3.2/CDH6.3.2/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel* ./
cp /var/www/html/cdh6.3.2/CDH6.3.2/manifest.json ./
④初始化scm数据库
#初始化scm
/opt/cloudera/cm/schema/scm_prepare_database.sh -h bigdata103 -P 3306 mysql cdh_scm cdh_scm Udianscm
#显示以下信息则初始化成功
[main] DbCommandExecutor INFO Successfully connected to database.
All done, your SCM database is configured correctly!
⑤所有agent节点安装agent
yum install -y cloudera-manager-daemons cloudera-manager-agent
安装完CM后/opt/ 下会出现cloudera目录
mv /data/cdh6/* /opt/cloudera/parcel-repo/
⑥bigdata111节点启动Server、所有节点启动agent
#bigdata101节点启动Server
# 启动
systemctl start cloudera-scm-server
# 开机启动
systemctl enable cloudera-scm-server
# 查看状态
systemctl status cloudera-scm-server
查看启动日志:
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
若启动日志里有错误,则根据提示进行处理,直到server正常启动。
scd和parcel-repo如果不是放在/opt/cloudera,而是自定义了的话,那么启动server时将会报
错,因为这是cm的默认的路径,我们在后面安装中指定,所以这两个错误可以忽略。不影响server正常
启动。
#所有节点(包括bigdata101)启动Agent
systemctl start cloudera-scm-agent & systemctl enable cloudera-scm-agent
查看agent启动日志:
tail -f /var/log/cloudera-scm-agent/cloudera-scm-agent.log
三、安装部署CDH组件
① 登录CDH UI界面,进行的后续安装配置
Web UI地址:http://bigdata111:7180/
user:admin passwd:admin
进入欢迎页面,点击“继续”
勾选接受许可条款和条件,点击“继续”
选择免费版
进入集群安装页面,点击“继续”
编辑集群名称,填入Cluster 1,安装成功后可以重命名集群,点击“继续”
使用模式输入主机名称或者IP地址,点击“搜索”找到主机后勾选节点,点击“继续”
Cloudera Manager Agent的自定义存储库输入CM仓库地址:http://172.31.41.111/cdh6.3.2/CM6.3.1
CDH and other software选择“使用 Parcel (建议)”,点击“更多选项”进入Parcel存储库设置页面。“Parcel目录”和“本地Parcel存储库路径”不用编辑选择默认目录就好,编辑“远程Parcel存储库URL”,输入CDH仓库地址: http://bigdata111/cdh6.3.2/CDH6.3.2/,点击“-”删除其它URL,点击“保存更改”。
上一步保存后此处的CDH版本会自动刷新,点击“继续”
安装完毕自动跳转到下一步开始下载并安装Parcels
点击“Inspect Network Performance”和“Inspect Hosts”,检查网络和主机性能。如果出现黄色告警,查看“显示检查器结果”,逐项解决后点击“重新运行”,直到所有的检查都通过方可点击“继续”,也可以直接选择最后一项跳过告警,点击“继续”。
进入集群设置页面,选择需要安装的服务组合。
选择自定义服务,选择自己需要的组件:HDFS、kafka、Yarn,点击“继续”。
进入集群自定义角色分配,根据自己的规划给节点分配角色。
配置完成,点击“按主机查看”,点击“继续”
进入数据库设置页面,选择数据库类型MySQL、输入主机名称、数据库、用户及密码,点击“测试连接”,测试成功后,点击“继续”。
进入审核更改页面,检查默认的目录设置是否合适,可根据实际情况调整,确认无误后点击“继续”。
开始运行命令进行各个组件安装,完成后点击“继续”。
进入汇总页面,表示集群组件安装成功并启动,点“完成”。
最后进入CM管理主页,将报错部分修复,至此CDH6.3.2安装成功!