“后 Hadoop 时代”,大数据从业者如何应对新技术趋势带来的挑战?
作为开源大数据项目的发端,Hadoop 兴起至今已经超过十五年。在过去这十数年里,开源大数据领域飞速发展,我们见证了多元化技术的兴起和变迁。
为了从代码托管平台汇聚的海量数据里,通过数据处理和可视化的方式,深刻洞察开源大数据技术的过去、现在和未来,并为企业和开发者在开源大数据技术领域的应用、学习、选型和技术研发等方面提供有益参考,开放原子开源基金会、X-Lab 开放实验室、阿里巴巴开源委员会共同发起了「2022 开源大数据热力报告」项目。
报告从 Hadoop 发展的第 10 年,即 2015 年起,收集相关公开数据进行关联分析,研究开源大数据进入新阶段后的技术趋势,以及开源社区的运作模式对技术走向的助推作用。
经过对最活跃的 102 个开源大数据项目进行研究,报告发现:每隔 40 个月,开源项目热力值就会翻一倍,技术完成一轮更新迭代。在过去 8 年里,共发生了 5 次较大规模的技术热力跃迁,多元化、一体化、云原生成为当前开源大数据发展趋势的最显著特征。
开放原子开源基金会副秘书长刘京娟表示,报告希望重点对如下人群有所帮助:
(3)开源大数据项目的运营者或者维护者。他们能够从优秀项目的热力发展趋势中,获取经验和规律,从而用更成熟的方式运营开源项目。
对于大数据从业者们来说,开源大数据项目热力迁徙背后的技术发展逻辑是怎样的?大家应该如何应对新技术趋势带来的挑战?针对这些问题,近日 InfoQ 与阿里巴巴集团副总裁、阿里巴巴开源委员会主席、阿里云计算平台事业部负责人贾扬清,Apache Flink 中文社区发起人、阿里巴巴开源大数据平台负责人王峰(花名莫问)聊了聊。
用户需求多样化推动技术多元化
云原生带来的变化和挑战
云原生趋势下,开源大数据技术栈正处于重构之中。其中数据集成领域的重构相比其他细分领域走得更快一些。
随着云端多样化数据收集需求的爆发,以及下游数据分析逻辑的变化,数据集成从“劳动密集型”ETL 工具演进到灵活高效易用的“数据加工流水线”。传统数据集成工具 Flume、 Camel 处于平稳维护状态, Sqoop 已于 2021 年从 Apache 基金会退役。与云原生结合更紧密的 Airbyte、Flink CDC、 SeaTunnel、 InLong 等项目飞速发展。
在报告的热力趋势中可以看到,云原生数据集成在 2018 年超越了传统数据集成,从 2019 年开始,这一演进历程加速,热力值逐年翻倍。不少新孵化的项目热力值年均复合增长率超过 100%,增长势头强劲。
过去几年,数据源和数据存储逐步迁移到云端,更多元化的计算负载也运行到了云端。云底座实际上改变了开源大数据的很多前提,作为这场变革的亲历者,王峰感触颇深。
十多年前,王峰就参与了基于 Hadoop 做大数据开发的工作,当时他还是比较初级的工程师,大部分工作还基于本地机器,需要考虑的问题包括选择什么机型、多大磁盘、磁盘大还是内存大等。
如今,大数据的底座变成了云上的虚拟机、容器、对象存储、云存储,所有开源项目从一开始就要考虑弹性架构、要考虑如何具备很好的可观测性、要考虑怎么跟 Kubernetes 等云原生生态天然对接,等等,这些问题已经存在于大家的潜意识里,改变了很多开源项目在初始阶段的预期。
同时在云上运行之后,数据架构也会发生变化。比如计算与存储分离已经成为大数据平台的标准架构,是现在大家默认一定要考虑的问题,因此不管是什么大数据组件(Flink、Hive、Presto 等等),在做数据 Shuffle 的时候都要考虑到不能再依赖本机、不能假设会有本地磁盘,因为在云上机器是必定会迁移的。这就需要一个通用的 shuffle 服务来协助完成这项工作,把云上资源模型变化考虑进去做自适应地调度。前不久阿里捐献给 Apache 基金会的开源项目 Celeborn,做的就是帮助计算引擎提升数据 shuffle 性能的工作。
技术层面,云给原有的开源大数据体系带来的挑战不止于此。比如调度基础,以前大家都默认在 Hadoop 上做资源管理和调度,上云之后大家则都拥抱 Kubernetes 生态,基于 Kubernetes 来做编排和调度。但 Kubernetes 作为在线调度服务,调度大规模数据计算任务存在瓶颈,阿里内部本身对 Kubernetes 做了非常多改进。
另外,比如云存储虽然优势多多,但也存在传输带宽、数据 locality 方面的缺陷。一些后起的开源项目如 JuiceFS、Alluxio 等,就是为了解决云存储加速的问题而生,阿里云 EMR 上的大数据存储加速服务 JindoData 也在做这方面的工作。王峰表示,开源大数据体系还在不断进化,仍需要走一段路,才能真正与云原生彻底结合。
大数据从业者如何面向未来发展?
作为技术创新的实验场,云原生带来了更灵活的资源弹性和更低的存储、运维成本,让很多企业可以更大胆地在云上做一些尝试,提升了大家试错、试新的意愿,自然也更有利于创新技术或软件的成功。贾扬清观察到,海外有很多新软件或新引擎会走“先吸引用户、然后把用户转化为客户”的路。在他看来,这将来在国内可能也会成为一个趋势,因为云确实提供了一个很好的资源以及软件分发环境。
不过云只是给了大家一把很好的锤子,如果一个人能力不强,用的时候也可能会砸到自己的脚。比如,由于用户在云上获得资源更加容易,可能就会比较随意地进行数据存储和计算,进而造成浪费。因此从业务角度,云服务商与用户其实是一体的,云服务商在大规模开源数据体系之上,需要根据企业的需求做更多数据治理方面的工作,帮助用户用好云这把锤子,避免资源浪费。贾扬清表示,如何更有效地使用云平台、云资源已经成为企业越来越关注的需求,现在主要是企业级软件在做这方面的工作,将来可能会有更多开源工具出现。
畅享未来的数据工程趋势,贾扬清认为有三个方向是大数据从业者可以重点关注的。首先是云化,即用云来解决系统架构的问题,涵盖了离线实时一体化、大数据 AI 一体化、流批一体化、湖仓一体化四个层面。现在不管是开源项目还是闭源产品其实都在朝着更加一体化的方向发展,Flink 社区新的子项目 TableStore 也是在这个方向上做的一个探索,追根究底是为了在一定程度上降低大数据技术栈的复杂度,未来计算引擎可能也会更多地跟数据治理、数据编排工具结合成为一体化的数据解决方案。
其次是上层数据应用会变得更加简单,从长远来看,对于最终用户,所有的数据都可以使用通用的 SQL 方式进行分析。最后,将来会有更多的生态发展起来,无论是阿里云的 Flink、EMR 还是海外的 Databricks、Snowflake、Bigquery 都还只是工具平台,在这些数据平台之上需要有更多类似于 Saleforce 的企业来做出更丰富的垂直解决方案,最终形成更加繁荣的数据生态,当然前提是数据平台先做好标准化。
王峰同样很看好数据生态未来的发展,尤其对于开源大数据来说,生态更加关键。现在欧美很多数据领域的公司,虽然各有特色,但相互之间也能形成协同,这样大家就会处于一个良性的竞争状态。王峰认为,这有助于推进各厂商的产品走向标准化,能够给用户和客户带来很多好处。从整个应用市场的角度来说,形成标准化之后,各方能够比较低成本地去接入这个数据工程生态,反过来可以一起把整个市场蛋糕做大。
身处快速发展的数据工程领域,大数据从业者如何面向未来发展?将来岗位角色、职责是否会发生变化?
贾扬清认为,系统工程师、数据工程师、数据科学家这些角色未来会继续存在。但云已经解决了很多系统问题,所以越来越多工程师角色会开始往上层业务走。偏系统搭建的底层工作,即系统工程师角色,可能会更多聚集在提供标准化服务的云数据服务商、数据引擎服务商等,其他企业则会更加关注业务本身,把人力更多投入在偏数据科学以及上层业务里,不再需要那么多系统工程师。这是社会分工精细化的必然结果。
对于数据科学家、数据工程师,他们的职责会更多地偏重于利用数据实现业务价值,包括根据业务需求做数据建模、数据治理等工作,不用再像以前一样去解底层系统和运维等问题,因为这些问题已经被系统工程师、被云解得很好了。
PC 端直播预约
建议前往 FFA 2022 大会官网预约直播
https://flink-forward.org.cn/
▼ 关注「Apache Flink」,获取更多技术干货 ▼