更新时间:2023-11-07 GMT+08:00

Kudu

Kudu是专为Apache Hadoop平台开发的列式存储管理器,具有Hadoop生态系统应用程序的共同技术特性:在通用的商用硬件上运行,可水平扩展,提供高可用性。

Kudu的设计具有以下优点:

  • 能够快速处理OLAP工作负载
  • 支持与MapReduce,Spark和其他Hadoop生态系统组件集成
  • 与Apache Impala的紧密集成,使其成为将HDFS与Apache Parquet结合使用的更好选择
  • 提供强大而灵活的一致性模型,允许您根据每个请求选择一致性要求,包括用于严格可序列化的一致性的选项
  • 提供同时运行顺序读写和随机读写的良好性能
  • 易于管理
  • 高可用性。Master和TServer采用raft算法,该算法可确保只要副本总数的一半以上可用,tablet就可以进行读写操作。例如,如果3个副本中有2个副本或5个副本中有3个副本可用,则tablet可用。即使主tablet出现故障,也可以通过只读的副tablet提供读取服务
  • 支持结构化数据模型

通过结合所有以上属性,Kudu的目标是支持在当前Hadoop存储技术上难以实现或无法实现的应用。

Kudu的应用场景有:
  • 需要最终用户立即使用新到达数据的报告型应用
  • 同时支持大量历史数据查询和细粒度查询的时序应用
  • 使用预测模型并基于所有历史数据定期刷新预测模型来做出实时决策的应用

Kudu与其他组件的关系

  • Kudu与HBase的关系:

    Kudu的设计参考了HBase的结构,能够实现HBase擅长的快速随机读写、更新的功能。

    二者主要差别在于:

    • Kudu不依赖Zookeeper,通过自身实现Raft来保证一致性。
    • Kudu持久化数据不依赖HDFS,TServer实现数据的强一致性和可靠性。