本文為您介紹對于EMR-HBase集群,如何將存算一體架構轉換為存算分離架構。
操作步驟
停止HBase服務。
首先通過flush操作來保證內存中所有表的數(shù)據(jù)都已經刷新到HFile,并執(zhí)行Disable table來禁用相關的表,避免寫入新的數(shù)據(jù)。
停止HMaster和RegionServer進程。
數(shù)據(jù)遷移。
將存算一體架構HDFS上的HBase數(shù)據(jù)遷移到OSS-HDFS。OSS-HDFS詳情請參見什么是OSS-HDFS服務。
開通并授權訪問OSS-HDFS服務,具體操作請參見開通并授權訪問OSS-HDFS服務。
創(chuàng)建OSS-HDFS HBase數(shù)據(jù)存儲目錄。
hadoop fs -mkdir oss://${test-bucket}.${region}.oss-dls.aliyuncs.com/${hbase}
遷移數(shù)據(jù)到OSS-HDFS。
hadoop fs -cp hdfs://${namespace}/${hbase}/* oss://${test-bucket}.${region}.oss-dls.aliyuncs.com/${hbase}/
說明如果HBase表數(shù)據(jù)量比較大,可以考慮使用DistCp或Jindo Distcp拷貝數(shù)據(jù),但是需要依賴YARN服務。
新增JindoData服務,詳情請參見新增服務。
EMR-HBase存算分離架構下,需要通過JindoData實現(xiàn)分布式緩存加速,因此必須部署JindoData服務。
配置JindoData。
新增Jindodata服務后,需要進行以下配置才能生效,請修改Hadoop-Common組件core-site.xml配置文件的配置項。
參數(shù)
說明
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表數(shù)據(jù)存儲到了OSS-HDFS,WAL文件還需要存儲到本地HDFS,所以需要修改hbase-site.xml配置文件的配置項。
參數(shù)
說明
hbase.rootdir
修改為
oss://${test-bucket}.${region}.oss-dls.aliyuncs.com/${hbase}
。hbase.wal.dir
修改為
hdfs://${namespace}/${hbase}
。重啟HBase服務,并enable相關表。