本文介绍如何使用JindoFS作为HBase的底层存储。
背景信息
HBase是Hadoop生态中的实时数据库,有很高的写入性能,E-MapReduce HBase(E-MapReduce 3.22.0及以上版本) 支持使用 JindoFS/OSS作为底层存储,相对于HDFS存储来说,使用更加灵活。
JindoFS配置
已创建名为emr-jfs的命名空间,示例如下:
- jfs.namespaces=emr-jfs
- jfs.namespaces.emr-jfs.uri=oss://oss-bucket/oss-dir
- jfs.namespaces.emr-jfs.mode=block
指定HBase的存储路径
由于JindoFS和OSS在E-MapReduce 3.22.0版本暂不支持Sync操作,需要把hbase-site的hbase.rootdir指向JindoFS/OSS地址,hbase.wal.dir指向本地的undefinedHDFS地址,通过本地HDFS集群存储WAL文件。如果要释放集群,需要先Disable table,确保WAL文件已经完全更新到HFile。
配置文件 | 参数 | 参数说明 | 示例 |
---|---|---|---|
hbase-site | hbase.rootdir | 指定HBase的ROOT存储目录到JindoFS | jfs://emr-jfs/hbase-root-dir |
hbase.wal.dir | 指定HBase的WAL存储目录到本地HDFS集群 | hdfs://emr-cluster/hbase |
创建集群
创建集群详情请参见创建集群。
添加软件自定义配置,如下图所示。

使用JindoFS
以JindoFS作为HBase后端为例,替换oss_bucket及对应路径,自定义配置如下:
[
{
"ServiceName":"BIGBOOT",
"FileName":"bigboot",
"ConfigKey":"jfs.namespaces",
"ConfigValue":"emr-jfs"
},
{
"ServiceName":"BIGBOOT",
"FileName":"bigboot",
"ConfigKey":"jfs.namespaces.emr-jfs.uri",
"ConfigValue":"oss://oss-bucket/jindoFS"
},
{
"ServiceName":"BIGBOOT",
"FileName":"bigboot",
"ConfigKey":"jfs.namespaces.emr-jfs.mode",
"ConfigValue":"block"
},
{
"ServiceName":"HBASE",
"FileName":"hbase-site",
"ConfigKey":"hbase.rootdir",
"ConfigValue":"jfs://emr-jfs/hbase-root-dir"
},
{
"ServiceName":"HBASE",
"FileName":"hbase-site",
"ConfigKey":"hbase.wal.dir",
"ConfigValue":"hdfs://emr-cluster/hbase"
}
]
在文档使用中是否遇到以下问题
更多建议
匿名提交