立即注册 登录
About云-梭伦科技 返回首页

pig2的个人空间 https://www.aboutyun.com/?61 [收藏] [复制] [分享] [RSS]

日志

Hadoop vs Spark vs Flink

热度 1已有 1306 次阅读2019-2-22 17:37 |系统分类:Flink

那么现在让我们开始Hadoop与Spark vs Flink之间功能明智的比较之旅:

1. Hadoop vs Spark vs Flink  - 数据处理
Hadoop:Apache Hadoop专为批处理而构建。它需要输入中的大数据集,同时处理它并产生结果。批处理在处理大量数据时非常有效。由于数据的大小和系统的计算能力,输出会产生延迟。
Spark:Apache Spark也是Hadoop Ecosystem的一部分。它也是一个批量处理系统,但它也支持流处理。
Flink:Apache Flink为流和批处理提供单个运行时。

2. Hadoop vs Spark vs Flink  -  Streaming Engine
Hadoop:Map-reduce是面向批处理的处理工具。它需要输入中的大数据集,同时处理它并产生结果。
Spark:Apache Spark Streaming以微批处理数据流。每批包含在批处理期间到达的事件的集合。但对于我们需要处理大量实时数据并实时提供结果的用例来说,这还不够。
Flink:Apache Flink是真正的流媒体引擎。它使用流来处理工作负载:流,SQL,微批和批处理。 Batch是一组有限的流数据。

3. Hadoop vs Spark vs Flink  - 数据流
Hadoop:MapReduce计算数据流没有任何循环。这是一个阶段链。在每个阶段,使用前一阶段的输出向前进展并为下一阶段生成输入。
Spark:虽然机器学习算法是循环数据流,但Spark将其表示为(DAG)直接非循环图。
Flink:Flink采用与其他方法不同的方法。它支持运行时的受控循环依赖图。这有助于以非常有效的方式表示机器学习算法。

4. Hadoop vs Spark vs Flink  - 计算模型
Hadoop:MapReduce采用了面向批处理的模型。批处理正在处理静态数据。它一次需要大量数据,处理它然后写出输出。
Spark:Spark采用微批量生产。微批是一种基本上“收集然后处理”的计算模型。
Flink:Flink采用了连续流,基于算子的流模型。连续流算子在数据到达时处理数据,没有任何延迟收集数据或处理数据。

5. Hadoop vs Spark vs Flink  - 性能
Hadoop:Apache Hadoop仅支持批处理。它不处理流数据,因此与Hadoop和Spark vs Flink相比,性能更慢。
Spark:虽然Apache Spark拥有出色的社区背景,但现在它被认为是最成熟的社区。但它的流处理效率不如Apache Flink,因为它使用微批处理。
Flink:与其他任何数据处理系统相比,Apache Flink的性能非常出色。 Apache Flink使用本机闭环迭代运算符,当我们比较Hadoop与Spark vs Flink时,它们使机器学习和图形处理更快。

6. Hadoop vs Spark vs Flink  - 内存管理
Hadoop:它提供可配置的内存管理。可以动态或静态地执行此操作。
Spark:它提供可配置的内存管理。 Spark 1.6的最新版本已经转向自动化内存管理。
Flink:它提供自动内存管理。它有自己的内存管理系统,与Java的垃圾收集器分开。

7. Hadoop vs Spark vs Flink  - 容错
Hadoop:MapReduce具有高度容错能力。如果Hadoop出现任何故障,则无需从头开始重新启动应用程序。
Spark:Apache Spark Streaming恢复丢失的工作,没有额外的代码或配置,它提供了一次性的语义。阅读有关Spark Fault Tolerance的更多信息。
Flink:Apache Flink遵循的容错机制基于Chandy-Lamport分布式快照。该机制重量轻,可以保持高吞吐率并同时提供强大的一致性保证。

8. Hadoop vs Spark vs Flink  - 可伸缩性
Hadoop:MapReduce具有令人难以置信的可扩展性潜力,并已在数万个节点的生产中使用。
Spark:它具有高度可扩展性,我们可以在群集中不断添加n个节点。一个大的已知sSpark集群有8000个节点。
Flink:Apache Flink也具有高度可扩展性,我们可以在群集中不断添加n个节点大型已知的Flink群集拥有数千个节点。

