文档编写目的
在之前的文档中介绍了如何用CM接管无CM以rpm方式安装的CDH5.10.0,本文档同样会介绍如何使用Cloudera Manager来接管一个无Cloudera Manager管理的CDH集群,只不过这次的版本是CDH6.2.0。
测试环境:
- CM和CDH版本为6.2.0
- 操作系统版本为RedHat7.2
- 使用root用户进行操作
- 集群一共三个节点
CDH集群以rpm方式已经安装的组件如下:
- Zookeeper
- HDFS
- Yarn
- Spark
- Hive
- Oozie
- Impala
- Hue
前置准备
在安装前需要做一些前置准备,如下:
1.修改hosts文件以及hostname
2.禁用SELinux
3.关闭防火墙
4.设置交换分区swappiness为1
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.下载好CDH6.2.0的parcel包以及CM6.2.0的rpm包
10.准备好cm的yum源
11.为rpm方式安装的服务设置chkconfig off
12.备份配置文件
13.在安装CM前,在HDFS和Hive中准备一些数据,用作接管完成后进行对比
- 上传三个文件到HDFS上用作测试数据
- 在Hive中创建两个库,每个库创建一张表,并分别向两张表中导入数据
创建库c6_test1、c6_test2
在c6_test1中创建表web_returns
向web_returns导入数据
查看web_returns中的数据
在c6_test2中创建分区表test_partition
向表test_partition中导入数据
查看test_partition中的数据
安装Cloudera Manager
1.安装cloudera-manager-server
yum -y install cloudera-manager-server
2.为CM初始化数据库
/opt/cloudera/cm/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.同意许可条款
7.选择60天试用版
8.安装欢迎页
9.输入集群名称
10.添加三个节点的主机
11.选择存储库
12.安装jdk
13.输入服务器的密码
14.安装cloudera-scm-agent
15.分发parcel
16.检查主机正确性
出现的警告是由于使用rpm的方式安装了CDH集群,并不影响
17.安装服务页面,在此处不选择添加任何服务,在后面再进行服务的添加
18.点击左上角,回到CM主页
19.点击右上角的“添加 Cloudera Management Service”,输入创建的数据库信息
20.启动Cloudera Management Service
21.Cloudera Management Service添加成功
服务状态检查
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服务的角色
- cdh1.hadoop.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
- cdh2.hadoop.com、cdh3.hadoop.com
- ZooKeeper Server、DataNode、NodeManager、HiveServer2、Impala Daemon
停止所有服务并进行备份
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 /
4.停止HDFS服务
5.停止Zookeeper服务
6.在停止HDFS服务后确保in_use.lock文件已经被移除
7.备份HDFS的数据
8.备份CDH服务的元数据库
在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