Kudu:为大数据快速分析量身定制的 Hadoop 存储系统

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介:

Apache Hadoop提供了一系列数据存储与处理的组件,覆盖了多种多样、应用于企业级关键服务的用户案例。在Cloudera,我们一直在努力探索Hadoop的各种可能性,拓展Hadoop的边界——使得Hadoop更快、更好用、更安全。

自2012年,我们开启了一个关于Apache Hadoop存储系统的验证工作(避免Hadoop被约束在部分特定用户案例中)。验证过程中,我们发现了一些重要的发展趋势并最终决定去开发一个新型的存储系统,对HDFS与Apache HBase提供的功能进行补充。现在,我们非常自豪地推出Kudu,一个Hadoop生态系统上的新生开源组件。Kudu的目标是:

提供快速的全量数据分析与实时处理功能;

充分利用先进CPU与I/O资源;

支持数据更新;

简单、可扩展的数据模型

在这里,我们会对打造Kudu的动机、Kudu架构等给出简单的介绍。

功能上的空白
在很多Cloudera的客户环境中,我们发现了“混合架构 (hybrid architecture)”的趋势,即很多Hadoop工具会被同时部署。HBase主要被用于支撑数据导入,(及其)快速的小查询执行,更重要的是支持数据的随机修改。而HDFS与Impala组合的使用可以高效处理列式存储数据(例如Apache Parquet),在大规模数据集上提供高性能的分析型查询。

目前,大部分客户都被迫去打造一个混合式的架构,将多个工具集成在一起进行使用。客户首先选择一种存储系统导入、更新数据,但是后续为了最优化分析型报表的生成就得转向采用另一种存储系统。虽然我们的客户已经成功地部署、维护了这样的混合架构,但是我们相信,如果一个存储系统能够为多种不同类型的工作负载提供高性能的处理能力,那么对于那种需要使用混合架构才能解决的问题将是更加优雅的解决方案。

新的硬件
另一个我们在客户现场发现的趋势是硬件能力的不断加强。首先是内存的增长,从32GB到2012年的128GB到如今的256GB。然后是磁盘,现在在很多普通服务器中SSD的应用也是屡见不鲜。HBase、HDFS、以及其他的Hadoop工具通过调整、升级也在不断适应更新换代的硬件,但是这些系统在当初设计时集群的瓶颈在于底层磁盘的速度。最优化磁盘存储架构的设计对于现代架构(大量数据可以缓存在内存中,永久存储层数据的随机访问速度是原来的100多倍)就未必是最优的。

另外,随着存储层数据访问速度的不断增长,整个系统性能的瓶颈反而转向了CPU。当存储层越来越快,CPU效率变得愈发关键。

Kudu简介
为了应对先前发现的这些趋势,有两种不同的方式:持续更新现有的Hadoop工具或者重新设计开发一个新的组件。其目标是:

对数据扫描(scan)和随机访问(random access)同时具有高性能,简化用户复杂的混合架构;

高CPU效率,最大化先进处理器的效能;

高IO性能,充分利用先进永久存储介质;

支持数据的原地更新,避免额外的数据处理、数据移动

我们为了实现这些目标,首先在现有的开源项目上实现原型,但是最终我们得出结论:需要从架构层作出重大改变。而这些改变足以让我们重新开发一个全新的数据存储系统。于是3年前开始开发,直到如今我们终于可以分享多年来的努力成果:Kudu,一个新的数据存储系统。

Kudu设计
从用户的角度而言,Kudu是用于存储结构化数据的(tables)。表,具有一个定义明确的表结构(schema)包含一组预先定义的列。每个表具有一个主键(primary key),由一到多个列所组成。主键强加了数据唯一性的约束,同时也像索引一样可以加速数据的更新和删除。

Kudu表包含了一系列逻辑数据子集(Tablets),跟如同传统数据库系统的分区(Partition)。Kudu原生提供数据可用性支持,通过将Tablets复制到不同机器的方式(Raft consensus算法)处理硬件错误带来的数据不可访问问题。每个Tablets的大小一般在几十个GB左右,一个独立的服务器节点一般可以为10—100个Tablets提供服务。