9. Hadoop vs Spark vs Flink  - 迭代处理
Hadoop:它不支持迭代处理。
Spark:它分批迭代其数据。在Spark中,每个迭代都必须单独调度和执行。
Flink:它使用流式架构迭代数据。可以指示Flink仅处理实际已更改的数据部分,从而显着提高作业的性能。

10. Hadoop vs Spark vs Flink  - 语言支持
Hadoop:它主要支持Java,支持的其他语言有c,c ++,ruby,groovy,Perl,Python。
Spark:它支持Java,Scala,Python和R. Spark在Scala中实现。它提供其他语言的API,如Java,Python和R.
Flink:它支持Java,Scala,Python和R.Flink是用Java、Scala实现的。

11. Hadoop vs Spark vs Flink  - 优化
Hadoop:在MapReduce中,必须手动优化作业。有几种方法可以优化MapReduce作业:正确配置集群,使用组合器,使用LZO压缩,适当调整MapReduce任务的数量,并为数据使用最合适和紧凑的可写类型。
Spark:在Apache Spark中,必须手动优化作业。有一个新的可扩展优化器Catalyst,它基于Scala中的函数编程构造。 Catalyst的可扩展设计有两个目的:第一,易于添加新的优化技术。其次,使外部开发人员能够扩展优化器催化剂。
Flink:Apache Flink附带一个独立于实际编程接口的优化器。 Flink优化器与关系数据库优化器的工作方式类似,但将这些优化应用于Flink程序,而不是SQL查询。

12. Hadoop vs Spark vs Flink  -  Latency
Hadoop:Hadoop的MapReduce框架相对较慢,因为它旨在支持不同的格式,结构和大量数据。这就是为什么Hadoop比Spark和Flink都具有更高的延迟。
Spark:Apache Spark是另一个批处理系统,但它比Hadoop MapReduce快,因为它通过RDD将大部分输入数据缓存在内存中,并将中间数据保存在内存中,最终在完成时或在需要时将数据写入磁盘。
Flink:Apache Flink的数据流运行时只需很少的配置,就可以实现低延迟和高吞吐量。

13. Hadoop vs Spark vs Flink  - 处理速度
Hadoop:MapReduce进程比Spark和Flink慢。这种缓慢的发生只是因为基于MapReduce的执行的性质,它产生了大量的中间数据,节点之间交换了大量数据,从而导致巨大的磁盘IO延迟。此外,它必须在磁盘中保留大量数据以便在阶段之间进行同步,以便它可以支持从故障中恢复作业。此外,MapReduce中没有办法将所有数据子集缓存在内存中。
Spark:Apache Spark比MapReduce处理得更快,因为它通过RDD将大部分输入数据缓存在内存中,并将中间数据保存在内存中,最终在完成时或在需要时将数据写入磁盘。 Spark比MapReduce快100倍,这表明Spark比Hadoop MapReduce更好。
Flink:由于其流式架构,它的处理速度比Spark快。 Flink通过指示仅处理实际已更改的部分数据来提高作业的性能。

14. Hadoop vs Spark vs Flink  - 可视化
Hadoop:在Hadoop中,数据可视化工具是zoomdata,可以直接连接到HDFS以及Impala,Hive,Spark SQL,Presto等SQL-on-Hadoop技术。
Spark:它提供了一个Web界面,用于提交和执行可以显示生成的执行计划的作业。 Flink和Spark都集成到Apache zeppelin它提供数据分析,摄取,以及发现,可视化和协作。
Flink:它还提供用于提交和执行作业的Web界面。生成的执行计划可以在此界面上显示。

15. Hadoop vs Spark vs Flink  - 恢复
Hadoop:MapReduce对系统故障或故障自然具有弹性。它是高度容错的系统。
Spark:Apache Spark RDD允许通过重新计算DAG来恢复故障节点上的分区,同时通过检查点支持与Hadoop更相似的恢复样式,以减少RDD的依赖性。
Flink:它支持将程序存储在数据源和数据接收器中的检查点机制,窗口状态,以及在故障后恢复流式传输作业的用户定义状态。

16. Hadoop vs Spark vs Flink  - 安全
Hadoop:它支持Kerberos身份验证,这有点难以管理。但是,第三方供应商已使组织能够利用Active Directory Kerberos和LDAP进行身份验证。
Spark:Apache Spark的安全性有点稀疏,目前只支持通过共享密钥进行身份验证(密码身份验证)。 Spark可以享受的安全奖励是,如果您在HDFS上运行Spark,它可以使用HDFS ACL和文件级权限。此外,Spark可以在YARN上运行以使用Kerberos身份验证。
Flink:Flink通过Hadoop / Kerberos基础架构提供用户身份验证支持。如果您在YARN上运行Flink,Flink将获取提交程序的用户的Kerberos令牌,并使用该证书在YARN,HDFS和HBase上进行身份验证.Flink即将推出的连接器,流程序可以通过SSL将自身身份验证为流代理。

