我为什么建议自建HBase集群应该迁移过来?

引言

最近云HBase商业化了,HBase在业界应用还是比较广泛。在云上环境下中,不少客户都自建了HBase集群,还有一部分用户是把HBase集群放在Hadoop离线集群内部。此文主要对比下云HBase数据库跟自建HBase的差异。另外,在成本上,云HBase数据库跟自建基本差不多,目前云HBase在推广打折阶段,比自建还便宜不少

自建HBase与ApsaraDB HBase对比

自建目前在云上,基本是基于ecs去自己构建,ApsaraDB HBase我们还是做了不少事情的:

  • ApsaraDB HBase的内核在阿里集团使用5年,还是有不少的沉淀的,在一些场景有300%的性能提升,大部分场景都至少有30%的提升,在稳定性恢复速度快3倍左右。阿里现在有3个hbase pmc,6个committer了,有将近25+个人弄hbase
  • ApsaraDB HBase的内核会主动修复bug,改进功能,升级的,把高版本有价值的patch打到我们的ApsaraDB HBase内核版本上。自己建设 往往要去下载新版本弄,有时候搞不好数据还丢了
  • 安全机制比较健全,如:白名单、VPC、访问UI的账号密码,还有安全部门非得让弄成https加密的。后续会接阿里云的ak,支持共享环境访问ApsaraDB HBase,比如ODPS,开源版本是不行的
  • 9月份会支持公网开放:比较方便支持线下测试开发连接环境。(不需要vpn、线下搭建或者proxy了)
  • 运维还是比较便利的:15分钟全自动部署新集群、 可以在线扩容磁盘、容量报警、添加节点、修改配置、指标可视化、自动守护进程、链路监控报警 、热点检测转移、大scan过期清理 ………………

可以说这个是 ApsaraDB HBase的大概层次图:

关于把Hbase放到离线集群的坏处

之前阿里云没有提供ApsaraDB HBase的产品,在EMR我们包装了一个开源的HBase,不少用户就使用了这个HBase,后续造成EMR运维上很大的困难,hbase经常是由于离线作业跑的时候会挂掉,但是这个时候正式需要访问hbase的时候,如果这个时候有实时入库或者查询的操作,则影响非常大。另外,我们还不得不分配一定的资源给Regionserver,RS还是非常吃内存的,造成离线任务根本不够用的情况。为此,我们就把单独做了ApsaraDB HBase这个产品,做成全托管的方式,以取代EMR中的HBase

关于节约资源

在用户自建HBase集群时,不少客户基于CDH把HBase放在Hadoop中,想法主要是节约一些资源或者麻烦单独弄一个HBase。其实在云上环境中,磁盘及CPU及内存都是可以在线直接扩容的,比如ApsaraDB HBase的磁盘可以最低每次8G的扩容,计算资源也可以单独添加节点。 资源本身基本是很小粒度可以增加的。整体资源其实是相当的(因为HBase需要起着就占资源),另外,如果把分析按量跑,其实成本反到下降不少(EMR支持定时按需跑job)。另外,还可以享受稳定及高性能的服务。

关于性能

spark访问hbase,再hbase放在hdfs。其实spark并不能享受本地化的好处,spark往往访问region的,region往往不在这个机器上,比如你有10台机器,则在这个上面的概率是10%,再region访问hdfs,则又只有10%(好的情况可能高点),一算下来,只有1%的概率可以本地化访问。且要走2次进程转化(一般hbase要解压、反编码等一些列的操作),其实这个时间远大于带宽的传输的时间。带宽传输时间基本可以忽略。

ApsaraDB HBase跟客户的ECS或者EMR连接,采取的是点到点的连通方式,走的是跟ECS自建集群一样的内网带宽(完全免费),完全没有区别,其实就跟访问集群内部一样。 跟一些有中转节点的模式不一样,ApsaraDB HBase的regionserver都是可以直连客户端的。

带来的好处
  • 离线可以按需跑:emr提供按需跑的spark,比如晚上跑2个小时等,此极大降低成本
  • 离线基本不影响HBase集群: 比如入库、访问等不受影响,还可以做scan与put的线程分离,保障入库的速度
  • 如果把HBase迁移到ApsaraDB HBase,则享受ApsaraDB HBase的高性能、运维服务及专家服务
写在最后

如果你想迁移,直接使用copytable拷贝吧,还是挺快的。如果你的数据超过10T,可以联系我们。 如果你想来试用下,那就直接按需买一个跑跑,最低6元左右一个小时。

使用CopyTable同步HBase数据:10T以内还是可以满足需求的,另外我们也在研究从服务端直接拖取另外hbase集群的数据,做到一键迁移

ApsaraDB HBase购买地址:https://www.aliyun.com/product/hbase?spm=5176.8142029.388261.280.EZjBmE

