Flink Hadoop分布式数据处理

2017/12/21 Flink

Flink Hadoop分布式数据处理

Apache Hadoop已经成为数据处理和分析的核心组件了,Hadoop 1.X时代,分布式数据处理是通过MapReduce框架完成的。Hadoop 2.x 分布式处理是通过YARN框架来处理分布式任务的。Yarn框架已经成为Hadoop的核心部分之一,处理了Job Execution,Distribution,resource allocation,scheduling和其它任务。Yarn提供了资源租赁,可扩展和高可用性。 YARN最出色的地方在于它不仅仅是一个框架,更接近一个操作系统,开发者可以开发和执行YARN JOB,YARN对分布式程序开发提供了抽象,简化了分布式程序的开发过程。Yarn基于HDFS并且可以从AWS S3 上读取数据。YARN程序框架构建得很好使其可以容纳各种分布式引擎。最近有很多新的分布式引擎如Spark,Flink等等。这些引擎都支持运行在Yarn集群上,使得人们能够在YARN集群上引入新的引擎。意味着可以同时在YARN集群上运行FLINK和SPARK。

Hadoop 简述

Hadoop是分布式的数据处理框架,包括两个重要部分,HDFS和YARN。下图展示了Hadoop的架构: 图一

HDFS

HDFS是一个高可用性的分布式的文件系统,用来存储数据的,现在已经成为很多核心组件的基础。HDFS是主从构架的,常驻进程有NameNode,secondary NameNode和DataNode。 在HDFS中,NameNode存储了在DataNode中的压缩存储的数据的元信息。为了实现高可用性 Data blocks默认会有三份数据重复。Secondary NameNode 是用来对NameNode上元数据的备份。

YARN

在YARN之前,MR框架是运行在HDFS上的数据处理框架。随着时间,人们发现task trackers 有很大的局限性,所以就开发了YARN。YARN有全局的资源管理器和任务调试器,以及每个应用都独立的application master。资源管理器工作在主节点上,每个Job都有node manager ,负责管理窗口,统计资源使用情况以及状态监控。 resource manager有两个重要的组成部分,Scheduler 和 application manager。Scheduler 负责任务的调度,当新的任务提交的时候协调任务的容器,同时负责在必要的时候处理application master的重启。 YARN提供了很多API来用来构建APP,Spark和Flink就是两个使用的典型例子。

Show Disqus Comments

Search

    Table of Contents