本文为您介绍对于EMR-HBase集群,如何将存算一体架构转换为存算分离架构。
操作步骤
- 停止HBase服务。
- 首先通过flush操作来保证内存中所有表的数据都已经刷新到HFile,并执行Disable table来禁用相关的表,避免写入新的数据。
- 停止HMaster和RegionServer进程。
- 数据迁移。将存算一体架构HDFS上的HBase数据迁移到OSS-HDFS。OSS-HDFS详情请参见OSS-HDFS服务概述。
- 开通并授权访问OSS-HDFS服务,具体操作请参见开通并授权访问OSS-HDFS服务。
- 创建OSS-HDFS HBase数据存储目录。
hadoop fs -mkdir oss://${test-bucket}.${region}.oss-dls.aliyuncs.com/${hbase}
- 迁移数据到OSS-HDFS。
hadoop fs -cp hdfs://${namespace}/${hbase}/* oss://${test-bucket}.${region}.oss-dls.aliyuncs.com/${hbase}/
说明 如果HBase表数据量比较大,可以考虑使用DistCp或Jindo Distcp拷贝数据,但是需要依赖YARN服务。
- 新增JindoData服务,详情请参见新增服务。EMR-HBase存算分离架构下,需要通过JindoData实现分布式缓存加速,因此必须部署JindoData服务。
- 配置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
。 - 配置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}
。 - 重启HBase服务,并enable相关表。