0721-5.10.0-CM接管rpm方式安装的无CM的CDH集群

1 文档编写目的

在部署CDH集群时,可能使用tar包或者rpm包的方式安装的集群,但是在部署时并没有采用Cloudera Manager来对集群进行管理,在使用过程中,集群数据量日益增长,组件慢慢变多,因此想将现有的集群使用Cloudera Manager来进行管理,本文档将介绍如何使用Cloudera Manager来接管一个无Cloudera Manager管理的CDH集群。

测试环境:

· CM和CDH版本为5.10.0

· 操作系统版本为RedHat7.2

· 使用root用户进行操作

· 集群一共三个节点

CDH集群以rpm方式已经安装的组件如下:

· Zookeeper

· HDFS

· Yarn

· Spark

· Hive

· Oozie

· Impala

· Hue

2 前置准备

在安装前需要做一些前置准备,如下:

1.修改hosts文件以及hostname

2.禁用SELinux

3.关闭防火墙

4.设置交换分区

5.关闭透明大页面

6.Ntp时钟同步

7.在MySQL元数据库中创建好Cloudera Manager所需的数据库和用户,因为其他服务已经以rpm的方式安装,数据库和用户也已经创建,所以此处只创建Cloudera Manager相关的库和用户

1create database cm default character set utf8; 2CREATE USER 'cm'@'%' IDENTIFIED BY 'password'; 3GRANT ALL PRIVILEGES ON cm.* TO 'cm'@'%'; 4FLUSH PRIVILEGES; 5create database am default character set utf8; 6CREATE USER 'am'@'%' IDENTIFIED BY 'password'; 7GRANT ALL PRIVILEGES ON am.* TO 'am'@'%'; 8FLUSH PRIVILEGES; 9create database rm default character set utf8; 10CREATE USER 'rm'@'%' IDENTIFIED BY 'password'; 11GRANT ALL PRIVILEGES ON rm.* TO 'rm'@'%'; 12FLUSH PRIVILEGES; 13 14 15

8.在CM节点安装httpd服务并启动

9.下载好CDH5.10.0的parcel包以及CM5.10.0的rpm包

10.准备好cm的yum源

11.为rpm方式安装的服务设置chkconfig off

NameNode $ sudo chkconfig hadoop-hdfs-namenode off ResourceManager $ sudo chkconfig hadoop-yarn-resourcemanager off Secondary NameNode (if used) $ sudo chkconfig hadoop-hdfs-secondarynamenode off NodeManager $ sudo chkconfig hadoop-yarn-nodemanager off DataNode $ sudo chkconfig hadoop-hdfs-datanode off MapReduce JobHistory node $ sudo chkconfig hadoop-mapreduce-historyserver off Hue server $ sudo chkconfig hue off Oozie server $ sudo chkconfig oozie off Hive Metastore server $ sudo chkconfig hive-metastore off HiveServer2 $ sudo chkconfig hive-server2 off Zookeeper server $ sudo chkconfig zookeeper-server off Spark $ sudo chkconfig spark-history-server off

12.备份配置文件

13.在安装CM前,在HDFS和Hive中准备一些数据,用作接管完成后进行对比

  • 上传两个tar包到HDFS上用作测试数据

  • 在Hive中创建两个库,每个库创建一张表,并分别向两张表中导入数据

创建库test1、test2

在test1中创建表web_returns

向web_returns导入数据

查看web_returns中的数据

在test2中创建分区表test_partition

向表test_partition中导入数据

查看test_partition中的数据

3 安装Cloudera Manager

1.安装cloudera-manager-server

1yum -y install cloudera-manager-server 2 3 4

2.为CM初始化数据库

1/usr/share/cmf/schema/scm_prepare_database.sh mysql cm cm password 2 3 4

3.启动Cloudera Manager Server

1systemctl start cloudera-scm-server 2 3 4

4.访问Cloudera Manager UI,用户名密码均为admin

5.接受用户许可条款

6.选择60天试用版

7.版本信息

8.添加三个节点的主机

9.选择存储库

10.安装jdk

11.单用户模式,这里不选择

12.输入服务器的密码

13.安装cloudera-scm-agent

14.分发parcel

15.检查主机正确性

出现的两个警告是由于使用rpm的方式安装了CDH集群,并不影响

16.安装服务页面,在此处不选择添加任何服务,在后面再进行服务的添加

17.点击左上角,回到CM主页

18.点击右上角的“添加 Cloudera Management Service”,输入创建的数据库信息

19.启动Cloudera Management Service

  1. Cloudera Management Service添加成功

4 服务状态检查

1.执行HDFS fsck来检查HDFS状态,确保HDFS服务是正常的

·Under-replicated blocks应该为0

·Mis-replicated blocks应该为0

·Corrupt blocks应该为0

1sudo -u hdfs hadoop fsck / 2 3 4

2.运行MR示例程序以及Spark来确保Yarn和Spark服务正常

运行MR示例程序

访问Spark服务

3.列出所有节点rpm安装的CDH服务的角色

·cdh178.macro.com

