一.准备⼯工作
1.离线部署主要分为三块:
a.MySQL离线部署
b.CM离线部署
c.Parcel⽂文件离线源部署
2.规划
3.下载源:
CM:
Parcel
- CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel
- CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1
- manifest.json
JDK
- https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html
- 下载jdk-8u202-linux-x64.tar.gz
- 准备好百度云,下载安装包:
- 链接:https://pan.baidu.com/s/10s-NaFLfztKuWImZTiBMjA 密码:viqp
在mysql的部署之前考虑到airflow支持不超过5.6的版本,所以就选择了5.6版本,你们具体用啥可以自行决定
下载:
- mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
- MySQL jdbc jar mysql-connector-java-5.1.47.jar
具体可参考博客:https://www.cnblogs.com/xuziyu/p/10353968.html
二.集群节点初始化
1.当前笔记本或台式机配置hosts⽂文件
2.设置所有节点的hosts⽂文件
- 节点上的hosts配置的网址一定是内网的
3.关闭所有节点的防⽕火墙及清空规则
systemctl stop firewalld systemctl disable firewalld iptables -F
4.关闭所有节点的selinux
vi /etc/selinux/config 将SELINUX=enforcing改为SELINUX=disabled 设置后需要重启才能⽣生效
5.设置所有节点的时区⼀致及时钟同步
6.1.时区
[root@test-hadoop01 ~]# date Wed Oct 30 16:54:21 CST 2019
在所有的节点执行此命令看Time zone是否都是 Asia/Shanghai ,如果是就OK如果不是需要设置为 Asia/Shanghai
#否则所有节点设置亚洲上海时区 均执行以下命令,以此来设置Asia/Shanghai时区
timedatectl set-timezone Asia/Shanghai
所有节点同步时间
方式:在每天凌晨所有机器与test-hadoop01同步一次设置如下
所有机器执行命令
crontab -e
添加脚本
00 00 * * * /usr/sbin/ntpdate test-hadoop01
然后所有节点执行
/usr/sbin/ntpdate test-hadoop01
7.部署集群的JDK
mkdir /usr/java tar -xzvf jdk-8u45-linux-x64.tar.gz -C /usr/java/ #切记必须修正所属⽤用户及⽤用户组 chown -R root:root /usr/java/jdk1.8.0_45 echo "export JAVA_HOME=/usr/java/jdk1.8.0_45" >> /etc/profile echo "export PATH=${JAVA_HOME}/bin:${PATH}" >> /etc/profile source /etc/profile which java
注意:如果你的机器上本来就有java的环境看一下他是在什么目录之下
如果家目录是 JAVA_HOME=/usr/java/jdk1.8.0_45这种形式的,那么没有什么需要修改的,如果你的java的家目录不是这样的,那么你要注意了
比如我这次部署的过程中我的家目录就是/usr/local/java,但是我抱着侥幸心理并没有去修改他,然后后边部署spark的时候果然出了问题
所以在你的Java的家目录不是/usr/java/jdk1.8.0_45这种形式的时候,一定要做一个软连接到/usr/java/default 目录下
敲黑板划重点 血与泪的教训
8.test-hadoop01节点离线部署MySQL5.6
具体可参考博客:https://www.cnblogs.com/xuziyu/p/10353968.html
9.创建CDH的元数据库和⽤用户、amon服务的数据库及⽤用户
create database cmf DEFAULT CHARACTER SET utf8; create database amon DEFAULT CHARACTER SET utf8; grant all on cmf.* TO 'cmf'@'%' IDENTIFIED BY '123456'; grant all on amon.* TO 'amon'@'%' IDENTIFIED BY '123456'; flush privileges;
10.test-hadoop01节点部署mysql jdbc jar
mkdir -p /usr/share/java/
cp mysql-connector-java.jar /usr/share/java/
三.CDH部署
1.离线部署cm server及agent
1.1.所有节点创建⽬目录及解压
mkdir /opt/cloudera-manager tar -zxvf cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz -C /opt/cloudera-manager/
1.2.所有节点修改agent的配置,指向server的节点test-hadoop01
sed -i "s/server_host=localhost/server_host=test-hadoop01/g" /opt/cloudera-manager/cm5.16.1/etc/cloudera-scm-agent/config.ini
1.3.主节点修改server的配置:
vi /opt/cloudera-manager/cm-5.16.1/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.type=mysql com.cloudera.cmf.db.host=test-hadoop01 com.cloudera.cmf.db.name=cmf com.cloudera.cmf.db.user=cmf com.cloudera.cmf.db.password=123456 com.cloudera.cmf.db.setupType=EXTERNAL
1.4.所有节点创建⽤用户
useradd --system --home=/opt/cloudera-manager/cm-5.16.1/run/cloudera-scm-server/ -no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
1.5.⽬目录修改⽤用户及⽤用户组
chown -R cloudera-scm:cloudera-scm /opt/cloudera-manager
2.test-hadoop01节点部署离线parcel源
2.1.部署离线parcel源
$ mkdir -p /opt/cloudera/parcel-repo $ cp CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel /opt/cloudera/parcel-repo/
#切记cp时,重命名去掉1,不不然在部署过程CM认为如上⽂文件下载未完整,会持续下载
$ cp CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.1 6.1-1.cdh5.16.1.p0.3-el7.parcel.sha $ cp manifest.json /opt/cloudera/parcel-repo/
$cd /opt/cloudera/parcel-repo
[root@test-hadoop01 parcel-repo]# ll total 3081664 -rw-r--r-- 1 root root 2127506677 May 9 18:04 CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel -rw-r--r-- 1 root root 41 May 9 18:03 CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1 -rw-r--r-- 1 root root 841524318 May 9 18:03 cloudera-manager-centos7-cm5.16.1_x 86_64.tar.gz -rw-r--r-- 1 root root 185515842 Aug 10 2017 jdk-8u144-linux-x64.tar.gz -rw-r--r-- 1 root root 66538 May 9 18:03 manifest.json -rw-r--r-- 1 root root 989495 May 25 2017 mysql-connector-java.jar
2.2.⽬目录修改⽤用户及⽤用户组
$ chown -R cloudera-scm:cloudera-scm /opt/cloudera/
3.所有节点创建软件安装⽬目录、⽤用户及⽤用户组权限
mkdir -p /opt/cloudera/parcels chown -R cloudera-scm:cloudera-scm /opt/cloudera/
4.test-hadoop01节点启动Server
4.1.启动server
/opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-server start
4.2.要确保test-hadoop01节点防⽕火墙放开7180端⼝
4.3.等待1min,打开 http://hadoop001:7180 账号密码:admin/admin
4.4.假如打不不开,去看server的log,根据错误仔细排查错误
5.所有节点启动Agent
/opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-agent start
6.接下来,全部Web界⾯面操作
http://hadoop001:7180/ 账号密码:admin/admin
7.欢迎使⽤用Cloudera Manager--最终⽤用户许可条款与条件。勾选
8.欢迎使⽤用Cloudera Manager--您想要部署哪个版本?选择Cloudera Express免费 版本
9.感谢您选择Cloudera Manager和CDH
10.为CDH集群安装指导主机。选择[当前管理理的主机],全部勾选
11.选择存储库
12.集群安装--正在安装选定Parcel
- 假如本地parcel离线源配置正确,则"下载"阶段瞬间完成,其余阶段视节点数与内部⽹网络情况决定。
13.检查主机正确性
14.⾃自定义服务,选择部署Zookeeper、HDFS、Yarn服务
15.⾃自定义⻆角⾊色分配(具体如何分配,可自行决定)
16.数据库设置
17.审改设置,默认即可
18.⾸首次运⾏
19.恭喜您!
到这里简单的CDH集群就搭建成功了!!!
搭建路上可能会遇到各种各样的问题,但是大坑我应经帮助各位避免了,剩下的靠你自己了!加油啊!