大家好,我是LakeShen
作为一个软件开发工程师,我从事的方向主要是大数据方向,结合我的工作经验,我个人认为,Spark不会完全取代Hadoop,Hadoop还有很多其他方面的大数据组件,这些组件是Spark所没有的,同时,Flink在未来的发展,会作为实时计算方面的一种发展趋势。下面来说一下我个人的看法:
Flink未来的发展
首先,Flink是什么?Flink一种流式处理的实时计算引擎,它消费的数据可以来自Kafka、MetaQ等消息中间件,旨在降低数据计算的延时,使得我们可以实时监控我们业务相关的指标信息。Flink 目前作为国内最火的一款实时计算引擎,国内有很多互联网大公司都使用Flink进行实时计算,阿里的Blink(Flink 阿里内部版本)、腾讯、今日头条、美团等。Flink 天然的状态管理,使得其能够应用于公司的各种有状态的实时计算。下面来看一下Flink Github上面的信息:
从上图可以看到,关注Flink的人数达到了9929位人数,同时,每天都有很多用户关注Flink。根据Apache 软件基金会2019年的财报,Flink持续活跃,其社区邮件列表在所有开源项目活跃度第一。这也意味着,Flink 目前在实时计算方面非常的火热。在加上阿里在Flink 1.9版本开源了很多 Flink SQL方面的特性,我相信,在未来,Flink在实时计算方面,是一种发展趋势。
Spark相对于Hadoop的优势
Spark本质也是一种大数据计算框架,它相对于Hadoop最重要的优势,我个人认为是Spark能够将中间计算的结果放在内存中,而Hadoop的中间结果只能放在磁盘上。Spark充分的利用的计算机内存的优势,在数据量非常大的情况下,访问计算机内存的速度肯定要比访问磁盘快的多。一个离线任务,使用Spark几分钟就能跑完,而使用Hadoop可能需要几十分钟。时间上面的延迟,业务同学是肯定不会容忍的。
同时,用户在开发Spark任务时,由于Spark 代码开发的便利性,用户几行代码就可以开发出Spark任务,但是Hadoop任务你需要编写Mapper类、Reducer类。这极大的增加了开发同学开发任务的复杂度。所以,我个人认为,在离线计算方面,Spark在未来必然会取代Hadoop。
Spark相对于Hadoop的不足
Hadoop主要由三方面构成,MR计算模型、Yarn资源管理框架、HDFS分布式文件存储。虽然Hadoop在离线计算方面相对于Spark较慢,但是其在资源管理和分布式文件存储方面做得非常完善,很多公司不会为了计算快而完全放弃Hadoop,Spark只是一款大数据计算框架,它没有自己的资源管理框架和存储。Spark的资源管理使用的是Hadoop Yarn,底层的文件存储,使用的Hadoop HDFS。Spark的优势只是其比Hadoop在离线计算方面速度快,但在其他方面,比如资源管理等,根本没有任何优势。
总结所以,我个人认为,未来在离线计算方面,Spark必然会代替Hadoop作为很多大数据公司的首选。但是由于Hadoop其底层的资源管理框架Yarn和文件存储HDFS已经非常完善,所以互联网公司还会使用Hadoop,但会使用Spark来进行离线数据计算。同时,Flink未来在实时计算方面肯定是一种发展趋势,在加上国内阿里的大力推广和运营,我相信Flink以后发展会越来越好。
我是LakeShen,如果你觉得我的见解对你有帮助的话,其可以点个赞或者关注我吧,我会一直持续分享我在科技方面的见解,感谢。