美文网首页
为啥说用了Hbase速度会变快???

为啥说用了Hbase速度会变快???

作者: AceCream佳 | 来源:发表于2019-02-12 14:48 被阅读0次

都知道数据仓库现在一般来说是Hive和kafka,数据平台目前还使用的是hive,但是hive的查询是很慢的,所以为了效率我们引入了Kylin,Kylin并没有大数据存储功能,它所做的只是将数据仓库里的数据预计算,然后存入到Hbase中,查找的时候,给我们提供途径,在不需要直接操作Hbase的情况下,读取Hbase中的数据。那么问题来了! 都是大数据,你Hbase凭什么比我Hive快?

那好,我们先抛下为啥Hbase快,先说说Hive慢的问题。

Q:为啥Hive慢
A:这个其实在我在另一篇介绍Kylin的文章里面聊过了:数据仓库是面向主题的,具体的解释不想敲第二遍了,如下图


随便讲kylin那一篇

既然Hive在速度方面都比不了MySQL,就让他往后稍稍吧。

Q:Hbase和MySQL谁快???
这个其实要经过比较才知道,其实我还没亲手去比较一下他俩,不过百度一查就能看到有人做的相关实验,Habse速度上有一定的优势。

可能这时候又有同学跳出来:

“哎呦!!!那Hbase这么快,还用Mysql干啥?直接替代它啊!!!咱全换Hbase吧!!”

“emmmmmmmmmmmmm”


住口

那Redis还快呢,MongoDB也快!Hbase快,但是Hbase也是noSQL,它并不能支持复杂的查询条件,比如模糊查询,范围查询。。。emmmmm,最主要的一点他甚至连条件查询都不行。

“啊?条件查询都不行?这东西这么垃圾???那还用它干啥?”

“其本身的确不能直接条件查询,但是经过使用者良好的行键设计,是可以实现条件查询的,只不过要求使用者对Hbase非常之熟悉,而且成本也比较大。现在有工具相当于能直接帮我们做这些行键设计。甚至直接可以使用范围查询!比如Kylin就是帮我们做了复杂的工作。”

Q:那为啥Hbase快呢?
A:HBase提供的是实时计算服务,底层的数据结构是 LMS-Tree 、HTable、 Cache

客户端直接定位到HRegion server服务器,然后在服务器的region上查找要匹配的数据,而且这些数据是Cache缓存的。
Hbase会将数据保存到内存里,但是内存毕竟不会帮我们一直存数据,它把这些数据有序的排列在HFile中。Hfile中的内容也是有序的,每当成功保存,内存里的数据就会被清理。
HFile的数据是分页存储的,合并写入会产生新的结果块,最终多个块合并,最后就成了树的结构。

我先跑个题:
LMS树相比较于B+树是牺牲了部分的读性能,大幅度的提高了写性能。因为是批量存储,所以规避了磁盘随机写入的问题。其中的原理就如上文:把一棵大树拆分成N棵小树,首先存入内存,随着小树的增长,内存里的小树会flush到磁盘,磁盘里的树又定期的merge,最后成为大树,优化读性能。思想就是:将对数据的修改增量的保持在内存里。

回到主题中:

经历了多次的刷写之后会产生很多小文件,后台线程会合并他们,这样的话磁盘查找会限制在少量的数据存储文件中。Habse写入快是因为它并不是真的立即写入文件中,而是先写入内存,随后异步刷进HFile。而且是顺序写入而不是随机写入,所以速度就很稳定,就保持稳定的同时,加快了速度。由于Hbase是LMS树结构,所以磁盘读取很快,但是寻找磁道的速度就慢很多。但是Hbase的读取是从缓存开始的,先查缓存,没查到再去内存查找,都没查到才会加载HFile,由于节省了寻道的开销,HFile也很快,Hbase 就很快了。

只要明确了rowkey,就节省了寻道的时间,快速定位rowkey就实现了快速查询,Kylin在预计算的时候就是把数据构件好,然后分配一个rowkey,存入Hbase中的,我们查询的时候拿着rowkey去查自然就很快。

相关文章

  • 为啥说用了Hbase速度会变快???

    都知道数据仓库现在一般来说是Hive和kafka,数据平台目前还使用的是hive,但是hive的查询是很慢的,所以...

  • NO.6 马小艾桃心21天简笔画打怪练习

    速度在变快。

  • 做蛋糕速度变快

    一段时间没做蛋糕了。前几天做了酸奶,想尝试做酸奶蛋糕。昨天做了酸奶面包,没什么酸奶的味道。 现在做蛋糕,轻车熟路。...

  • 发布速度变快了

    好一阵子,简书发布新文章的速度非常得慢,要等很久,有时等了好久还发不出去。 我一度以为手机用久了,所以应用都变慢了...

  • 最后的魂斗罗 (6)

    我很明显的感觉到子弹的速度变快了。“我好像知道这个M是什么意思了”比恩看着我大声说。“说说看,好像射出的子弹变快了...

  • 5G的建设

    使用5G网络后不仅网速会变快,智能机器运行速度也会越来越快,科技的发展速度越来越快……总之5G会让人们的生活发生更...

  • Hbase--读取数据快还是写数据快

    首先,需要明确的是,Hbase写入速度比读取速度要快,根本原因LSM存储引擎 从存储引擎的角度分析 Hbase底层...

  • 为啥 TiFlash 又变快了?

    TiFlash 这个项目的核心思路与和 TiDB 一样:持续听取用户反馈、持续改进、持续优化、高速迭代。最近几周陆...

  • 向上、向前!

    时间会让我们的容颜变老,成长会让自己阅历加深,奔跑能让我们的速度变快,但不变的是我们始终蓬勃的信念,和温暖向...

  • MySQL(4)索引

    索引是什么 索引是帮助MySQL高效获取数据的存储结构作用:提高数据查询效率 添加索引的话查询的速度会变快,但是增...

网友评论

      本文标题:为啥说用了Hbase速度会变快???

      本文链接:https://www.haomeiwen.com/subject/xehkeqtx.html