Hadoop 2------Hadoop原理概述

1.1 The Hadoop Environment

Distributed computation:(分布式计算)The computation tire uses a framework called MapReduce.

Distributed storage:(分布式存储)A distributed filesystem called HDFS,provides storage.

1.2 What is Hadoop?

Hadoop是一个同时提供了分布式存储和分布式计算的平台。(理念来源于谷歌的一篇名为Google File System的论文)

1.Hadoop节点可分为Master node和Slave node。

①YARN master 负责调度YARN应用程序。

②MapReduce master负责组织、调度,节点上的计算部分的工作应该在哪个或那些slave节点上被运行。

③HDFS master负责将数据拆分、存储在各个节点,并持续对数据进行追踪定位。

1.3  Hadoop核心内容

1.3.1 HDFS:

    HDFS是Hadoop的存储部分,它是一个分布式系统。HDFS对高吞吐量进行了优化,并且在大文件(GB以上)的读/写方面的表现特别优秀。为了减少网络间的数据传输,HDFS加大了文件系统的block的大小(默认128M),并做了数据本地优化。

    可扩容性和高适用性也是HDFS的主要特征,它兼备了数据备份和容错机制。当存储数据时,它会默认存储3份(备份数量可调)数据到不同的节点,这样一来,一旦软件或者硬件发生问题,它会自动根据其他节点的备份进行恢复。

Hadoop 2 为HDFS新增了2个重要的特征:联邦Federation和高效率High Availability(HA)

HDFS Federation:NameNode将每个文件和块的引用信息保持在内存中,这就意味着有许多文件的大型集群会成为性能的瓶颈,

联邦机制允许HDFS有多个NameNode,每个NameNode负责整个文件系统中的一部分,比如一个NameNode负责所有/user下的所有文件,而另一个NameNode则负责/share下的所有文件。

    HDFS的逻辑组件展现如下图,分为NameNode,DataNode和一个通过调用Hadoop文件系统库从而对HDFS进行访问的应用程序。

    ①HDFS客户端程序对NameNode发起请求,NameNode将客户端要请求的文件的元数据信息(文件存在哪些block中,每个block又存储在哪些节点上)加载到内存,并对DataNode进行数据的读/写。

    ②DataNode之间相互通讯,行成读写队列(文件的各部分内容按顺序读写)。由于文件被多次备份(默认是3次),并且每个文件都会被拆分成多个block,也就意味着可以并行读写。

1.3.2 MapReduce:

MapReduce是一个基于批处理的分布式计算框架(理念来源于谷歌的另一篇名为MapReduce的论文)

MapReduce可以实现对大量数据的并行访问,它通过抽象化分布式系统工作的复杂流程,进而简化了并行访问操作。例如,分布式计算,分布式任务,以及处理不稳定的软硬件问题等。通过提供抽象化接口,MapReduce使得开发人员的工作重心可以放到业务上,而不是再为分布式系统的难题而苦恼。

MapReduce把客户端提交的任务请求拆分为多个Map和多个Reduce,这个理念来源于Lisp functional programming language(函数式编程语言),它移除了并行执行任务间的依赖关系。

如下图:

值得注意的是,Hadoop和我们以往的理念不同,它不是将数据加载到应用程序端来执行,而是反之,将同样的应用程序复制多份,并分发到各个含有数据的节点上执行。这样一来,比起大数据在网络之间的传输,应用程序的多并行会大大的节省时间。

①Mapper负责从各个节点对数据进行读取,并输出给Reducer(相同key的内容会被输出到同一个Reducer)。

※在Mapper和Reducer之间,可以进行对数据的Shuffle&Sort,从而减少Mapper到Reducer的传输量,也减少Reducer的工作量。

②Reducer把从Mapper得到的数据进行处理,并将处理后结果输出。(理论上,Mapper的每一个key都会对应一个Reducer,相同的key调用同一个reducer)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值