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