《Apache Flink异军突起受欢迎!》要点:
本文介绍了Apache Flink异军突起受欢迎!,希望对您有用。如果有疑问,可以联系我们。
欢迎参与《Apache Flink异军突起受欢迎!》讨论,分享您的想法,维易PHP学院为您提供专业教程。
大数据产业兴盛期,说到大数据分析引擎,不少人第一时间会想起Spark、Impala等,然而,作为Apache顶级项目的Flink也是不少企业的选择.它到底有什么优势呢?和Spark相比拟,它有什么更可取之处呢?且听大圣众包威客平台一一道来.
一、宝剑露锋芒——Apache Flink
作为Apache的顶级项目,Flink固然集众多优点于一身,包含快速、可靠可扩展、完全兼容Hadoop、使用简便、表现卓越.
1.快速
快,是Flink的主要特点.利用基于内存的数据流,并将迭代处置算法深度集成到系统的运行时中,这样,Flink使得系统能够以极快的速度处置数据密集型和迭代任务.
2.可靠、可扩展
得益于Flink包括自己的内存管理组件、序列化框架和类型推理引擎,所以,即使服务器内存被耗尽,Flink也能够很好地运行.
3.完全兼容Hadoop
为什么开发者无需做任何修改,就能利用Flink运行历史遗留的MapReduce操作?这是因为Flink支持所有Hadoop的所有输入/输出格式和数据类型.另外,Flink包含基于Java和Scala的用于批量和基于流数据分析的API、优化器和具有自定义内存管理功能的分布式运行时等,这也是它能够完全兼容Hadoop的原因之一.
4.易用
让人感到惊喜的是,在无需进行任何配置的情况下,Flink内置的优化器就能够以最高效的方式在各种环境中执行程序.只必要三个命令,Flink就可以运行在Hadoop的新MapReduce框架Yarn上.
5.表示卓越
作为一款优秀的大数据分析引擎,Flink能够利用Java或者Scala语言编写出漂亮、类型平安和可为核心的代码,并能够在集群上运行所写程序.这样,使得开发者可以在无需额外处理的情况下使用Java和Scala数据类型.
一言以蔽之,ApacheFlink具有分布式MapReduce一类平台的高效性、灵活性和扩展性,以及并行数据库查询优化方案,同时,它还支持批量和基于流的数据分析,并且提供了基于Java和Scala的API.总的来说,Flink是一个高效的、分布式的、基于Java实现的通用大数据分析引擎.
二、双锋互切磋——Apache Spark与Apache Flink
同样作为流处理引擎,尽管ApacheSpark在大数据处理运用中已经十分著名,然而,没有一款工具能够处理所有问题.在一些特殊的情况下,ApacheFlink可能很好地弥补了ApacheSpark所未能涵盖的地方.那么,应该选哪一款作为企业的大数据分析引擎呢?我们可以通过两者的异同比拟,做出最优选择.
相同之处:
1.两者都能提供恰好一次的保证,即每条记录都仅处置一次;
2.与其他处理系统(好比Storm)相比,它们都能提供一个非常高的吞吐量;
3.两者都能够提供自动内存管理;
4.它们的容错开销都非常低.
分歧之处:
事实上,ApacheSpark和ApacheFlink的主要差别,就在于计算模型不同.所以,对于选择ApacheSpark,还是ApacheFlink的问题上,实际上就酿成了计算模型的选择.
要了解ApacheSpark与ApacheFlink的相异之处,首先要对如下三种计算模型有一个初步的理解:
批处置——基本上处置静态数据,一次读入大量数据进行处置并生成输出.
微批处理——结合了批处理和持续流操作符,将输入分成多个微批次进行处理,从根本上讲,微批处理是一个“收集然后处理”的计算模型.
持续流操作符——在数据到达时进行处理,没有任何数据收集或处理延迟.
实际中,Spark采用的是微批处理模型,而Flink采用的是基于操作符的连续流模型.随着数据处理能力的提高,企业开始认识到,信息的价值在数据产生的时候最高,他们希望在数据产生时处理数据,这就是说需要一个实时处理系统.当需要实时处理时,可以优先选择ApacheFlink.但也不是所有情况都需要实时系统,这时,ApacheSpark则是更优的选择.好比,在电信行业,统计特定用户使用的带宽,微批处理可能是一个更高效的方案.
至于具体应该怎么选,必要企业在延迟、吞吐量和可靠性等多个方面上去进行权衡.
纵使科技日新月异,然而,适合的,才是最好的.
(更多年夜数据与商业智能领域干货、或电子书,可添加个人微信号(dashenghuaer))