Kudu应用开发简介
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本身是由C++语言开发的,但它支持使用C++、Java、Python等语言进行程序开发,推荐用户使用Java语言进行Kudu应用程序开发。
Kudu采用的接口与Apache Kudu保持一致,请参考https://kudu.apache.org/apidocs/。