大数据计算引擎的发展
近年来随着大数据的发展,涌现出了一大批开源的大数据处理引擎,比如hadoop, storm, spark等。国外的一些社区将这些大数据计算引擎分为4代:
第一代以hadoop承载的mapreduce为标志,开启了大数据处理的先河。mapreduce将处理过程分为map和reduce两个阶段,对于复杂应用,需要拆分为多个mapreduce的job, 并有应用层去管理各个job的依赖关系。
第二代以支持DAG框架为标志,也是以批处理为主,具体如Tez,以及更上层的Oozie。
第三代以spark为代表,开启了内存计算的时代,支持job内部DAG管理,同时支持流处理、批处理,并提供SQL高层API支持。
第四代就该系列要介绍的Flink,主要是由于Flink对流计算的支持。
Flink于2014年12月成为Apache软件基金会的顶级项目,2015年9月发布第一个稳定版本0.9,到目前为止已经发布到1.12版本,社区非常活跃。
全球有越来越多的公司在使用Flink, 国内主流互联网公司都在大规模使用Flink作为企业分布式大数据处理引擎。Flink之所以如此受到青睐,除了其提供高吞吐、低延迟和Exactly-once一致性语义支持外,更重要的是它能以流数据的处理方式来处理批数据,可以真正意义上实现批流处理的统一。正是由于这些特性,使Flink逐渐成为主流的大数据处理框架,并将在不久的将来成为下一代大数据处理的标准。
Flink架构
Flink是一个分布式系统,它的运行涉及到多个进程,这些进程会分布到集群的多台不同机器上。分布式系统就需要面对这样的几个问题:分配和管理集群计算资源,进程协调,持久且高可用的数据存储及故障恢复等。
Flink并不依靠自身去实现这些功能,而是在已有集群基础设施和服务之上专注于它的核心功能--分布式流数据处理。它和很多集群管理器(比如:YARN、Mesosd等)能很好的集成,也可以独立运行。它不提供分布式持久化存储,而是使用现有的分布式文件系统(HDFS)和对象存储(S3)。它使用ZooKeeper来完成可用性配置中的领导选举工作。

Flink是一个分布式流数据处理引擎,以其高吞吐、低延迟和Exactly-once一致性语义受到青睐。它支持批流处理的统一,与YARN等集群管理器集成良好,使用ZooKeeper进行领导选举。Flink运行包含JobManager和TaskManager两个主要进程,任务调度和资源管理通过slot机制进行。
最低0.47元/天 解锁文章
6832

被折叠的 条评论
为什么被折叠?



