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

简介:

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(转载)

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
7天前
|
存储 分布式计算 Hadoop
大数据处理架构Hadoop
【4月更文挑战第10天】Hadoop是开源的分布式计算框架,核心包括MapReduce和HDFS,用于海量数据的存储和计算。具备高可靠性、高扩展性、高效率和低成本优势,但存在低延迟访问、小文件存储和多用户写入等问题。运行模式有单机、伪分布式和分布式。NameNode管理文件系统,DataNode存储数据并处理请求。Hadoop为大数据处理提供高效可靠的解决方案。
24 2
|
18天前
|
存储 大数据 数据处理
PHP 与大数据:构建高效数据处理系统
传统的数据处理系统往往难以应对大规模数据的处理需求,而PHP作为一种常用的服务器端脚本语言,在数据处理方面也有其独特的优势。本文将探讨如何利用PHP构建高效的大数据处理系统,结合实际案例分析其应用场景及优势所在。
15 2
|
7天前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
|
3月前
|
存储 关系型数据库 MySQL
Mysql 存储大数据量问题
Mysql 存储大数据量问题
88 1
|
7天前
|
分布式计算 资源调度 监控
Hadoop生态系统深度剖析:面试经验与必备知识点解析
本文深入探讨了Hadoop生态系统的面试重点,涵盖Hadoop架构、HDFS、YARN和MapReduce。了解Hadoop的主从架构、HDFS的读写流程及高级特性,YARN的资源管理与调度,以及MapReduce编程模型。通过代码示例,如HDFS文件操作和WordCount程序,帮助读者巩固理解。此外,文章强调在面试中应结合个人经验、行业动态和技术进展展示技术实力。
|
8天前
|
SQL 分布式计算 Hadoop
利用Hive与Hadoop构建大数据仓库:从零到一
【4月更文挑战第7天】本文介绍了如何使用Apache Hive与Hadoop构建大数据仓库。Hadoop的HDFS和YARN提供分布式存储和资源管理,而Hive作为基于Hadoop的数据仓库系统,通过HiveQL简化大数据查询。构建过程包括设置Hadoop集群、安装配置Hive、数据导入与管理、查询分析以及ETL与调度。大数据仓库的应用场景包括海量数据存储、离线分析、数据服务化和数据湖构建,为企业决策和创新提供支持。
40 1
|
25天前
|
消息中间件 SQL 分布式计算
大数据Hadoop生态圈体系视频课程
熟悉大数据概念,明确大数据职位都有哪些;熟悉Hadoop生态系统都有哪些组件;学习Hadoop生态环境架构,了解分布式集群优势;动手操作Hbase的例子,成功部署伪分布式集群;动手Hadoop安装和配置部署;动手实操Hive例子实现;动手实现GPS项目的操作;动手实现Kafka消息队列例子等
20 1
大数据Hadoop生态圈体系视频课程
|
29天前
|
存储 分布式计算 大数据
现代化数据库技术——面向大数据的分布式存储系统
传统的关系型数据库在面对大规模数据处理时遇到了诸多挑战,而面向大数据的分布式存储系统应运而生。本文将深入探讨现代化数据库技术中的分布式存储系统,包括其优势、工作原理以及在大数据领域的应用。
|
1月前
|
安全 Java 大数据
基于大数据的旅游系统的设计与实现(论文+源码)_kaic
基于大数据的旅游系统的设计与实现(论文+源码)_kaic
|
2月前
|
数据采集 存储 分布式计算
使用Hadoop和Nutch构建音频爬虫:实现数据收集与分析
使用Hadoop和Nutch构建音频爬虫:实现数据收集与分析

热门文章

最新文章