17. Hadoop vs Spark vs Flink  - 成本
Hadoop:MapReduce通常可以在比一些替代品更便宜的硬件上运行,因为它不会尝试将所有内容存储在内存中。
Spark:由于spark需要大量RAM才能在内存中运行,因此在群集中增加它会逐渐增加其成本。
Flink:Apache Flink还需要大量的RAM才能在内存中运行,因此会逐渐增加成本。

18. Hadoop vs Spark vs Flink  - 兼容性
Hadoop:Apache Hadoop MapReduce和Apache Spark相互兼容,Spark通过JDBC和ODBC共享所有MapReduce对数据源,文件格式和商业智能工具的兼容性。
Spark:Apache Spark和Hadoop彼此兼容。 Spark与Hadoop数据兼容。它可以通过YARN或Spark的独立模式在Hadoop集群中运行,它可以处理HDFS,HBase,Cassandra,Hive和任何Hadoop InputFormat中的数据。
Flink:Apache Flink是一个可扩展的数据分析框架,与Hadoop完全兼容。它提供了一个Hadoop兼容包,用于包装针对Hadoop的MapReduce接口实现的功能,并将它们嵌入到Flink程序中。

19. Hadoop vs Spark vs Flink  - 抽象
Hadoop:在MapReduce中,我们没有任何类型的抽象。
Spark:在Spark中,对于批处理,我们有Spark RDD抽象和DStream用于流式传输,这是内部RDD本身。
Flink:在Flink中,我们为流应用程序提供批量和DataStream的数据集抽象。

20. Hadoop vs Spark vs Flink  - 易于使用
Hadoop:MapReduce开发人员需要手动编写每个操作的代码,这使得它很难工作。
Spark:它很容易编程,因为它有大量的高级操作员。
Flink:它还拥有高级运营商。

21. Hadoop vs Spark vs Flink  - 交互模式
Hadoop:MapReduce没有交互模式。
Spark:Apache Spark有一个交互式shell,可以学习如何充分利用Apache Spark。这是一个用Scala编写的Spark应用程序,它提供了一个具有自动完成功能的命令行环境,您可以在其中运行即席查询并熟悉Spark的功能。
Flink:它带有一个集成的交互式Scala Shell。它可以在本地设置和群集设置中使用。

22. Hadoop vs Spark vs Flink  - 实时分析
Hadoop:MapReduce在实时数据处理方面失败,因为它旨在对大量数据执行批处理。
Spark:它可以处理实时数据,即来自实时事件流的数据,速率为每秒数百万个事件。
Flink:它主要用于实时数据分析虽然它还提供快速批量数据处理。

23. Hadoop vs Spark vs Flink  -  Scheduler
Hadoop:Hadoop中的Scheduler成为可插拔组件。有两个用于多用户工作负载的调度程序:Fair Scheduler和Capacity Scheduler。为了安排复杂的流程,MapReduce需要像Oozie这样的外部作业调度程序。
Spark:由于内存计算,spark会运行自己的流调度程序。
Flink:Flink可以使用YARN Scheduler,但Flink也有自己的Scheduler。

24. Hadoop vs Spark vs Flink  -  SQL支持
Hadoop:它使用户能够使用Apache Hive运行SQL查询。
Spark:它使用户能够使用Spark-SQL运行SQL查询。 Spark提供了像查询语言这样的Hives和像DSL这样的Dataframe来查询结构化数据。
Flink:在Flink中,Table API是一种类似于SQL的表达式语言,它支持DSL之类的数据帧,并且它仍处于测试阶段。有计划添加SQL接口但不确定何时它将落在框架中。

25. Hadoop vs Spark vs Flink  - 缓存
Hadoop:MapReduce无法将数据缓存在内存中以满足未来的需求
Spark:它可以将数据缓存在内存中以进行进一步的迭代,从而提高其性能。
Flink:它可以将数据缓存在内存中以进行进一步的迭代,以提高其性能。

