本文为您介绍对于EMR-HBase集群,如何将存算一体架构转换为存算分离架构。

操作步骤

  1. 停止HBase服务。
    1. 首先通过flush操作来保证内存中所有表的数据都已经刷新到HFile,并执行Disable table来禁用相关的表,避免写入新的数据。
    2. 停止HMaster和RegionServer进程。
  2. 数据迁移。
    将存算一体架构HDFS上的HBase数据迁移到OSS-HDFS。OSS-HDFS详情请参见OSS-HDFS服务概述
    1. 开通并授权访问OSS-HDFS服务,具体操作请参见开通并授权访问OSS-HDFS服务
    2. 创建OSS-HDFS HBase数据存储目录。
      hadoop fs -mkdir oss://${test-bucket}.${region}.oss-dls.aliyuncs.com/${hbase}
    3. 迁移数据到OSS-HDFS。
      hadoop fs -cp  hdfs://${namespace}/${hbase}/* oss://${test-bucket}.${region}.oss-dls.aliyuncs.com/${hbase}/
      说明 如果HBase表数据量比较大,可以考虑使用DistCpJindo Distcp拷贝数据,但是需要依赖YARN服务。
  3. 新增JindoData服务,详情请参见新增服务
    EMR-HBase存算分离架构下,需要通过JindoData实现分布式缓存加速,因此必须部署JindoData服务。
  4. 配置JindoData。
    新增Jindodata服务后,需要进行以下配置才能生效,请修改Hadoop-Common组件core-site.xml配置文件的配置项。
    参数 说明
    fs.xengine 修改为jindofsx
    fs.jindofsx.namespace.rpc.address 修改为master-1-1:8101
    fs.jindofsx.data.cache.enable 修改为true
    fs.jindofsx.client.metrics.enable 修改为true
  5. 配置HBase目录。
    由于存算分离架构下,HBase表数据存储到了OSS-HDFS,WAL文件还需要存储到本地HDFS,所以需要修改hbase-site.xml配置文件的配置项。
    参数 说明
    hbase.rootdir 修改为oss://${test-bucket}.${region}.oss-dls.aliyuncs.com/${hbase}
    hbase.wal.dir 修改为hdfs://${namespace}/${hbase}
  6. 重启HBase服务,并enable相关表。