草庐IT

大数据计算引擎 EasyMR:拥抱开源,引领技术创新

数栈DTinsight 2023-03-28 原文

身处数字经济时代,随着大数据应用越来越广泛,越来越多的企业和组织开始关注大数据基础平台的建设和运营。在认识到其的重要性之后,如何具体着手搭建或采购大数据基础平台成为下一步需要解决的问题。

在大数据基础平台中,大数据组件是非常重要的一部分,包括数据存储、数据处理、数据分析、数据可视化等。在选择大数据组件时,我们常常在闭源组件和开源组件选择中反复纠结。

本文将从优势、劣势两个维度分析开源组件、闭源组件对大数据基础平台建设的影响,并结合袋鼠云自研的大数据计算引擎 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=szbky

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术qun」,交流最新开源技术信息,qun号码:30537511,项目地址:https://github.com/DTStack

有关大数据计算引擎 EasyMR:拥抱开源,引领技术创新的更多相关文章

  1. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  2. ruby - 在没有 sass 引擎的情况下使用 sass 颜色函数 - 2

    我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re

  3. ruby - Ruby 有 `Pair` 数据类型吗? - 2

    有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳

  4. ruby-on-rails - Rails 中的推荐引擎 - 2

    我想为我的Rails网络应用程序提供推荐功能。特别是,我想向新注册的用户推荐他可能想要关注的其他用户。Rails中是否有用于此目的的引擎/gem?如果没有,我应该从哪里开始构建它?谢谢。 最佳答案 有Coletivogemhttps://github.com/diogenes/coletivo我试了一下。在MySQL上运行。Neo4jhttp://neo4j.org真的很容易实现一个“跟随谁”。事实上,大多数展示其能力的样本都涉及“跟随谁”。快速提示-只有在JRuby上运行时,Neo4j.rb才会很酷。如果不是-使用Neograph

  5. ruby - 我如何添加二进制数据来遏制 POST - 2

    我正在尝试使用Curbgem执行以下POST以解析云curl-XPOST\-H"X-Parse-Application-Id:PARSE_APP_ID"\-H"X-Parse-REST-API-Key:PARSE_API_KEY"\-H"Content-Type:image/jpeg"\--data-binary'@myPicture.jpg'\https://api.parse.com/1/files/pic.jpg用这个:curl=Curl::Easy.new("https://api.parse.com/1/files/lion.jpg")curl.multipart_form_

  6. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  7. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

  8. UE4 源码阅读:从引擎启动到Receive Begin Play - 2

    一、引擎主循环UE版本:4.27一、引擎主循环的位置:Launch.cpp:GuardedMain函数二、、GuardedMain函数执行逻辑:1、EnginePreInit:加载大多数模块int32ErrorLevel=EnginePreInit(CmdLine);PreInit模块加载顺序:模块加载过程:(1)注册模块中定义的UObject,同时为每个类构造一个类默认对象(CDO,记录类的默认状态,作为模板用于子类实例创建)(2)调用模块的StartUpModule方法2、FEngineLoop::Init()1、检查Engine的配置文件找出使用了哪一个GameEngine类(UGame

  9. FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D) - 2

    本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01  客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02  数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit

  10. 使用canal同步MySQL数据到ES - 2

    文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co

随机推荐