当先锋百科网

首页 1 2 3 4 5 6 7

Hadoop介绍

Apache Hadoop 是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架构。简单来说,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。Hadoop实现了一个分布式集群文件系统(HadoopDistributedFileSystem)。分布式集群文件系统的意思是:每台计算机各自提供自己的存储空间,并各自协调管理所有计算机节点(node)中的文件。

Hadoop · MapReduce

Architecture

Hadoop在网络计算机集群上执行,每个节点运行一组守护进程。

• 资源管理器ResourceManager — computing
• 节点管理器NodeManager — computing
• 名称节点NameNode — storage
• 二级节点名称SecondaryNameNode — storage
• 数据节点DataNode — storage

Master-Slave architecture

Map/Reduce框架由一个单独的master JobTracker 和每个集群节点一个slave TaskTracker共同组成。master负责调度构成一个作业的所有任务,这些任务分布在不同的slave上,master监控它们的执行,重新执行已经失败的任务。而slave仅负责执行由master指派的任务。

Master节点 (1)
• 管理所有Slave的节点
• 接受外界请求
• 分配谁什么时候执行什么任务
• 与Slave节点交流
Slave节点 (1..*)
• 执行任务
• 执行Master节点

这里写图片描述

Job flow

  1. 将input data分成到computing chunks中
  2. 将一个chunk分配到一个Map 节点
  3. 运行所有的Mappers
  4. Shuffle and sort
  5. 运行所有的Reducers
  6. Reducers的结果组成了这个job的output

Hadoop 优缺点

Hadoop 并不是针对所有情况的完美的解决方案
1. Hadoop是一个batch processing framework,用来处理非常大的dataset
2. Hadoop时延高,只适用Batch数据处理,对于交互式数据处理,实时数据处理的支持不够
2. 因为data已经是distributed,Hadoop在处理Map phase的时候很高效(efficient)
2. Hadoop在I/O communication方面表现不是那么好。Hadoop在job运行过程中,频繁的对hdfs进行文件读取/写入操作,io操作频繁。并且shuffle and sort会引发large network traffic
4. Hadoop没有对迭代(iteration)的原生支持
5. Hadoop只有一个同步屏障(synchronisation barrier)