大数据计算引擎 EasyMR:拥抱开源,引领技术创新
身处数字经济时代,随着大数据应用越来越广泛,越来越多的企业和组织开始关注大数据基础平台的建设和运营。在认识到其的重要性之后,如何具体着手搭建或采购大数据基础平台成为下一步需要解决的问题。
在大数据基础平台中,大数据组件是非常重要的一部分,包括数据存储、数据处理、数据分析、数据可视化等。在选择大数据组件时,我们常常在闭源组件和开源组件选择中反复纠结。
本文将从优势、劣势两个维度分析开源组件、闭源组件对大数据基础平台建设的影响,并结合袋鼠云自研的大数据计算引擎 EasyMR 的实践经历进行分享。
开源组件
在大数据领域,开源组件已经成为了构建大数据平台的重要基石。例如 Hadoop、Spark、Hive、HBase、Kafka、Storm、Flink 等开源软件已经成为了大数据处理和分析的主要工具。
这些开源组件不仅提供了高效、可扩展、可靠的大数据处理和存储能力,而且还促进了生态系统的发展,形成了庞大的开发社区和丰富的第三方工具及应用程序。
优势
● 免费
开源组件一般都是免费的,其源代码是公开的,任何人都可以下载、使用、修改和分发,这将极大降低企业的开发和建设成本。
● 灵活性
由于源代码是公开的,企业可以对其进行自定义修改,以适应自身业务需求,增强了灵活性。
● 可扩展性
开源组件通常具有良好的扩展性,可以很容易地集成和升级到其他开源组件。
● 社区支持
开源组件一般拥有庞大的社区,社区成员均可以贡献代码,提供解决方案和支持。这意味着在使用过程中遇到问题,可以得到快速的帮助和解决方案。
开源软件的开发和维护通常由广泛的社区贡献提供,从而形成共同的技术标准和最佳实践,这有助于提高软件质量和安全性,并为企业提供更好的互操作性和可移植性。
劣势
● 依赖社区
开源组件的发展取决于社区的贡献,如果社区贡献较少或者停滞不前,开源组件可能会面临更新缓慢或停止维护的问题。
● 安全性
开源组件的源代码是公开的,这使得黑客和恶意用户可以更轻松地发现和利用其中的漏洞,企业在使用开源组件时,需要进行必要的安全检查和漏洞修复。
商业闭源组件
例如 MapR 公司的 MapR-DB、MapR-ES,IBM 公司的 IBM Streams,Cloudera 公司的 Cloudera Manager、Cloudera Navigator、Cloudera Data Science Workbench 等都是比较主流的大数据闭源组件。
优势
● 技术支持
闭源组件通常由厂商提供技术支持,可以为企业提供更为专业、快速的支持,保障企业的业务稳定性。
● 安全性
商业闭源组件的源代码不公开,使得黑客和恶意用户难以发现和利用其中的漏洞,企业在使用闭源组件时,可以减少安全方面的担忧。
● 定制性
商业闭源组件可以提供定制化的服务,以满足企业的个性化需求。
劣势
● 依赖厂商
商业闭源组件的维护和发展需要依赖厂商的支持,其更新迭代速度比较依赖企业的研发投入,如果厂商出现问题或者停止支持,企业可能需要更换整个组件。
● 价格高昂
商业闭源组件通常需要购买许可证或者按使用量收费,这会极大增加企业的成本。
● 数据生产效率低
商业闭源组件通常会对使用者的自由度和可控性产生限制,如禁止对源代码进行修改等要求。
开源 or 闭源?
开源组件 or 闭源组件,企业究竟应该如何选择?
对比来看,对于需要灵活性和可定制性较高的企业来说,开源组件更为适合;而对于更为注重技术支持和安全性的企业来说,商业闭源组件则更具有优势。
开源组件和商业闭源组件各有优缺点,注定了它们拥有各自的市场需求。但基于 DB-Engines 全球数据管理系统排名来看,开源流行度正在逐年上升,2021年1月开源产品首次超过商业数据库。
开源软件可以降低企业的成本,提高软件产品的通用性,同时促进技术创新和生态系统的发展。
开源软件相比闭源软件的优势主要有两点,一是众人拾材火焰高,通过开源社区的沟通交流,能够更快提高代码质量;二是开源大大提高了软件的推广效率。
可以说,大数据基础平台组件开源,是当前和未来发展的趋势。
EasyMR 的实践之路
袋鼠云大数据计算引擎 EasyMR,作为袋鼠云自研的大数据基础平台,其大数据组件100%基于开源 Hadoop,完全兼容Apache开源生态,与开源社区同步迭代,时刻保持技术的领先性。
在 CDH、HDP 社区版不再更新,国产化信创政策大背景下,袋鼠云支持 CDH/HDP 平滑迁移 EasyMR,助力企业快速实现国产化大数据基础平台的搭建与迁移,真正实现对业务侧不造成任何影响。
袋鼠云作为国内领先的数字化基础软件与应用服务商,十分重视强化产品的基础能力和技术能力,在开源技术的基础上,EasyMR 对 Spark、Flink、Trino、Iceberg 等多个大数据核心组件进行了功能及性能增强。具体优化见下图:
仅在2022年袋鼠云技术同学就完成了上百次的 commit,为 Hadoop 生态的技术发展贡献了属于袋鼠云的力量。
赠人玫瑰手有余香,回馈社区的同时袋鼠云实现了对整个 Hadoop 体系核心代码的完全自主掌握,对于 EasyMR 大数据平台迁移、大数据组件维保、客户培训做到了100%自主可控。
国际环境严峻复杂,袋鼠云深知只有实现关键技术的自主化、国产化,才能真正实现技术创新,攻克“卡脖子”难题。
拥抱开源不止于此
ChunJun 作为袋鼠云重磅打造的批流一体的数据集成大数据开源项目,在袋鼠云及众多开源技术爱好者的协作努力下,目前已进行了5200+commit,拥有3600+star,逐步成为主流的数据集成框架。
今年,EasyMR 将集成 ChunJun 项目,为用户带来更加稳定、高效、易用的批流一体的数据集成解决方案。
基于 EasyMR 的运维管理平台 EasyManager,袋鼠云成功开源一站式全自动化全生命周期运维管家 ChengYing。从开放式统一监控,到定义标准化部署能力,而后引入 Prometheus/Grafana/ 自研 dt-alert 组件,完成统一监控2.0的功能优化,再到多集群管理,帮助企业快速搭建自己的运维管理平台。
EasyMR 的最新版运维管理平台 EasyManager 中的前端组件及样式是基于袋鼠云开源项目 ant-design 的 React UI 组件库、样式库进行打造。袋鼠云 dt- React 组件为使用者提供更丰富的组件库,可以更好的管理组件,减少代码冗余提高前端开发。具体内容将在之后的文章中进行详解。
袋鼠云秉承着开源共享的理念,受益开源的同时积极拥抱世界、拥抱开源,期待与更多开源爱好者一起共建优秀开源产品。
同时,袋鼠云始终坚持自主研发和国产化路线,在技术创新上不遗余力,为企业IT高效、平稳运行保驾护航。
《数据治理行业实践白皮书》下载地址:https://fs80.cn/380a4b
想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szkyzg
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术qun」,交流最新开源技术信息,qun号码:30537511,项目地址:https://github.com/DTStack

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
浅谈iceberg的存储文件
这是我的第100篇原创文章 【前言】 上一篇文章介绍了如何通过java api对iceberg进行操作。这次我们来聊聊iceberg里的存储文件。 iceberg中的持久化存储的文件可以简单的分为数据文件和元数据文件。数据文件就是存储数据记录的文件,而元数据文件又可以分为元数据描述文件、清单列表文件(manifest list),或者根据文件名又可以称为快照文件、以及清单文件(manifest file)。三类文件通过层级关系相互关联起来。下面就分别详细介绍下文件的具体内容与格式。 【数据文件】 通常在表存储目录的data子目录下,存放的是实际数据记录的文件,文件的格式在建表时指定,默认为parquet。当然也可以指定为orc、textfile等支持的类型。 另外,在有定义分区字段的表中,数据写入时会按照分区字段的值依次创建子目录,最终的数据文件则存放在这些子目录中。 注:对于api的操作,可以自定义数据的存储路径。 【元数据文件】 该目录主要存放记录表的元数据信息的文件,可以分为如下几类: 1.$VersionID-$UUID$Extension 该文件记录表的元数据信息。在创建表的...
- 下一篇
你可能不那么知道的Tomcat生命周期管理 | 博学谷狂野架构师
Tomcat生命周期管理 各种组件如何统一管理 Tomcat的架构设计是清晰的、模块化、它拥有很多组件,加入在启动Tomcat时一个一个组件启动,很容易遗漏组件,同时还会对后面的动态组件拓展带来麻烦。如果采用我们传统的方式的话,组件在启动过程中如果发生异常,会很难管理,比如你的下一个组件调用了start方法,但是如果它的上级组件还没有start甚至还没有init的话,Tomcat的启动会非常难管理,因此,Tomcat的设计者提出一个解决方案:用Lifecycle管理启动,停止、关闭。 生命周期统一接口 Tomcat内部架构中各个核心组件有包含与被包含关系,例如:Server包含了Service.Service又包含了Container和Connector,这个结构有一点像数据结构中的树,树的根结点没有父节点,其他节点有且仅有一个父节点,每一个父节点有0至多个子节点。所以,我们可以通过父容器启动它的子容器,这样只要启动根容器,就可以把其他所有的容器都启动,从而达到了统一的启动,停止、关闭的效果。 所有所有组件有一个统一的接口——Lifecycle,把所有的启动、停止、关闭、生命周期相关的...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS8编译安装MySQL8.0.19
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker使用Oracle官方镜像安装(12C,18C,19C)