简单理解Hadoop(Hadoop是什么、如何工作)

hadoop是什么?

Hadoop是一种分析和处理大数据的软件平台,是Appach的一个用Java语言所实现的开源软件的加框,在大量计算机组成的集群当中实现了对于海量的数据进行的分布式计算。

Hadoop主要的任务部署分为3个部分,分别是:Client机器,主节点和从节点。

  • 主节点主要负责Hadoop两个关键功能模块HDFS、Map Reduce的监督。当Job Tracker使用Map Reduce进行监控和调度数据的并行处理时,名称节点则负责HDFS监视和调度。
  • 从节点负责了机器运行的绝大部分,担当所有数据储存和指令计算的苦差。每个从节点既扮演者数据节点的角色又冲当与他们主节点通信的守护进程。守护进程隶属于Job Tracker,数据节点在归属于名称节点。

Hadoop的集群主要由 NameNode,DataNode,Secondary NameNode,JobTracker,TaskTracker组成.如下图所示:

●  NameNode中记录了文件是如何被拆分成block以及这些block都存储到了哪些DateNode节点.NameNode同时保存了文件系统运行的状态信息.

●  DataNode中存储的是被拆分的blocks.

●  Secondary NameNode帮助NameNode收集文件系统运行的状态信息.

●  JobTracker当有任务提交到Hadoop集群的时候负责Job的运行,负责调度多个TaskTracker.

●  TaskTracker负责某一个map或者reduce任务. 

Hadoop的框架最核心的设计就是:HDFS和MapReduce.

HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算.

大数据在Hadoop处理的流程可以参照下面简单的图来进行理解:数据是通过了Hadoop的集群处理后得到的结果。

1) HDFS:Hadoop Distributed File System,Hadoop的分布式文件系统.

  大文件被分成默认64M一块的数据块分布存储在集群机器中.如下图中的文件 data1被分成3块,这3块以冗余镜像的方式分布在不同的机器中。

HDFS的关键元素:

1)Block:将一个文件进行分块,通常是64M。

2)NameNode:保存整个文件系统的目录信息、文件信息及分块信息,这是由唯一 一台主机专门保存,当然这台主机如果出错,NameNode就失效了。在 Hadoop2.* 开始支持 activity-standy 模式----如果主 NameNode 失效,启动备用主机运行 NameNode。

3)DataNode:分布在廉价的计算机上,用于存储Block块文件。

2)MapReduce:

Hadoop为每一个input split创建一个task调用Map计算,在此task中依次处理此split中的一个个记录(record),map会将结果以key--value 的形式输出,hadoop负责按key值将map的输出整理后作为Reduce的输入,Reduce Task的输出为整个job的输出,保存在HDFS上. 

猜你喜欢

转载自blog.csdn.net/yingzoe/article/details/86665082