
# 配置HBase冷热数据分离存储
#### 操作场景
在海量大数据场景下，HBase表中的部分业务数据随着时间的推移仅作为归档数据或者访问频率很低，同时这部分历史数据体量非常大，比如订单数据或者监控数据，如果降低这部分数据的存储成本将会极大地节省企业的成本。
HBase支持冷热分离功能，将数据分类存储在不同介质上，即冷数据存储在OBS，热数据存储在HDFS中，能有效降低存储成本。
#### 约束与限制
- OBS读IOPS的能力降低，因此只适用于低频查询的场景。
- OBS不适合并发大量读请求的场景，并发大量读请求可能会导致请求异常。
- 该功能仅MRS 3.3.0及之后版本支持。
 
#### 原理介绍
HBase支持对同一张表的数据进行冷热分离存储。用户在表上配置数据冷热时间分界点后，HBase会依赖用户写入数据的时间戳（毫秒）和时间分界点来判断数据的冷热。数据开始存储在热存储上，随着时间的推移慢慢往冷存储上迁移。同时用户可以任意变更数据的冷热分界点，数据可以从热存储到冷存储，也可以从冷存储到热存储。
图1HBase冷热分离原理图   
![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001678523422.png "点击放大")
#### 配置HBase冷热数据分离存储
通过在Manager界面修改HBase配置开启冷热分离特性，支持将冷数据存储在OBS，热数据存储在HDFS中。
1. 参考[配置Guardian服务对接OBS](https://support.huaweicloud.com/usermanual-mrs/mrs_01_248987.html)章节对接OBS。
2. 登录Manager页面，选择"集群 \> 集群属性"，查看"认证模式"的值。 
   - 如果为"安全模式"，则执行[5]。
   
   - 如果集群为MRS 3.3.0-LTS版本且认证模式为"普通模式"，则执行[3]，否则执行[5]。
   
   
   登录集群Manager具体操作，请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
3. 选择"集群 \> 服务 \> Guardian \> 配置"，在搜索框中搜索"token.server.config.expandor"，新增自定义参数"token.server.access.label.administrators"，值为"supergroup,wheel"，单击"保存"保存配置。
4. 单击"概览"，选择"更多 \> 重启服务"，重启Guardian服务。
5. 选择"集群 \> 服务 \> HBase \> 配置"，在搜索框中搜索并修改以下参数：
   
   - fs.coldFS：修改该参数值为OBS文件系统名，例如"**obs://** *OBS并行文件系统名称"*。
   
   - hbase.fs.hot.cold.enabled：该参数值默认为"false"，必须修改为"true"。
   
   - fs.obs.buffer.dir：该参数值需要修改为本地挂载的数据盘目录，例如"/srv/BigData/data1/tmp/HBase/obs"。
   
   
   
   
6. 单击"保存"，保存配置。
7. 单击"概览"，选择"更多 \> 重启服务"，重启HBase服务。服务重启成功后即开启了冷热分离功能。
8. 冷热分离特性开启后需设置表的冷热时间分界点才能实现表数据冷热存储，相关操作请参见[HBase冷热分离相关命令介绍](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_249179.html)。
 
