hadoop的学习(一)入门

hadoop是一个开源的分布式存储和分布式计算平台。

  • HDFS:分布式文件系统,存储海量的数据
  • MapReduce:并处理框架,实现任务的分解和调度

hadoop的学习(一)入门_第1张图片

HDFS

  • BLOCK:HDFS的文件被分成快进行存储,默认大小64Mb。块是文件存储处理的逻辑单元。每个数据块3个副本,分布在两个机架内的三个节点。
  • NameNode:是管理节点。存放文件元数据。二级NameNode定期同步元数据影像文件和修改日志,防止NameNode故障。
  1. 文件与数据块的映射表
  2. 数据块与数据节点的映射表
  3. 接受用户的操作请求
  • DataNode:是HDFS的工作节点存放文件数据块。定期向NameNode发送心跳信息。

HDFS特点:

  • 数据冗余,硬件容错
  • 流式数据访问,大文件存储
  • 适合一次写入多次读取,不支持多用户并发访问

hadoop的学习(一)入门_第2张图片

MapReduce

Map(映射)"和"Reduce(归约)",是它们的主要思想.

hadoop的学习(一)入门_第3张图片

YARN

YARN的基本思想是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离,主要方法是创建一个全局的ResourceManager(RM)和若干个针对应用程序的ApplicationMaster(AM)。

  • ResourceManager:分配和调度资源,启动和监控ApplicationMaster,监控nodeManager
  • ApplicationManager:为MR类型的程序申请资源并分配给内部任务,负责数据的切分
  • NodeManager:管理每个节点的资源,处理来自RM和AM的命令

深入mapReduce的过程

节点map任务的个数可增大mapred.map.tasks,减少map任务的个数mapred.min.split.size。

数据经过map后经shuffle混冼进入reduce,在大数据的情况下可能造成网络的巨大开销,所以可以在本地按照key先进行一轮合并和排序,在进行网络混冼。这个过程就是combine。在多数情况下与reduce的逻辑是一致的。partition是在reduce输入之前发生,相同的key一定会进入同一个partitioner

一个mapReduce作业中,以下三者的数量总是相等的。

  • partitioner
  • Reduce任务
  • 最终输出文件 (part-r-000x)

在一个reduce中,所有数据都会按照key升值排序,所以part输出文件中包含key值则这个文件一定是有序的。

分布式缓存

加载到内存发生在job执行之前,每个从节点各自都缓存一份相同的共享数据,如果共享数据太大,可以将共享数据分批缓存,重复执行作业。

hadoop的学习(一)入门_第4张图片

 

 

你可能感兴趣的:(hadoop)