Kudu采用master后台进程管理元数据(就像是目录catalog,描述数据的逻辑结构)、在硬件错误恢复时实现调度(coordinator)以及记录每个tablet服务器上tablets的状态等。Kudu使用多个master后台进程以提供管理节点的高可用性。Kudu实现了Raft Consensus算法,因此很多master进程的功能都可以通过Tablet服务器实现,在未来的发展路线图中,master的职责也会被分散到不同的机器上。另外,Kudu的master后台进程不会成为整个集群性能的瓶颈,根据在250节点集群的测试中,master后台进程完全没有性能的问题。

存储于Kudu的数据是可修改的(利用log-structured变种算法)。更新、插入、删除都是临时先缓冲于内存,随后合并进永久性列式存储中。Kudu为了保证查询延迟不出现大的波动,也会周期性地进行小型维护操作,比如compaction。

Kudu提供了C++、Java API支持点操作与批操作。Kudu的另一个目标是与现有的Hadoop生态系统工具进行集成。目前,Kudu的Beta版本已经与Impala、MapReduce以及Apache Spark实现了整合。随着时间的推移,我们计划将Kudu集成到整个Hadoop生态系统中。

本文转自d1net(转载)

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2月前
|
存储 机器学习/深度学习 SQL
大数据处理与分析技术
大数据处理与分析技术
136 2
|
13天前
|
机器学习/深度学习 数据可视化 大数据
机器学习与大数据分析的结合:智能决策的新引擎
机器学习与大数据分析的结合:智能决策的新引擎
98 15
|
19天前
|
SQL 分布式计算 DataWorks
DataWorks产品测评|基于DataWorks和MaxCompute产品组合实现用户画像分析
本文介绍了如何使用DataWorks和MaxCompute产品组合实现用户画像分析。首先,通过阿里云官网开通DataWorks服务并创建资源组,接着创建MaxCompute项目和数据源。随后,利用DataWorks的数据集成和数据开发模块,将业务数据同步至MaxCompute,并通过ODPS SQL完成用户画像的数据加工,最终将结果写入`ads_user_info_1d`表。文章详细记录了每一步的操作过程,包括任务开发、运行、运维操作和资源释放,帮助读者顺利完成用户画像分析。此外,还指出了文档中的一些不一致之处,并提供了相应的解决方法。
|
18天前
|
分布式计算 DataWorks 搜索推荐
用户画像分析(MaxCompute简化版)
通过本教程,您可以了解如何使用DataWorks和MaxCompute产品组合进行数仓开发与分析,并通过案例体验DataWorks数据集成、数据开发和运维中心模块的相关能力。
|
2月前
|
机器学习/深度学习 存储 大数据
在大数据时代,高维数据处理成为难题,主成分分析(PCA)作为一种有效的数据降维技术,通过线性变换将数据投影到新的坐标系
在大数据时代,高维数据处理成为难题,主成分分析(PCA)作为一种有效的数据降维技术,通过线性变换将数据投影到新的坐标系,保留最大方差信息,实现数据压缩、去噪及可视化。本文详解PCA原理、步骤及其Python实现,探讨其在图像压缩、特征提取等领域的应用,并指出使用时的注意事项,旨在帮助读者掌握这一强大工具。
92 4
|
2月前
|
关系型数据库 分布式数据库 数据库
PolarDB 以其出色的性能和可扩展性,成为大数据分析的重要工具
在数字化时代,企业面对海量数据的挑战,PolarDB 以其出色的性能和可扩展性,成为大数据分析的重要工具。它不仅支持高速数据读写,还通过数据分区、索引优化等策略提升分析效率,适用于电商、金融等多个行业,助力企业精准决策。
36 4
|
2月前
|
机器学习/深度学习 分布式计算 算法
【大数据分析&机器学习】分布式机器学习
本文主要介绍分布式机器学习基础知识,并介绍主流的分布式机器学习框架,结合实例介绍一些机器学习算法。
241 5
|
2月前
|
存储 算法 固态存储
大数据分区优化存储成本
大数据分区优化存储成本
38 4
|
3月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
201 6
|
3月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
88 2