HBase存算一体转存算分离

本文为您介绍对于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相关表。