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相关的库和用户
create database cm default character set utf8;
CREATE USER 'cm'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON cm.* TO 'cm'@'%';
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 rm default character set utf8;
CREATE USER 'rm'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON rm.* TO 'rm'@'%';
FLUSH PRIVILEGES;

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

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

10.准备好cm的yum源


11.为rpm方式安装的服务设置chkconfig off
| Where | Command |
|---|---|
| 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
yum -y install cloudera-manager-server

2.为CM初始化数据库
/usr/share/cmf/schema/scm_prepare_database.sh mysql cm cm password

3.启动Cloudera Manager Server
systemctl start cloudera-scm-server

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

- Cloudera Management Service添加成功

4 服务状态检查
1.执行HDFS fsck来检查HDFS状态,确保HDFS服务是正常的
·Under-replicated blocks应该为0
·Mis-replicated blocks应该为0
·Corrupt blocks应该为0
sudo -u hdfs hadoop fsck /

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的安全模式
sudo -u hdfs hadoop dfsadmin -safemode enter


2.保存HDFS名称空间
sudo -u hdfs hadoop dfsadmin -saveNamespace

3.查看HDFS当前的目录,记录HDFS的当前的数据信息
hadoop fs -ls /
hadoop fs -ls /user

sudo -u hdfs hadoop fsck /

| Total Size | 1927512606 B |
|---|---|
| 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

- 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中数据都与之前一致。
CM接管CDH集群
6281

被折叠的 条评论
为什么被折叠?



