Hbase、Kudu和ClickHouse对比

最近看了些大拿的相关文章,做笔记如下:   

     Hadoop生态圈中HDFS一直用来保存底层数据。Hbase作为一款Nosql也是Hadoop生态圈的核心组件,它海量的存储能力,优秀的随机读写能力,能够处理一些HDFS不足的地方。
     Clickhouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。能够使用SQL查询实时生成分析数据报告。它同样拥有优秀的数据存储能力。
     Apache Kudu是Cloudera Manager公司16年发布的新型分布式存储系统,结合CDH和Impala使用可以同时解决随机读写和sql化数据分析的问题。分别弥补HDFS静态存储和Hbase Nosql的不足。

     接着说一下Hbase与Kudu,可以说是Kudu师承Hbase,架构是类似的master-slave结构。

     Hbase的物理模型是master和regionserver,regionserver存储的是region,region里边很有很多store,一个store对应一个列簇,一个store中有一个memstore和多个storefile,store的底层是hfile,hfile是hadoop的二进制文件,其中HFile和HLog是Hbase两大文件存储格式,HFile用于存储数据,HLog保证可以写入到HFile中;
     Kudu的物理模型是master和tserver,其中table根据hash和range分区,分为多个tablet存储到tserver中,tablet分为leader和follower,leader负责写请求,follower负责读请求,总结来说,一个ts可以服务多个tablet,一个tablet可以被多个ts服务(基于tablet的分区,最低为2个分区)
     Clickhouse的特点在于它较快的查询性能,虽然也能存储数据,但并不是他的强项,而且Clickhouse还不能update/delete数据。

表格中列出几个维度的对比:

  Hbase Kudu Clickhouse
数据存储 Zookeeper保存元数据,数据写入HDFS(非结构化数据) master保存元数据,数据及副本存储在tserver(强类型数据) Zookeeper保存元数据,数据存储在本地,且会压缩
查询 查询比较麻烦,Phoenix集成之后比较好点 查询比较麻烦,集成Impala之后表现优秀 高效的查询能力
数据读写 支持随机读写,删除。更新操作是插入一条新timestamp的数据 支持读写,删除,更新 支持读写,但不能删除和更新
维护 需要同时维护HDFS、Zookeeper和Hbase(甚至于Phoenix) CDH版本维护简单,Apache版需要单独维护,额外还有Impala 额外维护Zookeeper


   应用场景:

    Hbase更适合非结构化的数据存储,对大数据进行实时读写及更新的场景,Kudu+Impala也可以很好的胜任,当然再结合CDH就更好了,瓶颈并不在Kudu,而在Impala的Apache部署,比较复杂。

    ClickHouse 适合低并发,灵活即席查询场景,也支持例如:报表分析,留存分析,用户标签画像分析,用户行为漏斗分析,归因分析等

备注:

    1、CDH是Cloudera的100%开源平台发行版,包括Apache Hadoop,专为满足企业需求而构建。CDH提供开箱即用的企业使用所需的一切。通过将Hadoop与十几个其他关键的开源项目集成,Cloudera创建了一个功能先进的系统,可帮助您执行端到端的大数据工作流程。CDH 是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具(软件),使得集群的安装可以从几天的时间缩短为几个小时,运维人数也会从数十人降低到几个人,极大的提高了集群管理的效率。

 

posted @ 2021-09-26 17:42  xuzhujack  阅读(3513)  评论(0编辑  收藏  举报
;