前言 : CDH集群如何改变默认的nameservice名称呢?,本文中的示例集群已经做了HA,且集群版本为CDH6.1.1。

1 停止集群所有组件服务

  • 没啥可说的,直接关闭所有服务,如下图所示。

hadoop namenode datanode 地址 hadoop nameservice_CDH

2 单独启动ZK组件服务

  • 没啥可说的,启动ZK,如下图所示已经启动好的zk。

hadoop namenode datanode 地址 hadoop nameservice_zookeeper_02

3 删除存储于zookeeper中的hdfs组件信息

  • 首先查找集群的ZK部署于那些节点,如下图所示

hadoop namenode datanode 地址 hadoop nameservice_zookeeper_03

  • 随便找 1 台,例如 cdh63 节点,登陆到Linux后端的 zookeeper-client ,执行下述命令,如下图所示,进行删除操作

添加点备注信息:由于我之前测试步骤存在问题,产生了垃圾的nameservice2信息,所以一并删除掉即可,后续步骤会再次生成。

# 登陆到zk的后端管理端
zookeeper-client
# 查询nameservice1信息
ls /hadoop-ha
# 删除默认的nameservice1信息,不能使用 * 等通配符。
rmr /hadoop-ha/nameservice1

hadoop namenode datanode 地址 hadoop nameservice_zookeeper_04

hadoop namenode datanode 地址 hadoop nameservice_HDFS_05

4 在CM控制台修改HDFS组件中的nameservice信息

  • 共需要修改 2 处配置,均把默认的 nameservice1 修改为 nameservice2

4.1 修改nameservice信息

  • 点击HDFS组件,进入配置选项卡,而后搜索nameservice信息,在搜索结果中进行修改,如下图所示

hadoop namenode datanode 地址 hadoop nameservice_HDFS_06

4.2 修改quorum信息

  • 步骤4.1类似,进行nameservice名称修改,如下图所示

hadoop namenode datanode 地址 hadoop nameservice_HDFS_07

4.3 保存配置项

  • 没啥可说的,点击CM右下角的保存配置,而后在CM控制台应用最新配置,不截图了。

5 在CM控制台修改HDFS组件中的高可用信息

  • 注意,这一步稍微繁琐点,耗的时间长一些,需要几个截图才能说明。

5.1 点击进入HDFS组件,而后选择实例选项卡,进入高可用配置

  • 如下图所示的点击顺序

hadoop namenode datanode 地址 hadoop nameservice_初始化_08

5.2 初始化HDFS的高可用信息(存储在zookeeper中)

  • 如下图所示的点击顺序

hadoop namenode datanode 地址 hadoop nameservice_HDFS_09

  • 初始化成功后可以再后台看到信息,如下图

hadoop namenode datanode 地址 hadoop nameservice_HDFS_10

6 同步HIVE组件的metastore元数据信息

  • 点击选择HIVE组件,而后同步元信息即可,如下图所示

hadoop namenode datanode 地址 hadoop nameservice_初始化_11

7 单独启动JournalNode服务

  • 点击复选框,而后启动服务,如下图所示

hadoop namenode datanode 地址 hadoop nameservice_CDH_12

  • 接上面的图片,点击启动服务,如下图所示。

hadoop namenode datanode 地址 hadoop nameservice_zookeeper_13

8 初始化namenode的共享编辑目录

  • 由于做了HA,所以随便找 1 个namenode实例即可,进行共享编辑目录初始化操作,如下图所示

hadoop namenode datanode 地址 hadoop nameservice_zookeeper_14

  • 按执行顺序接上图,如下图所示

hadoop namenode datanode 地址 hadoop nameservice_CDH_15

备注,如果顺序的在第二个namenode实例(cdh61)中做初始化共享编辑目录操作,会报错,报错内容是“目录非空,无法进行初始化”,这时不用管它,进行下一步即可。提醒一下,只做一个就行了,不用画蛇添足,我就犯了这个错(* ̄︶ ̄)

9 启动整个集群服务

  • 到了这一步,其实已经OK了,到CM控制台启动或重启整个集群就行了,重启后如下图

hadoop namenode datanode 地址 hadoop nameservice_HDFS_16

  • 瞅瞅最后的成果吧,用个小的GIF动画展示,目前集群已经可以正常使用了。