文档编写目的


在部署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


前置准备


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

1.修改hosts文件以及hostname


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

2.禁用SELinux

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

3.关闭防火墙

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

4.设置交换分区

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

5.关闭透明大页面

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


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

6.Ntp时钟同步

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

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;

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

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

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

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

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

10.准备好cm的yum源

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


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

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.备份配置文件

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

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

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

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

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

创建库test1、test2

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

在test1中创建表web_returns

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

向web_returns导入数据

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

查看web_returns中的数据

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


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

在test2中创建分区表test_partition

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

向表test_partition中导入数据

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

查看test_partition中的数据

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


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


安装Cloudera Manager


1.安装cloudera-manager-server

yum -y install cloudera-manager-server

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

2.为CM初始化数据库

/usr/share/cmf/schema/scm_prepare_database.sh mysql cm cm password

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

3.启动Cloudera Manager Server

systemctl start cloudera-scm-server

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

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

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

5.接受用户许可条款

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

6.选择60天试用版

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

7.版本信息

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

8.添加三个节点的主机

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

9.选择存储库

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


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

10.安装jdk

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

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

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

12.输入服务器的密码

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

13.安装cloudera-scm-agent

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

14.分发parcel

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

15.检查主机正确性

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

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

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

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

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

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

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

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

19.启动Cloudera Management Service

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

20.  Cloudera Management Service添加成功

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


服务状态检查

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

·Under-replicated blocks应该为0

·Mis-replicated blocks应该为0

·Corrupt blocks应该为0

sudo -u hdfs hadoop fsck /


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


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

运行MR示例程序

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


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

访问Spark服务

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

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


停止所有服务并进行备份


1.进入HDFS的安全模式

sudo -u hdfs hadoop dfsadmin -safemode enter

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


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

2.保存HDFS名称空间

sudo -u hdfs hadoop dfsadmin -saveNamespace

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

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

hadoop fs -ls /
hadoop fs -ls /user

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

sudo -u hdfs hadoop fsck /

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

Total Size

1927512606 B

Total dirs

72

Total files

689

Total blocks

698

4.停止HDFS服务

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

5.停止Zookeeper服务

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

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

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

7.备份HDFS的数据

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

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

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


在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服务

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

2.选择Zookeeper服务

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

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

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

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

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

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

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

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

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

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

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

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

设置堆栈大小

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

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

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


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

7.启动Zookeeper

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


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


6.2 添加HDFS

1.从CM上添加HDFS

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


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

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

3.保持目录与之前一致

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

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

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

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

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

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

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

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

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

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


6.3添加Yarn

1.在CM上添加Yarn服务


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

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

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

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

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

4.启动Yarn

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

5.Yarn启动成功

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


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

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



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


6.4添加Spark

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

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


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

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


3.启动Spark

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


4.  Spark安装成功

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


重启相关的服务

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


重新部署客户端配置

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


重启成功

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


6.5添加Hive

1.在CM上添加Hive服务

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


2.为Hive选择依赖关系

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


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

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


4.设置数据库

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


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

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


6.启动Hive

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


7.Hive安装成功

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


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

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

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


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

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


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

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



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


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

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


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

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



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


6.6添加Impala

1.在CM上添加Impala

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


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

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

3.为Impala指定目录


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


4.创建Impala用户目录

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


5.Impala安装成功

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


6.启动Impala

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


7.测试Impala使用

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


6.7添加Oozie


1.在CM上添加Oozie服务

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


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

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


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

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


4.设置数据库

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


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

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


6.启动Oozie服务

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


7.Oozie服务安装成功

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


6.8添加Hue

1.在CM上添加Hue

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


2.为Hue选择依赖关系

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


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

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


4.设置数据库

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


5.启动Hue

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


6.Hue服务添加成功

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


7.访问Hue

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



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

8.测试Hue的使用

使用Hive


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


使用Impala

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

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


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


总结



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

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

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