赞
踩
前言
HBase on OSS
架构优势如下:
简化了数据迁移和恢复
HBase
的数据文件和表的元数据持久存储在集群外部的OSS
上,HBase
数据迁移和恢复时无需再使用快照等复杂的方式。方便扩容
Core Node
扩容HBase
计算时会同步扩容HDFS
,但是本文中的HDFS
集群本身只用于存储WAL(Write Ahead Log)
,需要的存储空间较少,所以实际是能够通过计算需求而非存储需求来调整EMR集群大小,同时OSS作为云存储服务,扩容操作也比较简单。Hbase
替换现有底层存储hdfs
为oss
,不如说是hbase
替换底层存储hdfs
为oss-hdfs
。EMR 5.6.0
大数据集群(正常运行)
oss
服务环境(正常运行)
组件
hbase
oss
zookeeper
hdfs
oss
开通了hdfs
的服务,开通方式请参考:开通并授权访问OSS-HDFS服务此时应该获取得到形如红框内的oss-hdfs
地址,可以通过命令hdfs -ls ${oss-hdfs_path}
来验证一下这个地址是否可用。
2. 停止hbase
服务:
登录阿里云的控制台,找到emr
的服务,点击进入集群服务找到hbase服务,点击停止。
3. 迁移hbase
数据:
停止了hbase
之后,将hbase
的数据目录迁移到oss-hdfs
上。迁移的方式: 从HDFS迁移数据到OSS 。
如果数据量不多的话,那就像我这样做吧:
将
hbase
的数据从hdfs下载到本地,使用命令:hdfs fs -get /hbase ./
将本地的hbase
的目录上传到oss-hdfs
,使用命令hdfs fs -put ./ oss://${oss-hdfs_path}
hbase.rootdir
和 hbase.wal.dir
hbase.rootdir
:
HBase
数据存储目录,配置为OSS
路径,配置格式为oss://${oss_bucket}.${endpoint}/${hbase-root-dir}
。例如,oss://test_bucket.cn-shanghai.oss-dls.aliyuncs.com/hbase
说明 其中,需要替换的参数:
- ${oss_bucket}:您在OSS控制台上创建的Bucket名称。
- ${endpoint}:您在步骤2中获取到的HDFS服务域名。
- ${hbase-root-dir}:HBase的根目录。
hbase.wal.dir
:
hdfs://${namespace}/${hbase-wal-dir}
配置一个hdfs的路径,例如:hdfs://emr-header-1:9000/hbase/wal_log
依据第3点的描述,将hbase的路径进行配置。配置完成之后,需要点击一下部署客户端配置。将修改好的配置同步更新到各个节点上去。
删除zookeeper
的hbase旧的元数据目录
登陆对应集群的gateway节点或者集群中的zookeeper的client端。使用命令zkCli.sh进到zookeeper的控制台。使用命令deleteall /hbase删除hbase在zookeeper中的元数据。
启动hbase
在aliyun
的EMR
控制台中,找到hbase
的服务,点击启动即可。
hbase
的校验
等待hbase
启动完毕之后,需要校验一下hbase的读写功能是否正常。
总结:
整体步骤如上所述,亲测ok!
参考文档:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。