CDH6部署搭建笔记

发布时间 2023-05-26 17:56:36作者: 潇湘神剑

一、环境配置

1、主机配置

cdh-master  192.168.80.107  CPU4核  内存16G  磁盘200G
cdh-node1   192.168.80.140  CPU4核  内存8G   磁盘200G
cdh-node2   192.168.80.148  CPU4核  内存8G   磁盘200G
数据库 192.168.90.100 CPU4核 内存8G 磁盘200G # 主机是使用vmware esxi虚拟出来的测试环境,另外主机名一定不要用大写字母,会报错。

2、安装包下载

  目前CDH官网已经无法直接下载安装包了,需要订阅才能通过账户密码下载。所以只能用前辈遗留下来的安装包进行安装。cloudera manager版本为6.3.1,CDH版本为6.3.2,截止到6.3.2还能免费用基础版本的,再往上已经没有基础版本了,只有60天的试用版本和订阅版本。

3、搭建环境准备

基本配置参考我的这篇博客:https://www.cnblogs.com/zhangzhide/p/11108472.html
数据库的安装参考我的这篇博客:https://www.cnblogs.com/zhangzhide/p/11124064.html

4、创建CDH所需的数据库和用户

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;
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '123.com';
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY '123.com';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '123.com';
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY '123.com';
GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY '123.com';
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY '123.com';
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY '123.com';
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY '123.com';
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY '123.com';
GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY '123.com';
拷贝 JDBC 驱动包到指定目录:
cp mysql-connector-java-8.0.16.jar /usr/share/java/mysql-connector-java.jar

二、正式开始部署

1、安装Clouder Manager Server

# 只在cdh-master上安装
yum install cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm -y

2、安装Clouder Manager Agent

# 机器富裕的可以只在cdh-node节点上部署agent(数量>=3),不富裕的就在master上也部署上agent,因为后续安装hdfs时,hdfs的副本数必须大于等于3,否则hdfs会安装不成功。
yum install cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm -y
# 修改agent配置文件
vim /etc/cloudera-scm-agent/config.ini
将 server_host=localhost 改为 server_host=cdh-master

3、初始化 Clouder Manager 数据库

# 在cdh-master执行
cd /opt/cloudera/cm/schema/
bash scm_prepare_database.sh -h 192.168.90.100 mysql scm scm 123.com

# 出现如下信息则初始化成功
JAVA_HOME=/usr/local/jdk1.8.0_181
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing:  /usr/local/jdk8/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading ofthe driver class is generally unnecessary.
[                          main] DbCommandExecutor              INFO  Successfully connected to database.
All done, your SCM database is configured correctly!

4、拷贝 Parcel 文件到指定目录

# 在cdh-master上执行
cp CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel /opt/cloudera/parcel-repo/
cp CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
cp CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256 /opt/cloudera/parcel-repo/
cp manifest.json /opt/cloudera/parcel-repo/
chown cloudera-scm:cloudera-scm -R /opt/cloudera/parcel-repo  # 如果不改属主属组,则在选择存储库阶段找不到CDH
# 注意:
我手里的资源是"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"否则在安装cdh时会找不到CDH安装包。

5、启动Clouder Manager Server和Agent

# 在启动Server和Agent之前需要做一个工作,就是需要将你自己的java环境变量超链接到/usr/java/default,因为cloudera 的脚本中定义的JAVA_PATH是/usr/java/default,否则clouder manager server启动会失败。
# Agent上之所以也要这么干是因为后续在部署hdfs、yarn、zookeeper时也会用到。 ln -s /usr/local/jdk1.8.0_181 /usr/java/default

不做超链接的报错信息:

# 启动 server
systemctl start cloudera-scm-server
systemctl enable cloudera-scm-server
# 启动agent
systemctl start cloudera-scm-agent
systemctl enable cloudera-scm-agent

三、登录 Clouder Manager 完成集群安装

1、登录

默认登录用户名密码:admin / admin

 2、安装免费版 

 3、选择存储库阶段

 这个地方如果找不到CDH-6.3.2-1.cdh6.3.2.p0.1605554这个选项时,就需要检查“4、拷贝 Parcel 文件到指定目录”这一步是不是没做。

4、集群状态检查

如果检查到不合适的地方,根据提示更改即可

 后续的步骤可以根据自己的需求选择即可。

5、集群安装部署阶段

   要想达到这个图片的阶段,就需要踩许多坑。但是好在它的报错日志够清楚,基本也都能解决,我就总结一下我遇到的,比如在安装hdfs时,提示副本数不足,则返回上一步,增加hdfs的副本数。还有在安装yarn、zookeeper时,执行安装脚本时,脚本报错找不到JAVA_HOME,这个也好解决,它会提示你具体是哪个脚本的哪行报错了,把脚本改改就成了。

如上图所示,这个脚本就在“if [ -z $JAVA_HOME/bin/java]”这一行报/bin/java无法找到,这明显就是$JAVA_HOME没有获取到值,那咱就帮它获取,咱直接给它指定了,于是就在这个函数中给它强制指定JAVA_HOME的值是多少。

 6、搞定