- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Hbase、Kudu 和 ClickHouse 全面对比(万字、16张图)
???????? Hadoop生态圈的技术繁多。HDFS一直用来保存底层数据,地位坚固。Hbase作为一款Nosql也是Hadoop生态圈的核心组件,它海量的存储力量,优秀的随机读写力量,能够处理一些HDFS不足的地方。Clickhouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。能够使用SQL查询实时生成分析数据报告。它同样拥有优秀的数据存储力量。
Apache Kudu是Cloudera Manager公司16年发布的新型分布式存储系统,结合CDH和Impala使用可以同时处理随机读写和sql化数据分析的问题。分别弥补HDFS静态存储和Hbase Nosql的不足。
既然可选的技术路线有这么多,本文将从安装部署、架构组成、基本操作等方面横向对比一下Hbase、Kudu和Clickhouse。另外这里还引入了几个大厂的实践作为例子予以参考。
安装部署方式对比
具体的安装步骤不过多赘述,这里只简要比较安装过程中需要依靠的外部组件。
Habse 安装
依靠HDFS作为底层存储插件 依靠Zookeeper作为元数据存储插件。
Kudu 安装
依靠Impala作为协助分析插件 依靠CDH集群作为管理插件,但是不是必选的,也可以单独安装。
ClickHouse 安装
依靠Zookeeper作为元数据存储插件和Log Service以及表的 catalog service
组成架构对比。
Hbase架构
图片
Kudu架构
图片
Clickhouse架构
图片
图片
综上所示,Hbase和Kudu都是类似于Master-slave的架构而Clickhouse不存在Master结构,Clickhouse的每台Server的地位都是等价的,是multi-master模式。不过Hbase和Clickhouse额外添加了一个Zookeeper作为协助的元数据存储或者是log server等,而Kudu的元数据是Master管理的,为了避开server频繁从Master读取元数据,server会从Master猎取一份元数据到本地,但是会有元数据丢失的风险。
基本操作对比
数据读写操作
?Hbase读流程
图片
?Hbase写流程
图片
?Kudu
图片
?Clickhouse
Clickhouse是个分析型数据库。这种场景下,数据一般是不变的,因而Clickhouse对update、delete的支持是比较弱的,实际上并不支持标准的update、delete操作。
Clickhouse通过alter方式实现更新、删除,它把update、delete操作叫做mutation(突变)。
标准SQL的更新、删除操作是同步的,即客户端要等服务端反回执行结果(通常是int值);而Clickhouse的update、delete是通过异步方式实现的,当执行update语句时,服务端马上反回,但是实际上此时数据还没变,而是排队等着。
Mutation具体过程
首先,使用where条件找到需要修改的分区;然后,重建每个分区,用新的分区替换旧的,分区一旦被替换,就不行回退;对于每个分区,可以认为是原子性的;但对于整个mutation,假如涉及多个分区,则不是原子性的。
?更新功能不支持更新有关主键或分区键的列;
?更新操作没有原子性,即在更新过程中select结果很可能是一部分变了,一部分没变,从上边的具体过程就可以晓得;
?更新是按提交的挨次执行的;
?更新一旦提交,不能撤销,即便重启Clickhouse服务,也会连续依据system.mutations的挨次连续执行;
?已完成更新的条目不会马上删除,保留条目的数量由finished_mutations_to_keep存储引擎参数确定。超过数据量时旧的条目会被删除;
?更新可能会卡住,比如update intvalue=abc’这品种型错误的更新语句执行不过去,那么会一直卡在这里,此时,可以使用KILL MUTATION来取消。
综上所示,Hbase随机读写,但是Hbase的update操作不是真的update,它的实际操作是insert一条新的数据,打上不同的timestamp,而老的数据会在有效期之后自动删除。而Clickhouse干脆就不支持update和delete。
数据查询操作
?Hbase
不支持标准sql,需要集成Phoenix插件。Hbase本身有Scan操作,但是不建议执行,一般会全量扫描导致集群崩溃。
?Kudu
与Impala集成实现查询。
?Clickhouse
本身有优良的查询功能。
HBASE在滴滴出行的应用场景和最佳实践
HBase在滴滴次要存放了以下四种数据类型:
?统计结果、报表
您可能关注的文档
- 张图带你深入理解 Docker 架构!.docx
- 条 SQL 语句性能优化策略,建议收藏!.docx
- 种让线程顺序执行的方式,你知道吗?.docx
- 张图梳理 Intellij IDEA 常用设置.docx
- . 万亿条数据查询,如何做到毫秒级响应?.docx
- ClickHouse全面解析,看这一篇文章就够了.docx
- Elasticsearch 在业界的大量应用案例.docx
- HDFS .x 升级到 .x 在车好多的实践.docx
- Jar 包依赖冲突很烦人,总结一波排查思路和解决方法.docx
- Java中的方法引用.docx
- Java生鲜电商平台SpringCloud微服务架构中分布式事务解决方案.docx
- JetBrains出品,一款好用到爆的数据库工具,惊艳到了!!!.docx
- Kafka 降本实用指南.docx
- Kafka 灵魂伴侣之运维管控–集群运维.docx
- kafka生产者消息投递分区?消费者选择分区?.docx
- Kafka的灵魂伴侣LogiKafkaManger()之运维管控集群列表.docx
- Kafka的灵魂伴侣LogiKafkaManger(一),滴滴开源项目.docx
- MySql删除重复记录并且只保留一条.docx
文档评论(0)