Kudu 概述

Kudu 概述

Kudu是为Apache Hadoop平台开发的一个列存储管理器。Kudu具有Hadoop生态系统应用程序的共同技术特性:它运行在普通硬件上,可水平伸缩,支持高可用性操作。

Kudu 的定位:

Fast Analytics on Fast Data,是一个既支持随机读写、又支持 OLAP 分析的大数据存储引擎。

应用场景:

  • 适合于在线实时分析的应用
  • 适合大数据量更新操作的应用
  • 适合将mysql的数据同步到kudu,减轻备库mysql查询的压力
  • 适合存储ADS数据,包含用户标签、各类指标数据等
  • 适合于存储结构化数据
  • 适合于和Impala继承,SQL分析数据
  • 适合于和HDFS一起使用,聚合数据源
  • 实时预测模型的应用,支持根据所有历史数据周期地更新模型
  • ……

产生背景:

Cloudera公司研发工程师 Todd Lipcon在开发初,本来对hbase改造、支持大数据量更新,但是由于改动源码太大,所以kudu这时候产生了。kudu是2015年开源的,开发语言是C++,截止目前为止,已经更新到1.10 版本。

Kudu 之前,大数据主要以两种方式存储:

  • 第一种是静态数据:以 HDFS 引擎作为存储引擎,适用于高吞吐量的离线大数据分析场景。这类存储的局限性是数据无法进行随机的读写和批量的更新操作
  • 第二种是动态数据:以 HBase作为存储引擎,适用于大数据随机读写场景,这类存储的局限性是批量读取吞吐量远不如 HDFS、不适用于批量数据分析的场景。业界主要用于构建实时仓库等。

而KUDU在 HDFS 和 HBase 这两个中平衡了随机读写和批量分析的性能,既支持SQL实时查询,也支持了数据更新插入操作。并且完美的和impala集成,统一了hdfs数据源和kudu数据源,从而使得开发人员能够高效的进行数据分析。

impala-kudu 的继承应用

impala-kudu 主要用于实时的分析海量数据,即海量的结构化数据不断更新到kudu 中,底层是以列式结构分布式存储,查询是获取结构化数据,然后进行 OLAP 等分析型操作,这些分析型操作所涉及的数据延迟性很小。但是kudu对硬件资源要求很高,特别是IO这块。

impala-kudu 的应用适用于多个行业,凡是结构化数据分析的情景都可使用,从实时性方面来讲,使用sql实时的查询结构化数据,使得分析操作快速和高效。从离线方面来讲,可以查询hdfs的数据,从而保证了数据的统一化和多元化,并且有利于构建数据仓库模型。

你可能感兴趣的:(kudu)