{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

spark真的要取代hadoop了么,还有阿里的flink未来会是一种趋势么?

villainhrvillainhr 回答0 收藏1
收藏问题

2条回答

luoyibu

luoyibu

回答于2022-06-28 15:30

大家好,我是LakeShen

作为一个软件开发工程师,我从事的方向主要是大数据方向,结合我的工作经验,我个人认为,Spark不会完全取代Hadoop,Hadoop还有很多其他方面的大数据组件,这些组件是Spark所没有的,同时,Flink在未来的发展,会作为实时计算方面的一种发展趋势。下面来说一下我个人的看法:

Flink未来的发展

首先,Flink是什么?Flink一种流式处理的实时计算引擎,它消费的数据可以来自Kafka、MetaQ等消息中间件,旨在降低数据计算的延时,使得我们可以实时监控我们业务相关的指标信息。Flink 目前作为国内最火的一款实时计算引擎,国内有很多互联网大公司都使用Flink进行实时计算,ucloud的Blink(Flink ucloud内部版本)、ucloud、今日头条、美团等。Flink 天然的状态管理,使得其能够应用于公司的各种有状态的实时计算。下面来看一下Flink Github上面的信息:

从上图可以看到,关注Flink的人数达到了9929位人数,同时,每天都有很多用户关注Flink。根据Apache 软件基金会2019年的财报,Flink持续活跃,其社区邮件列表在所有开源项目活跃度第一。这也意味着,Flink 目前在实时计算方面非常的火热。在加上ucloud在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未来在实时计算方面肯定是一种发展趋势,在加上国内ucloud的大力推广和运营,我相信Flink以后发展会越来越好。

我是LakeShen,如果你觉得我的见解对你有帮助的话,其可以点个赞或者关注我吧,我会一直持续分享我在科技方面的见解,感谢。

评论0 赞同0
  •  加载中...
NotFound

NotFound

回答于2022-06-28 15:30

首先,想说一件事情是,hadoop绝对不会退出舞台。目前有些言论或hadoop已死,因为已经有很多代替它的框架出现。

我想说这样的说法是不了解hadoop的组成。hadoop核心之一HDFS,这个东西目前还没有很好的技术可以取代,虽然现在也有一些技术实现,但要取代还是不可能的,不过未来应该会被取代掉,技术是不断发展的。

能够大规模分布式的存储文件,目前hdfs依然是最好的方式。我想那些说hadoop大势已去的人,更多的应该是指MR吧。

MapReduce的确是个效率低下的东西,但是我要强调的是,MR是元老,即便现在没人会去手写MR去跑任务,但我们不能不尊重MR带给我们的思想。而且,现在hive依然是跑的MR任务,也没有完全被淘汰。

那么说起Spark,的确,SparkSql可以跑离线,SparkStreaming可以跑实时,更有structureStreaming的出现让人眼前一亮。但是我要说,Spark是基于内存基础的,如果你对集群内存吃紧,有很多部门或模块共用集群跑任务,那么你还是老老实实的跑MR吧,因为Spark没内存是跑步起来的。

至于Flink,恩,这个东西很强大,但是它的强大是和Spark做比较的,而且强大的是其架构上的设计,处理流式数据的思想。而且Flink也还在发展期,目标是SQL化。所以现在越来越多开发者选择用spark,flink去代替MR做计算处理。但我还是那句话,集群内存要充足。

所以综上,hadoop的分布式文件系统hdfs是没有被取代的,依然离不开,而计算框架MR应该会慢慢退出历史舞台,但其思想和地位无法撼动。不过我相信未来在大数据处理上会有更优秀的技术出现,也会更加的便捷。

评论0 赞同0
  •  加载中...

相关问题

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<