26. Hadoop vs Spark vs Flink  - 硬件要求
Hadoop:MapReduce在Commodity Hardware上运行良好。
Spark:Apache Spark需要中高级硬件。由于Spark缓存数据在内存中进行进一步的迭代,从而提高了性能。
Flink:Apache Flink还需要中高级硬件。 Flink还可以将数据缓存在内存中,以进行进一步的迭代,从而提高其性能。

27. Hadoop vs Spark vs Flink  - 机器学习
Hadoop:它需要像Apache Mahout这样的机器学习工具。
Spark:它有自己的一套机器学习MLlib。在内存缓存和其他实现细节中,它是实现ML算法的强大平台。
Flink:它有FlinkML,它是Flink的机器学习库。它支持运行时的受控循环依赖图。这使得它们与DAG表示相比以非常有效的方式表示ML算法。

28. Hadoop vs Spark vs Flink  - 代码行
Hadoop:Hadoop 2.0有1,20,000行代码。更多的行不会产生更多的错误,执行程序将花费很多时间。
Spark:Apache Spark仅用20000行代码开发。代码行的数量小于Hadoop。因此执行程序所需的时间更少。
Flink:Flink是用scala和java开发的,所以没有。代码行的数量小于Hadoop。因此,执行程序所需的时间也会减少。

29. Hadoop vs Spark vs Flink  - 高可用性
高可用性是指长时间运行的系统或组件。
Hadoop:可在高可用性模式下配置。
Spark:可在高可用性模式下配置。
Flink:可在高可用性模式下配置。

30. Hadoop vs Spark vs Flink  -  Amazon S3连接器
Amazon Simple Storage Service(Amazon S3)是一个对象存储,具有简单的Web服务接口,可以从Web上的任何位置存储和检索任意数量的数据。
Hadoop:为Amazon S3 Connector提供支持。
Spark:为Amazon S3 Connector提供支持。
Flink:为Amazon S3连接器提供支持。

31. Hadoop vs Spark vs Flink  - 部署
Hadoop:在独立模式下,Hadoop配置为以单节点非分布式模式运行。在伪分布式模式下,Hadoop以伪分布式模式运行。因此,不同之处在于每个Hadoop守护程序都以伪分布式模式在单独的Java进程中运行。而在本地模式下,每个Hadoop守护程序都作为单个Java进程运行。在完全分布式模式下,所有守护进程在单独的节点中执行,形成多节点集群。
Spark:它还提供了一个简单的独立部署模式,可以在Mesos或YARN集群管理器上运行。它可以手动启动,通过手动启动主人和工作人员或使用我们提供的启动脚本。也可以在一台机器上运行这些守护进程进行测试。
Flink:它还提供独立部署模式,以便在YARN集群管理器上运行。

32. Hadoop vs Spark vs Flink  -  Back pressure Handing
BackPressure是指缓冲区已满且无法接收更多数据时I / O开关上的数据累积。在数据瓶颈消除或缓冲区为空之前,不再传输数据包。
Hadoop:它通过手动配置处理背压。
Spark:它还通过手动配置处理背压。
Flink:它通过系统架构隐式处理背压。

33. Hadoop vs Spark vs Flink  - 删除重复
Hadoop:Hadoop中没有重复消除。
Spark:Spark还可以精确处理每个记录一次,从而消除重复。
Flink:Apache Flink完全处理每个记录一次,因此消除了重复。流应用程序可以在计算期间维护自定义状态。 Flink的检查点机制确保在出现故障时状态的语义完全一次。

34. Hadoop vs Spark vs Flink  -  窗口标准
需要将数据流分组为许多逻辑流,每个逻辑流可以应用窗口运算符。
Hadoop:它不支持流式传输,因此不需要窗口标准。
Spark:它具有基于时间的窗口标准。
Flink:它具有基于记录或任何自定义用户定义的Flink窗口标准。

35. Hadoop vs Spark vs Flink  -  Apache许可证
Apache许可证2.0版(ALv2)是由Apache Software Foundation(ASF)编写的许可免费软件许可证。 Apache许可证要求保护版权声明和免责声明。
Hadoop:Apache许可证2。
Spark:Apache许可证2。
Flink:Apache许可证2。
因此,这就是Hadoop与Spark vs Flink的前3大数据技术之间的比较。





路过

雷人
1

握手

鲜花

鸡蛋

刚表态过的朋友 (1 人)

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

关闭

推荐上一条 /2 下一条