时间: 2024-09-08 10:23:23

我为什么建议自建HBase集群应该迁移过来?的相关文章

E-MapReduce的HBase集群间迁移

HBase集群间数据迁移 0. 前置 HBase集群 HDFS Cluster-A hdfs:/A Cluster-B hdfs:/B Cluster-A集群数据迁移到Cluster-B 1. Export/Import 将Cluster-A中HBase表export到Cluster-B的HDFS中,然后在Cluster-B中使用import导入HBase a) Cluster-A和Cluster-B网络通 Cluster-B中建好相关迁移的表 hbase(main):001:0>create

hbase-0.98.7Hbase集群数据迁移问题,重构元数据时报的错误

问题描述 0.98.7Hbase集群数据迁移问题,重构元数据时报的错误 Hbase集群数据迁移,由于两个集群不能相互通信,因此采用磁盘拷贝数据表的方式,数据量不是很大,只有几个G而已,拷贝到hdfs文件系统的hbase目录下,最后执行copy_tables_desc.rb脚本重构meta表分区信息时报如下错误,[hadoop@master bin]$ ./hbase org.jruby.Main replication/copy_tables_desc.rb NameError: cannot

0.98.7Hbase集群数据迁移的问题

问题描述 Hbase集群数据迁移,由于两个集群不能相互通信,因此采用磁盘拷贝数据表的方式,数据量不是很大,只有几个G而已,拷贝到hdfs文件系统的hbase目录下,最后执行copy_tables_desc.rb脚本重构meta表分区信息时报如下错误,[hadoop@masterbin]$./hbaseorg.jruby.Mainreplication/copy_tables_desc.rb/hbase/data/defaultNameError:cannotloadJavaclassorg.ap

HBase集群出现NotServingRegionException问题的排查及解决方法

HBase集群在读写过程中,可能由于Region Split或Region Blance等导致Region的短暂下线,此时客户端与HBase集群进行RPC操作时会抛出NotServingRegionException异常,从而导致读写操作失败.这里根据实际项目经验,详细描述这一问题的发现及排查解决过程. 1. 发现问题 在对HBase集群进行压力测试过程中发现,当实际写入HBase和从HBase查询的量是平时的若干倍时(集群规模10~20台,每秒读写数据量在几十万条记录的量级),导致集群的读写出

如何访问E-MapReduce中HBase集群

一.创建HBase集群 E-MapReduce在EMR-1.2.0版本开始支持HBase(1.1.1)了,创建集群时注意点如下: 1)选择付费类型 创建集群的基本信息页面可选择付费类型,包括包年包月和按量付费两种,一般HBase集群都是长期存在的,所以选择包年包月价格更实惠. 2)选择软件版本配置 产品版本选择EMR-1.2.0及以上版本,集群类型选择HBASE,目前EMR支持的HBase版本号为1.1.1. 3)集群网络配置 可以选择将HBase集群创建在经典网络环境或者专有网络环境(VPC)

HBase集群管理

通过之前文章的描述,我们已经有能力设计并部署搭建HBase集群了 当我们的HBase集群开始运行的时候,新的挑战又来了 例如,我们可能会遇到在集群运行的时候添加或者删除节点 又或者需要拷贝/备份整个集群的数据等等 如何在集群运行的时候以最小的代价来执行这些操作呢? 下面总结一下HBase集群的相关运维和管理知识点 运维任务 添加/删除节点 在HBase中动态添加/删除节点非常简单,只需要一些命令操作即可,HBase会自动帮你处理节点上下线需要做的事情 添加节点 1.修改conf目录下的regio

360 超大规模HBASE集群的改进

360 超大规模HBASE集群的改进 赵健博  QIHU 360 系统部 zhaojianbo@360.cn •  现状 •  改进 •  建议 •  计划 360 超大规模HBASE集群的改进

高可用Hadoop平台-HBase集群搭建

1.概述 今天补充一篇HBase集群的搭建,这个是高可用系列遗漏的一篇博客,今天抽时间补上,今天给大家介绍的主要内容目录如下所示: 基础软件的准备 HBase介绍 HBase集群搭建 单点问题验证 截图预览 那么,接下来我们开始今天的HBase集群搭建学习. 2.基础软件的准备 由于HBase的数据是存放在HDFS上的,所以我们在使用HBase时,确保Hadoop集群已搭建完成,并运行良好.若是为搭建Hadoop集群,请参考我写的<配置高可用的Hadoop平台>来完成Hadoop平台的搭建.另

hbase 集群启动后master 端口监听不正确

问题描述 hbase 集群启动后master 端口监听不正确 截图是在master机器上端口监听,可以看到60000.60020是监听在127.0.0.1上的 这样就导致其他的slave 机器无法访问60000.60020端口,网上说是hosts配置不正确,但是都各种修改了还是不正确,请问该如何解决