更改ZooKeeper的存储目录
操作场景
ZooKeeper定义的存储目录不正确或ZooKeeper的存储规划变化时,MRS集群管理员需要在FusionInsight Manager中修改ZooKeeper的存储目录,以保证ZooKeeper正常工作。ZooKeeper的存储目录包含本地数据存放目录“dataDir”。适用于以下场景:
- 更改ZooKeeper角色的存储目录,所有ZooKeeper实例的存储目录将同步修改。
- 更改ZooKeeper单个实例的存储目录,只对单个实例生效,其他节点ZooKeeper实例存储目录不变。
对系统的影响
- 更改ZooKeeper角色的存储目录需要停止并重新启动ZooKeeper及相关的服务,集群未启动前无法提供服务。
- 更改ZooKeeper单个实例的存储目录需要停止并重新启动实例,该节点ZooKeeper实例未启动前无法提供服务。
前提条件
- 在各个数据节点准备并安装好新磁盘,并格式化磁盘。
- 规划好新的目录路径,用于保存旧目录中的数据。
- 准备好MRS集群管理员用户admin。
操作步骤
检查环境
- 登录FusionInsight Manager,选择“集群 > 待操作集群的名称 > 服务”查看ZooKeeper的状态“运行状态”是否为“良好”。
- 修复ZooKeeper异常。
- 确定修改ZooKeeper的存储目录场景。
更改ZooKeeper角色的存储目录
- 选择“集群 > 待操作集群的名称 > 服务 > ZooKeeper > 停止服务”,停止ZooKeeper服务。
- 以root用户登录到安装ZooKeeper服务的各个节点中,执行如下操作。
- 创建目标目录。
例如目标目录为“${BIGDATA_DATA_HOME}/zookeeper2”:
执行mkdir ${BIGDATA_DATA_HOME}/zookeeper2。
- 格式化新磁盘,并挂载目标目录到新磁盘。例如挂载“${BIGDATA_DATA_HOME}/zookeeper2”到新磁盘。
- 修改新目录的权限。
例如新目录路径为“${BIGDATA_DATA_HOME}/zookeeper2”:
执行chmod 700 ${BIGDATA_DATA_HOME}/zookeeper2和chown omm:wheel ${BIGDATA_DATA_HOME}/zookeeper2 。
- 将旧的数据复制到新目录
例如:cp -pr ${BIGDATA_DATA_HOME}/zookeeper/version-2/ ${BIGDATA_DATA_HOME}/zookeeper2/
cp -pr ${BIGDATA_DATA_HOME}/zookeeper/myid ${BIGDATA_DATA_HOME}/zookeeper2/
- 创建目标目录。
- 在FusionInsight Manager管理界面,选择“集群 > 待操作集群的名称 > 服务 > ZooKeeper > 配置”,打开ZooKeeper服务配置页面。
将ZooKeeper和quorumpeer的dataDir配置项“dataDir”修改为新的目标目录,例如“${BIGDATA_DATA_HOME}/zookeeper2”。
- 单击“保存”,单击“确定”。重启ZooKeeper服务。
界面提示“操作成功”,单击“完成”,ZooKeeper成功启动。
- 重命名旧的存储目录“${BIGDATA_DATA_HOME}/zookeeper”,若该目录是独立磁盘挂载的根目录,请先移除磁盘再进行重命名操作,任务结束。
更改ZooKeeper单个实例的存储目录
- 选择“集群 > 待操作集群的名称 > 服务 > ZooKeeper > 实例”,勾选需要修改存储目录的ZooKeeper单个实例,选择“更多 > 停止实例”。
- 以root用户登录到这个ZooKeeper节点,执行如下操作。
- 创建目标目录。
例如目标目录为“${BIGDATA_DATA_HOME}/zookeeper2”:
执行mkdir ${BIGDATA_DATA_HOME}/zookeeper2。
- 挂载目标目录到新磁盘。例如挂载“${BIGDATA_DATA_HOME}/yarn/data2”到新磁盘。
- 修改新目录的权限。
例如新目录路径为“${BIGDATA_DATA_HOME}/yarn/data2”:
执行chmod 700 ${BIGDATA_DATA_HOME}/zookeeper2 和chown omm:wheel ${BIGDATA_DATA_HOME}/ zookeeper2 。
- 将旧的数据复制到新目录
例如:cp -pr ${BIGDATA_DATA_HOME}/zookeeper/version-2/ ${BIGDATA_DATA_HOME}/zookeeper2/
cp -pr ${BIGDATA_DATA_HOME}/zookeeper/myid ${BIGDATA_DATA_HOME}/zookeeper2/
- 创建目标目录。
- 在FusionInsight Manager管理界面,单击指定的ZooKeeper实例并切换到“实例配置”。
将ZooKeeper和quorumpeer的dataDir配置项“dataDir”修改为新的目标目录,例如“${BIGDATA_DATA_HOME}/zookeeper2”。
- 单击“保存”,单击“确定”。重启ZooKeeper实例。
界面提示“操作成功”,单击“完成”,ZooKeeper实例启动成功。
- 重命名旧的存储目录“${BIGDATA_DATA_HOME}/zookeeper”,若该目录是独立磁盘挂载的根目录,请先移除磁盘再进行重命名操作,任务结束。