ZooKeeper Server、NameNode、SecondaryNameNode、DataNode、JobHistory Server、ResourceManager、NodeManager、History Server、Hive Metastore Server、HiveServer2、Oozie Server、Impala Catalog Server、Impala StateStore、Impala Daemon、Hue Server

·cdh177.macro.com、cdh176.macro.com

ZooKeeper Server、DataNode、NodeManager、HiveServer2、Impala Daemon

4 停止所有服务并进行备份

1.进入HDFS的安全模式

1sudo -u hdfs hadoop dfsadmin -safemode enter 2 3 4

2.保存HDFS名称空间

1sudo -u hdfs hadoop dfsadmin -saveNamespace 2 3 4

3.查看HDFS当前的目录,记录HDFS的当前的数据信息

1hadoop fs -ls / 2hadoop fs -ls /user 3 4 5
1sudo -u hdfs hadoop fsck / 2 3 4

Total dirs 72 Total files 689 Total blocks 698

4.停止HDFS服务

5.停止Zookeeper服务

6.在停止HDFS服务后确保in_use.lock文件已经被移除

7.备份HDFS的数据

8.备份CDH服务的元数据库

5 在Cloudera Manager上添加CDH服务

逐个添加所有服务,需要注意的是服务之间有依赖关系,推荐按照下列顺序进行服务的添加:

1)Zookeeper

2)HDFS

3)Yarn

4)Spark

5)Hive

6)Impala

7)Oozie

8)Hue

一般来说添加服务的步骤几乎是相同的:

1)在Cloudera Manager上添加服务

2)角色的分配与之前保持一致

3)应用所有配置文件

4)启动服务

6.1添加Zookeeper

1.从CM添加Zookeeper服务

2.选择Zookeeper服务

3.选择ZK Server,与之前安装时一致

4.设置与之前相同的目录

5.不点击继续,直接点击左上角回到CM主页,进入Zookeeper的配置

6.应用之前的配置,保持与之前一致

Server ID保持与之前安装时设置的一致

修改/var/lib/zookeeper/version-2的属主为zookeeper

设置堆栈大小

保证设置的ZK log目录和Heap Dump目录空间足够,如果默认的目录空间不够,则进行修改

7.启动Zookeeper

6.2 添加HDFS

1.从CM上添加HDFS

2.选择角色,保持与之前的安装一致

3.保持目录与之前一致

4.删除/data0/dfs/nn目录下NN的元数据,启动HDFS

5.将之前备份的NameNode元数据拷贝回/data0/dfs/nn目录

6.验证HDFS的数据与之前是否一致

列出HDFS的目录,与之前一致,能够看到最开始上传用作测试的两个tar包

使用fsck命令查看,数据与之前一致

6.3添加Yarn

1.在CM上添加Yarn服务

2.选择角色,保持与安装的一致

3.设置Yarn的目录与之前安装的一致

4.启动Yarn

5.Yarn启动成功

6.运行MR示例程序进行测试,示例程序运行成功

6.4添加Spark

1.从CM上添加Spark,选择Spark而不是Spark(Standalone)

2.保持角色与之前一致,Gateway选择所有节点

3.启动Spark

  1. Spark安装成功

重启相关的服务

重新部署客户端配置

重启成功

6.5添加Hive

1.在CM上添加Hive服务

2.为Hive选择依赖关系

3.选择角色,与之前的安装保持一致

4.设置数据库

5.Hive的目录,确保与之前安装配置的一致

6.启动Hive

7.Hive安装成功

8.验证Hive的数据与之前是否一致

查看库,可以看到之前创建的两个库test1、test2

查看库test1,可以看到之前创建的表web_returns

查看表web_returns的数据,与之前一致

查看库test2,可以看到之前创建的表test_partition

查看表test_partition的数据,与之前一致

6.6添加Impala

1.在CM上添加Impala

2.为Impala选择角色,与之前的安装保持一致

3.为Impala指定目录

4.创建Impala用户目录

5.Impala安装成功

6.启动Impala

7.测试Impala使用

6.7添加Oozie

1.在CM上添加Oozie服务

2.为Oozie服务选择依赖关系

3.选择角色,保持与之前一致

4.设置数据库

5.指定Oozie共享库目录和数据目录,与之前的安装保持一致

6.启动Oozie服务

7.Oozie服务安装成功

6.8添加Hue

1.在CM上添加Hue

2.为Hue选择依赖关系

3.选择角色,与之前安装时一致

4.设置数据库

5.启动Hue

6.Hue服务添加成功

7.访问Hue

8.测试Hue的使用

使用Hive

使用Impala

至此CM接管完成,CM主页如下图所示:

7 总结

1.使用CM接管未受管的CDH集群,在添加服务时需要注意的是,要保持角色与之前安装时的角色一致,数据目录也需要指定成之前安装时的数据目录,以及一些配置也需要在CM上修改,与支持一致,保证CM接管后服务都与之前一样正常运行。

2.在接管之前需要对服务的一些数据和配置文件进行备份,在后面CM安装服务时需要用到。

3.在接管之前需要对服务进行检查,对数据进行记录,在接管后对数据进行对比,比如HDFS以及Hive,本文档在接管后,HDFS以及Hive中数据都与之前一致。

代码交流 2021