文档编写目的
在之前的文档中介绍了如何用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相关的库和用户
代码语言:javascript复制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
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 |
Impala server | $ sudo chkconfig impala-server off |
Impala Catalog | $ sudo chkconfig impala-catalog off |
Impala State Store | $ sudo chkconfig impala-state-store 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
代码语言:javascript复制yum -y install cloudera-manager-server
2.为CM初始化数据库
代码语言:javascript复制/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cm cm password
3.启动Cloudera Manager Server
代码语言:javascript复制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的安全模式
代码语言:javascript复制sudo -u hdfs hadoop dfsadmin -safemode enter
2.保存HDFS名称空间
代码语言:javascript复制sudo -u hdfs hadoop dfsadmin -saveNamespace
3.查看HDFS当前的目录,记录HDFS的当前的数据信息
代码语言:javascript复制hadoop fs -ls /
hadoop fs -ls /user
代码语言:javascript复制sudo -u hdfs hadoop fsck /
Total Size | 2818152345 B |
---|---|
Total dirs | 63 |
Total files | 1766 |
Total blocks | 1775 |
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
6.2 添加HDFS
1.从CM上添加HDFS
2.选择角色,保持与之前的安装一致
3.保持目录与之前一致
4.删除/data0/dfs/nn目录下NN的元数据,启动HDFS
5.将之前备份的NameNode元数据拷贝回/data0/dfs/nn目录
6.验证HDFS的数据与之前是否一致
列出HDFS的目录,与之前一致,能够看到最开始上传用作测试的三个文件
使用fsck命令查看,数据与之前一致
6.3 添加Yarn
1.在CM上添加Yarn服务
2.选择角色,保持与安装的一致
3.设置Yarn的目录与之前安装的一致
4.启动Yarn
5.Yarn启动成功
6.运行MR示例程序进行测试,示例程序运行成功
6.4 添加Spark
1.从CM上添加Spark
2.保持角色与之前一致,Gateway选择所有节点
3.启动Spark
4.Spark安装成功
重启相关的服务
重新部署客户端配置
重启成功
6.5 添加Hive
1.在CM上添加Hive服务
2.为Hive选择依赖关系
3.选择角色,与之前的安装保持一致
4.设置数据库
5.Hive的目录,确保与之前安装配置的一致
6.启动Hive
7.Hive安装成功
8.验证Hive的数据与之前是否一致
查看库,可以看到之前创建的两个库成c6_test1、c6_test2
查看库c6_test1,可以看到之前创建的表web_returns
查看表web_returns的数据,与之前一致
查看库c6_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主页如下图所示:
总结
1.在接管的两个文档中,针对CDH5.10.0和CDH6.2.0两个版本做了接管,在这个过程中,思路与步骤都是一致的,只是可能其中有些细节的地方有区别,大体上接管的步骤是没有区别的。
2.在做接管时,需要对配置文件以及元数据等做备份,在接管过程中可能会需要使用,以及出现错误可以通过备份的数据进行还原。
3.使用CM接管原集群后,能够通过CM更好的监控集群服务的状态以及使用情况,方便更好的对集群进行管理。