5分钟内的Apache Kudu(5分钟内的朗诵作品)
Apache Kudu是一种数据存储技术,可以对快速数据进行快速分析。 Cloudera启动了该项目,但它是完全开源的。 Kudu提供快速插入和更新功能以及快速搜索功能,以加快分析速度。 它位于带有Parquet的HBase和Impala之间,试图消除快速扫描和快速随机访问之间的折衷。
图片来自Cloudera
有趣的是,使Kudu脱颖而出的是它的熟悉程度。
像传统的关系数据库模型一样,Kudu需要在表上使用主键。 表具有列和原始数据类型,并支持更新。 如果要将关系数据库迁移到Hadoop集群,维护更新/删除可能是一个挑战。 这是由于"数据库"工具直接位于HDFS之上。 由于HDFS是一次写入的架构,因此更新行可能会很困难,因为您必须通过重写基础数据来复制此功能。
那么它是怎样工作的?
它不使用HDFS。 但是,它可以与HDFS在同一群集上共存。 您可以在Kudu常见问题解答页面上找到做出此设计决定的多种原因。
每个表必须具有一个唯一的主键。 这充当索引,以允许快速访问更新和删除。 表由平板电脑组成,就像分区一样。 平板电脑可跨多个节点复制,以实现弹性。 数据以列形式存储。 这意味着由于每个列中的所有数据都按顺序存储,因此列式聚合更快。 这也意味着可以更轻松地对数据进行矢量化和压缩,因为每列的所有数据都是同一类型。
图片来自kudu.apache.org
尽管Kudu位于HDFS之外,但它仍然是Hadoop集群上的"好公民"。 它可以与HDFS节点共享数据磁盘,并且占用的内存很少。 它还允许您透明地将Kudu表与Hadoop中其他位置(包括HBase表)存储的数据连接在一起。
如何使用?
表是自我描述的,这意味着像Impala这样的SQL引擎可以很容易地与Kudu表一起使用。 Spark还可以用于分析数据,并且还有Java和C ++ API。 尝试Kudu的最简单方法是使用Quickstart VM。 这显示了如何使用Impala创建Kudu表以及如何将现有Impala表中的数据移植到Kudu表中。 使用Impala_Kudu应用程序(可以与默认的Impala安装一起安装),您可以执行标准的Impala查询,还可以发出更新命令。
如果您正在考虑将数据仓库迁移到Hadoop中,而又不想重新设计架构以适应NoSQL运动的麻烦,那么Kudu可能是适合您的工具。 不过,不要太草率,因为它仍处于测试阶段,但对未来来说前景广阔。
摘要
Kudu专为在批量访问和随机访问读/写方案中提高速度而设计。 它与标准SQL引擎兼容,因此易于采用,并且与Hadoop生态系统的其余部分兼容。
请记住,Kudu不应取代HDFS或HBase,它们都有各自独特的用例。 与往常一样,为正确的工作选择正确的工具很重要。 我希望这5分钟的概述能激发您的兴趣,至少像我一样尝试Kudu。
(本文翻译自Lewis Gavin的文章《Apache Kudu in 5 Minutes》,参考:https://medium.com/@lewisdgavin/apache-kudu-in-5-minutes-91e9371a4f8f)