大天使之剑
作者大天使之剑·2019-05-31 14:57
售前技术支持·杭州才云科技

大数据系列文章之Hadoop概述

字数 1249阅读 913评论 0赞 2

Hadoop 概述

从《Hadoop前世今生》中我们知道,Hadoop是从Nutch搜索引擎项目里拆分出来了两个通用性的模块:HDFS和MapReduce,他们主要提供的功能分别是分布式存储和分布式计算。

Hadoop Common

但是问题来了,分布式存储和分布式计算都需要网络通信,所以Hadoop第三个模块:Hadoop Common就应运而生了,他所做的事情各个进程之间的网络通信,主要为HDFS和MapReduce提供基础设施服务,并在此之上封装了RPC框架。

olpuxxje6tm3

olpuxxje6tm3

从Hadoop 0.x 至 Hadoop 1.x 版本中基本都由Hadoop Common、HDFS、MapReduce构成的,下图展示了在最初两个大版本中Hadoop中各组件的结构。

Hadoop YARN

Hadoop YARN 这个模块是有什么作用呢?

Hadoop YARN 是如何诞生的呢?只要是由以下几个需求推波助澜才诞生的。

Hive

我们都知道MapReduce是提供分布式计算的,而这个框架产生之后,Hadoop的使用场景非常广泛,整个大数据时代对分布式计算的要求也非常高,但是写MapReduce的作业(也就是Job)的使用门槛非常高,其中需要写很多处理逻辑,有一些程序员不会写Job,只会写一些SQL语句去代替Job,所以产生了Hive框架,Hive只需要程序员写一些SQL就可以自动转换成MapReduce的作业,进而简化处理逻辑,降低使用门槛。

Storm 实时计算以及交互式计算

传统的MapReduce处理的都是批量的离线数据,处理速度非常慢。随着整个大数据时代的发展,又产生了一些业务场景需要实时计算以及交互式计算,处理速度的要求也相应提升了很多,所以在新的业务场景以及需求下,促生了两个新的分布式计算框架:storm。

Spark 基于内存的分布式计算框架

通过使用内存来进行批量计算、实时计算以及交互式计算,大大提高处理速度

Flink 基于内存的分布式计算框架

4s5oevlarcqn

4s5oevlarcqn

Spark 和 Flink 的区别

这些新的分布式计算框架都需要申请CPU、内存、网路等计算资源,任务处理完成之后这些计算资源也要自动释放掉,这些通用功能(资源的申请、释放、任务的管理)就被抽离了出来,所以 YARN 就诞生了。

8y7tz9w9bms3

8y7tz9w9bms3

从Hadoop 2 版本开始就新加入了 YARN 来完成任务调度与资源管理的工作,当然我们可以把 YARN 理解为 大数据里面的操作系统,而上面的应用就是各种分布式计算框架,而 HDFS 和 YARN 需要进行一些网络通信,则需要调用 Hadoop Common 进行处理(基于RPC)。

总而言之 Hadoop 主要包括以下四个模块

Hadoop Common:为其他Hadoop模块提供基础设施

Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统

Hadoop MapReduce:一个分布式的离线并行计算框架

Hadoop YARN:任务调度与资源管理

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广