kudu

kudu

基本概念

  • Kudu是Cloudera开源的新型列式存储系统,专门为了对快速变化的数据进行快速的分析
  • Kudu是对HDFS和HBase功能上的补充,能提供快速的分析和实时计算能力,并且充分利用CPU和I/O资源,支持数据原地修改,支持简单的、可扩展的数据模型。
  • Kudu是基于全新的设计,因此可以更充分地利用RAM、I/O资源,并优化CPU利用率。
    • Kudu相比与以往的系统,CPU使用降低了,I/O的使用提高了,RAM的利用更充分了。
  • 解决问题:
    • 对数据扫描(scan)和随机访问(random access)同时具有高性能,简化用户复杂的混合架构
    • 高CPU效率,使用户购买的先进处理器的的花费得到最大回报
    • 高IO性能,充分利用先进存储介质
    • 支持数据的原地更新,避免额外的数据处理、数据移动
    • 支持跨数据中心replication
  • 它定位OLAP和少量的OLTP工作流,如果有大量的random accesses,官方建议还是使用HBase最为合适
  • 2016年7月25日正式宣布毕业

基本架构

  • Kudu采用了类似log-structured存储系统的方式,增删改操作都放在内存中的buffer,然后才merge到持久化的列式存储中。Kudu还是用了WALs来对内存中的buffer进行灾备。
  • Kudu没有借助于HDFS存储实际数据,而是自己直接在本地磁盘上管理分片数据,包括数据的Replication机制,kudu的Tablet server直接管理Master分片和Slave分片,自己通过raft协议解决一致性问题等,多个Slave可以同时提供数据读取服务
  • Kudu的分区数必须预先指定(对Range的分区策略也有这个要求,估计是先简单化统一处理),不支持动态分区分裂,合并等,因此表的分区一开始就需要根据负载和容量预先进行合理规划。
  • 在Kudu中,对于Flush到磁盘上的DiskRowSet(DRS)数据,实际上是分两种形式存在的,一种是Base的数据,按列式存储格式存在,一旦生成,就不再修改,另一种是Delta文件,存储Base数据中有变更的数据,一个Base文件可以对应多个Delta文件,这种方式意味着,插入数据时相比HBase,需要额外走一次检索流程来判定对应主键的数据是否已经存在,Kudu是牺牲了写性能来换取读取性能的提升
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值