2021~2022Apache大数据相关项目盘点
一、晋升为Apache TLP(Top-Level Project)的大数据相关项目
- 1.1、Apache DataSketches (20210203)
- 1.2、Apache Gobblin (20210216) **
- 1.3、Apache DolphinScheduler (20210408) **
- 1.4、Apache Pinot (20210802)
- 1.5、Apache Hop (20220118) **
二、进入到 Apache 孵化器(incubator)的项目:
- 2.1、Apache Kyuubi
- 2.2、Apache SeaTunnel
四、2021 Apache 年度项目:
- 4.1、Apache Superset 最活跃(2021年度报告)**
1.1、Apache DataSketches :高性能大数据流算法库
Apache DataSketches 是一个用于可扩展近似算法的高性能大数据分析库。该项目于2012年由雅虎发起,2015年开源,并于2019年3月进入Apache孵化器,2021年02月03日正式毕业成为 Apache 顶级项目。
在大数据分析中,经常会出现一些不能伸缩的查询问题,因为它们需要大量的计算资源和时间来生成精确的结果。包括 count distinct、分位数(quantiles)、最频繁项(most-frequent items)、joins、矩阵计算(matrix computations)和图分析(graph analysis)。
如果近似结果是可以接受的,那么有一类专门的算法,称为流算法(streaming algorithms),或 sketches,可以更快地产生结果,并具有数学证明的误差界限。对于交互式查询,可能没有其他可行的替代方案,而在实时分析的情况下,sketches 是唯一已知的解决方案。
对于任何需要从大数据中提取有用信息的系统,这些 sketches 都是必需的工具包,应该紧密地集成到它们的分析功能中。这项技术帮助雅虎成功地将其内部平台上的数据处理时间从数天或数小时减少到数分钟或数秒。Apache DataSketches 具有以下特点:
- 非常快:产生近似结果的速度比传统方法快几个数量级——用户可配置的大小与精度的权衡;
- 高效:sketch 算法可以在同一个进程处理实时和批数据;
- 针对处理大数据的计算环境进行优化,如 Apache Hadoop、Apache Spark、Apache Druid、Apache Hive、Apache Pig、PostgreSQL等;
- 兼容多种语言和平台:Java, C++ 和 Python;
1.2、Apache Gobblin:开源分布式大数据集成框架
Apache Gobblin 是一个用于流数据和批处理数据生态系统的分布式大数据集成框架。可以简化大数据集成里面的常见问题,比如数据摄取、复制、组织以及生命周期管理等。
该项目2014年起源于 LinkedIn,2015年开源,2017年2月进入 Apache 孵化器,2021年02月16日正式毕业成为 Apache 顶级项目。
多年来,LinkedIn 的数据基础架构团队构建了自定义的数据摄取解决方案,用于将不同的数据引入到 Hadoop 生态系统。最终,LinkedIn 运行了 15 种类型的摄取管道,这给数据质量、元数据管理、开发和操作带来了重大挑战。
上面这个问题促使 LinkedIn 构建了 Gobblin。Gobblin 是一种通用数据摄取框架,用于从各种数据源(例如数据库、REST API、FTP/SFTP 服务器、文件管理器等)中提取、转换和加载大量数据到 Hadoop。
Gobblin 处理所有数据摄取 ETL 所需的常见例行任务,包括作业/任务调度、任务分区、错误处理、状态管理、数据质量检查、数据发布等。Gobblin 在同一执行框架中摄取来自不同数据源的数据,并在同一个地方管理不同来源的元数据。结合其他特性,例如自动扩展、容错性、数据质量保证、可扩展性和处理数据模型演化的能力,使 Gobblin 成为一个易于使用、自我服务且高效的数据摄取框架。
1.3、Apache DolphinScheduler:开源分布式大数据可视化工作流调度系统
Apache DolphinScheduler是一个分布式去中心化,易扩展的可视化DAG工作流任务调度平台。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
该项目最初于 2017 年 12 月在易观创建,并于 2019 年 8 月进入 Apache 孵化器,2021年04月08日正式毕业成为 Apache 顶级项目。
Apache DolphinScheduler 以 DAG 流式的方式将 Task 组装起来,可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败、暂停及 Kill 任务等操作。其主要有以下几个特点:
- 高可靠性:去中心化的多 Master 和多 Worker 服务对等架构, 避免单 Master 压力过大,另外采用任务缓冲队列来避免过载
- 简单易用:DAG 监控界面,所有流程定义都是可视化,通过拖拽任务完成定制 DAG,通过 API 方式与第三方系统集成, 一键部署
- 丰富的使用场景:支持多租户,支持暂停恢复操作. 紧密贴合大数据生态,提供 Spark, Hive, M/R, Python, Sub_process, Shell 等近20种任务类型
- 高扩展性:支持自定义任务类型,调度器使用分布式调度,调度能力随集群线性增长,Master 和 Worker 支持动态上下线
1.4、Apache Pinot:开源分布式实时大数据分析基础设施
Apache Pinot 是一个分布式实时分布式 OLAP 数据存储,旨在以高吞吐量和低延迟提供可扩展的实时分析。
该项目最初于 2013 年由 LinkedIn 创建,2015 年开源,于 2018 年 10 月进入 Apache 孵化器,2021年08月02日正式毕业成为 Apache 顶级项目。
Apache Pinot 可以直接从流数据源(例如 Apache Kafka 和 Amazon Kinesis)中提取,并使事件可用于即时查询。它还可以从批处理数据源(例如 Hadoop HDFS、Amazon S3、Azure ADLS 和 Google Cloud Storage)中提取。
该系统的核心是列式存储,具有多种智能索引和预聚合技术以实现低延迟。这使得 Pinot 最适合面向用户的实时分析。同时,Pinot 也是其他分析用例的绝佳选择,例如内部仪表板、异常检测和临时数据探索。
Apache Pinot 主要有以下特点:
- 面向列的数据库:具有各种压缩方案,如 Run Length,Fixed Bit Length;
- 可插拔索引技术:支持排序索引(Sorted Index),位图索引(Bitmap Index),倒排索引(Inverted Index,),StarTree 索引,Bloom 过滤器,范围索引(Range Index),文本搜索索引(Lucence/FST), Json 索引,地理空间索引(Geospatial Index );
- 具有基于查询和 segment 元数据优化查询/执行计划的能力;
- 支持从 Kafka、Kinesis 等流系统近实时的摄取数据,也支持从 Hadoop、S3、Azure、GCS 等批处理系统摄取数据;
- 类似 sql 的查询语言,支持对数据进行选择、聚合、过滤、分组、排序和 distinct 查询;
- 支持多值字段
- 支持水平扩展和容错
Pinot 是 LinkedIn 和 Uber 的工程师共同设计的,可以根据集群中的节点数量来扩展查询性能。随着添加更多节点,查询性能总是会根据期望的每秒查询量配额提高。为了在不降低性能的情况下实现无限数量节点和数据存储的水平可伸缩性,Pinot 遵守以下设计原则:
- 高可用性:构建 Pinot 是为了为客户应用程序提供低延迟的分析查询。根据设计,Pinot 没有单点故障。当节点故障时,系统继续提供查询服务。
- 水平可伸缩:在工作负载发生变化时通过添加新节点进行伸缩的能力;
- 延迟 vs 存储:构建 Pinot 是为了在高吞吐量的情况下提供低延迟。为此,开发了段分配策略(segment assignment strategy)、路由策略、星树索引(star-tree indexing)等特性来实现这个功能。
- 不可变数据:Pinot 假设所有存储的数据都是不可变的。对于 GDPR 遵从性,我们提供了一个附加解决方案来清除数据,同时提供性能保证;
- 动态配置更改:必须在不影响查询可用性或性能的情况下执行添加新表、扩展集群、摄取数据、修改索引配置和重新平衡等操作。
1.5、Apache Hop 起源于 Kettle 的新一代数据集成平台
Apache Hop(Hop Orchestration Platform 的首字母缩写)是一种数据编排(data orchestration )和数据工程平台(data engineering platform),旨在促进数据和元数据编制。Hop 可以让我们专注于问题的解决,而不受技术的阻碍。该项目起源于 Kettle,经过数年的重构,并于2020年9月进入 Apache 孵化器;2022年1月18日正式成为 Apache 顶级项目。
Hop 允许数据专业人员以可视化的方式工作,使用元数据来描述应如何处理数据。可视化设计使数据开发人员能够专注于他们想要做的事情,而不是需要如何完成该任务。这种对手头任务的关注让 Hop 开发人员比编写代码时更有效率。Hop 的目标是成为数据集成的未来,我们只需要对手头上的任务进行一次设计,然后通过 Apache Hop 在任何地方运行,比如 Hop 本地引擎、Spark、Flink、Google Dataflow 或 AWS EMR等。
Hop 被设计的尽可能灵活:其核心是小巧但功能强大的 Hop 引擎。所有的功能都是通过插件添加的:默认的 Hop 安装带有大约 400 个插件。我们可以根据需要删除或添加第三方插件,以定制 Hop,使其完全符合我们的需要。
Hop 设计用于任何场景,从物联网到海量数据、本地、云端、裸操作系统或容器和 kubernetes。
Hop 的使用场景主要有以下几个方面:
- 利用云、集群和大规模并行处理环境,将大型数据集加载到数据库中;
- 数据仓库构建并支持渐变维度 (SCD, Slowly Changing Dimensions)、变更数据捕获 (CDC,Change Data Capture) 和代理键创建;
- 不同数据架构之间的集成,结合关系型数据库、文件、NoSQL 数据库(如 Neo4j、MongoDB、Cassandra等)
- 不同数据库和应用程序之间的数据迁移;
- 数据分析和数据清理。
Apache Hop 和 Kettle 联系和区别:
Kettle 最早是一个开源的 ETL 工具,作为一个端对端的数据集成平台,可以对多种数据源进行抽取(Extraction)、加载(Loading)、数据落湖(Data Lake Injection)、对数据进行各种清洗(Cleasing)、转换(Transformation)、混合(Blending)。
支持无代码拖拽式构建数据管道、多种数据源以及和 Hadoop 深度集成。在国内外的很多行业有着广泛的使用。不过近几年 Kettle 的发展比较缓慢,为了改变现状,2019年基于 Kettle 的一个分支建立 Hop 项目。
由于 Apache Hop 是从 Kettle 发展过来的,所以两者之间在概念上基本上可以找到对应的名称,比如 Kettle 里面转换在 Hop 里面称为管道(Pipeline):
Apache Hop 和 Kettle 功能的对比如下所示:
从上表可以看到,Hop 相比于 Kettle 比较完善。比如 Hop 支持项目和生命周期配置、支持在项目和配置中搜索信息、通过 UI 和命令行进行配置管理。另外,Hop 和 Apache Beam 有比较深的集成,所以其支持可插拔的运行时引擎,比如可以将 Pipelines 通过 Apache Beam 发到 Apache Spark 、Apache Flink 、Dataflow 等引擎里面计算。
2.1、Apache kyuubi:分布式多租户的 Thrift JDBC/ODBC 服务器
Apache Kyuubi 是一个分布式多租户的 Thrift JDBC/ODBC 服务器,用于大规模数据管理、处理和分析,其构建在 Apache Spark 之上,并且设计支持更多的引擎(比如 Apache Flink)。由网易在2018年开源,并于2021年06月21日进入 Apache 孵化器。
Kyuubi 主要应用在大数据领域场景,包括大数据离线计算、数据仓库、Ad Hoc等方向。Kyuubi 提供了以下几个功能:
- 多租户:Kyuubi 支持端到端的多租户,这就是为什么尽管已经存 在Spark Thrift JDBC/ODBC 服务器,网易还是要创建这个项目。
- 简单易用:您只需熟悉 SQL 和JDBC 即可处理海量数据,Kyuubi 帮助您专注于业务系统的设计和实现。
- 到处运行:Kyuubi 可以向所有支持的集群管理器提交 Spark 应用程序,包括 YARN、Mesos、Kubernetes、Standalone 和 local。
- 安全和认证:通过强大的身份验证和细粒度的列/行级授权,Kyuubi 可以确保系统和数据的安全。
- 高可用:是企业级SQL引擎的基本特性。Spark Thrift Server不具备这种能力;而Kyuubi提供了基于ZooKeeper的高可用解决方案,以支持高可用特性;
2.2、Apache SeaTunnel:高性能、分布式、海量数据集成框架
Apache SeaTunnel (原名 Waterdrop)是一个非常易于使用的超高性能分布式数据集成平台,支持实时流式和离线批处理的海量数据处理,架构于 Apache Spark 和 Apache Flink 之上。由 Interesting Lab 于 2018年开源,并于2021年12月09日进入 Apache 孵化器。
通过 Apache SeaTunnel 可以让 Spark 的使用更简单、更高效,并巩固了行业的高质量经验,并将业界和 Interesting Lab 使用 Spark 的优质经验固化到SeaTunnel 这个产品中,明显减少学习成本,加快分布式数据处理能力在生产环境落地。Databricks 开源的 Apache Spark 对于分布式数据处理来说是一个伟大的进步。Interesting Lab 在使用 Spark 时发现了很多可圈可点之处。除了大大简化分布式数据处理难度外,seatunnel 尽所能为您解决可能遇到的问题:
- 数据丢失与重复
- 任务堆积与延迟
- 吞吐量低
- 应用到生产环境周期长
- 缺少应用运行状态监控
Apache SeaTunnel 的特性:
- 简单易用,灵活配置,无需开发
- 实时流式处理
- 高性能
- 海量数据处理能力
- 模块化和插件化,易于扩展
- 支持利用SQL做数据处理和聚合
- Spark Structured Streaming
- 支持Spark 2.x
3.1、apache Ambari 正式退役 (https://attic.apache.org/projects/ambari.html)
2022 年初,Apache Ambari 于 2022-01 悄然宣布,项目不再维护,正式进入退役阶段!
Ambari 回顾:
- Apache Ambari 提供了一系列工具软件,辅助集群管理员,进行集群搭建/集群管理/集群监控,从而使得大数据集群的运维管理更简单易捷;
- 除了提供基于浏览器的 WEB-UI 方便运维人员对集群进行运维管理外,Ambari 也提供了一系列 REST APIs, 方便应用开发人员与系统集成人员,将集群搭建/集群管理/集群监控功能,提成到应用系统中;
- Apache Ambari 创建于 2013-11,其最新版本,也是最后一个版本,是 Ambari 2.7.6,发布于 2021-11月;
“项目退役”的含义:
- 项目中正在使用的开源组件退役后,用户仍然可以正常获取该组件的源码包和二进制包,仍然可以正常使用,几乎不受影响;对于代码能力比较强有二次开发能力的大公司,很多都会基于开源版本fork自己的新分支并维护在自己的代码库中,其影响更是有限。
- 已经退役的开源组件,Apache 官方不会再维护该项目,也就是说不会出新版本和新特性,对后续陆续发现的BUG也不会出修复版本,所以虽然该组件仍可以正常使用,但由于不能复用其背后开源社区的力量,所以长期来讲,一般都会重新进行技术选型,寻找替代品,在新产品新项目中切换使用新组件,在旧产品旧项目中逐步淘汰替换旧组件。
Ambari 往昔:
- 2015 年初,大数据三驾马车(Cloudera,Hortonworks,MapR)正值春风得意,Ambari 作为市面上唯一的开源的大数据集群管理系统,其开源社区相当活跃,市面上的应用者也很多,很多公司都基于开源的 Ambari 进行二次开发构建自己的大数据平台,Hortonworks 更是将 Ambari 作为其大数据平台 HDP (Hortonworks Data Platform) 内置的大数据集群管理系统,其市场占用率不可谓不高!
六七年时间,Ambari 就从当初的鼎盛时期,走到了今天退役的境地!这背后的原因:
- IT 市场大环境变化的影响:随着IT 生态大环境的变化,尤其是云计算的突起,市场竞争愈加激烈,Cloudera 不得不改变市场策略,于2019年1月与 Hortonworks 进行了合并;另一驾马车MapR,也被笔者曾经的东家 HPE 于2019年8月收购;
- 有科技大公司产品策略调整的直接影响:Cloudera 与 Hortonworks 合并后,逐步摒弃了 HDP 与 CDH 大数据平台,推出了 CDP 大数据平台;并在底层的大数据集群管理系统上,摒弃了 Ambari,主推原 CDH 底层的 Cloudera Manager;
- 更有开源社区宣传和运营的问题:Ambari作为一款优秀的开源大数据管理系统,时至今日,仍有不少公司的大数据平台是基于其开源版本二开构建的,正所谓酒香也怕巷子深,如果 Ambari 社区有着良好的宣传和运营,如果基于 Ambari 二开的公司能更主动地秉承开源精神回馈社区,相信即使 Cloudera 做了了上述调整,Ambari项目也不至于退役。
3.2、apache Sentry 正式退休(https://attic.apache.org/projects/sentry.html)
Apache Sentry是Cloudera公司发布的一个Hadoop开源组件,2016年3月从Incubator毕业,成为Apache顶级项目。2020年2月退休。在上一节讲过,用 ranger 替代(CDP中内置的就是 ranger 而不再是 sentry)
3.3、apache Sqoop 正式退休 (https://attic.apache.org/projects/sqoop.html)
Sqoop 在大数据集群 HADOOP 和关系型数据库 RDBMS 之间,提供了高效的大批量数据同步功能(Bulk Data Transfer) ,sqoop 于 2021-06正式退役。可以考虑使用 datax/sparksql/kafka-connect/seatunnel/flink-cdc 等替代;
4.1、Apache Superset - 最活跃
日前,Apache 官方博客发布了2021年度报告,从社区、项目动态、和代码提交情况等方面进行了统计。按提交次数排名的话,Apache Superset 可谓是 2021 年的年度项目,它也是唯一一个提交超过 10000 次的单个项目,并且在 GitHub 上吸引了近 43000 颗星(以及 8400 个 fork)。
参考资料
- https://mp.weixin.qq.com/s/_cFjRP8K8xqENjHZzM8QCA
- https://mp.weixin.qq.com/s/ARy8PyeEhwpKOkXtuiUILw
- https://mp.weixin.qq.com/s/y5RACABQK8x4dwqeR5bKHQ
- https://cloud.tencent.com/developer/news/888847
- https://www.infoq.cn/article/8IpROq9a7qxUSlmpURFo
- https://mp.weixin.qq.com/s/_cFjRP8K8xqENjHZzM8QCA
2021~2022Apache大数据相关项目盘点的更多相关文章
- 优秀大数据GitHub项目一览
http://blog.csdn.net/yaoxtao/article/details/50540485 优秀大数据GitHub项目一览 VMware CEO Pat Gelsinger曾说: 数据 ...
- 从技术 Leader 的招聘需求看,如何转岗为当前紧缺的大数据相关人才?
前段时间,跟候选人聊天的时候,一个有多年工作经验的资深 iOS 工程师告诉我,他最近正在学习 Machine Learning 相关的知识.他觉得,对于程序员来说,技术进步大大超过世人的想象,如果你不 ...
- Build2016上值得一看的大数据相关Session
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:Build2016开完很久了,现在才来回顾下,就说说那些和大数据相关的Session, ...
- 各类人工智能&大数据相关比赛
比赛技巧:https://zhuanlan.zhihu.com/p/28084438 文章来源: https://www.imooc.com/article/72863 随着近几年人工智能和大数据的快 ...
- 大数据相关的面试题(摘自网络)hbase,kafka,spark
1.讲讲你做的过的项目, 项目里有哪些难点重点呢? kafkaDirect ES /hive kafka producer 难点值得一提的有两点: 1.rdd中用到外部变量的时候如何处 ...
- hadoop、spark/storm等大数据相关视频资料汇总下载
小弟不才,工作中也用到了大数据的相关东西.一開始接触的时候,是通过买来的教学视频入的门.这两天整理了一下自己的视频资料.供各位进行下载. 文档截图:
- 云计算&大数据相关知识
1.极客学院云计算&大数据总链接:http://wiki.jikexueyuan.com/list/cloud/ 一.NSQ相关参考资料: 1.极客学院NSQ指南:http://wiki.ji ...
- 大数据小项目之电视收视率企业项目09--hive环境搭建
Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据.它架构在Hadoop之上,总归为大数据,并使得查询和分析方便.并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务 ...
- java面试(2)--大数据相关
第一部分.十道海量数据处理面试题 1.海量日志数据,提取出某日访问百度次数最多的那个IP. 首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中.注意到IP是32位的,最多有个2^ ...
- 大数据小项目之电视收视率企业项目08--》MapReduce编写之Wordcount
编程规范 (1)用户编写的程序分成三个部分:Mapper,Reducer,Driver(提交运行mr程序的客户端) (2)Mapper的输入数据是KV对的形式(KV的类型可自定义) (3)Mapper ...
随机推荐
- Oracle限制某个帐号只能在特定机器上访问数据库
CREATE OR REPLACE TRIGGER logon_ip_control AFTER logon ON user_test.schema BEGIN IF USER IN ('user_t ...
- Vue子组件向父组件传值(this.$emit()方法)
子组件使用this.$emit()向父组件传值 首先必须在父组件中引用子组件,然后实现传值 第一步在父组件中引入子组件 import UnitByPurchaseAddOrUpdate from '@ ...
- SpringCloud微服务集成Dubbo
1.Dubbo介绍 Apache Dubbo 是一款易用.高性能的 WEB 和 RPC 框架,同时为构建企业级微服务提供服务发现.流量治理.可观测.认证鉴权等能力.工具与最佳实践.用于解决微服务架构下 ...
- 第一次画pcb学到的知识
第一次画pcb学到的知识 1. Typec (6针) 其中的CC1.CC2引脚为快充协议的引脚,用不到的时候串个5.1K的电阻接地s 2. AMS117降压电路 AMS1117芯片的输入电压都要一个1 ...
- C++设计模式 - 原型模式(Prototype)
对象创建模式 通过"对象创建" 模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定.它是接口抽象之后的第一步工作. 典型模式 Fac ...
- 测试开发之系统篇-Docker常用操作
Docker容器(Container)的运行基于镜像(image),您可以在Docker Hub上检索,或通过Dockerfile文件自己构建镜像. 首先拉取MySQL官方镜像的最新版(latest) ...
- 2020.02.05【NOIP提高组】模拟A 组
[toc] CF293B Distinct Paths=JZOJ 4012 CF261E Maxim and Calculator=JZOJ 4010 JZOJ 2292 PPMM 题目 满足队列出入 ...
- 一种基于DeltaE(CIE 1976)的找色算法Cuda实现
书接上文 一种基于DeltaE(CIE 1976)的找色算法 Delta E 是评估色彩准确度的重要测量指标.摄影师.影片编辑和平面设计师等创意专业人士都应重视这项标准,因其是选择专业级显示器的重要考 ...
- C# 继承、多态性、抽象和接口详解:从入门到精通
C# 继承 在 C# 中,可以将字段和方法从一个类继承到另一个类.我们将"继承概念"分为两类: 派生类(子类) - 从另一个类继承的类 基类(父类) - 被继承的类 要从一个类继承 ...
- Sample Post
HTML Elements Below is just about everything you'll need to style in the blog. Heading 1 Heading 2 H ...