hadoop主要类介绍-开始篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fengzy1990/article/details/72782952

HADOOP类

(1)  InputFormat:将输入的数据分割成split,并将split拆分成<k,v>作为map输入。Job.setInputFormatClass()设置,TextInputFormat将文本按行分割成split,LineRecorderReader将每行解析为<k,v>

(2)  Mapper:实现map函数,将输入的<k,v>生成中间结果,通过job.setMapperClass()设置。

(3)  Combiner:实现combine函数,合并中间具有相同key的键值对,通过job.setCombinerClass()设置。

(4)  Partitioner:实现getPartition函数,用于在Shuffle过程中按照key将中间数据分为R份,每份由一个Reducer负责。通过job.setPartitionerClass()设置, 默认使用HashPartitioner类,使用哈希完成Shuffle过程。

(5)  Reducer:实现reduce函数,将中间结果合并,得到最终结果。通过job.setReduceClass()设置。

(6)  OutputFormat:负责输出最终结果。通过job.setOutputFormatClass()设置,默认使用TextOutputFormat将最终结果以文本输出。


Hadoop有四大核心模块:

    Common  常用工具类报                        HDFS  数据存储

    YARN作业调度+资源管理平台                  MAPReduce 数据处理

 HDFS 核心组件

    Namenode  管理文件系统的命名空间,维护文件系统树,保存着所有文件信息

    这些信息通过fsimage和edits文件被持久到磁盘中。

Datanode文件系统中真正存储数据的地方  接口客户端或元数据信息(namenode)写入或者读取数据块请求

Secondarynamenode:不是namenode节点,是namenode出现问题的备用节点

其负责定期合并namenode产生的fsimage和edits文件,防止日志文件过大。

通常不和namenode在一个节点上,合并操作占用CPUD大量时间,会影响namenode正常工作。

备注:Hadoop下载节点http://mirror.bit.edu.cn/apache/hadoop/common/

    NameNode是HDFS的守护程序,负责记录文件是如何分割成数据块,以及这些数据块分别存在哪些数据节点上。主要对内存及I/O进行管理。由于其在集群中一个单点,如果NameNode宕机,整个系统无法运行。

DataNode集群中每个从服务器都有一个DataNode后台程序,负责吧HDFS数据块读写到本地文件系统。读写时,先由NameNode告诉去哪个DataNode进行具体读写

Secondary NameNode用来监控HDFS状态的辅助后台程序。每个集群中只有一个。定期保存NameNode的快照,可将NameNode的宕机损失降到最低,同时作为备用NN使用。

Yarn源于MapReduce框架不足,将原有的JobTracker主要的资源管理和job调度/监控分成两个单独守护进程ResourceManager和每个Application有一个ApplicationMaster。RM和NM组成了基本的数据计算框架。RM协调集群的资源利用,需要向其申请资源。NM主要负责启动RM分配给AM的container,并监视器运行情况。


猜你喜欢

转载自blog.csdn.net/fengzy1990/article/details/72782952