hadoop知识

本文详细介绍了Hadoop的组成,包括HDFS的启动过程、NameNode、DataNode、SecondaryNameNode的角色与功能,以及MapReduce的工作模式。此外,还讲解了HDFS的文件上传与下载原理以及YARN的基本组成和作用。
摘要由CSDN通过智能技术生成

一、Hadoop组成:

1、Hadoop的核心是HDSF和MapReduce,Hadoop2.0以后引入了yarn。HDFS是一个分布式存储系统。MapReduce是分布式的计算框架。yarn是一个资源调度的工具。Hadoop2.0加入了zk的支持实现比较可靠的高可用。

2、HDFS的启动过程:(1)、加载文件的元信息。(2)、加载日志文件。(3)、设置检查点。(4)、进入安全模式。作用是:检查数据块的副本率,冗余度是否达到要求。

二、HDFS组成原理:

1、HDFS的架构:

我们可以看到在这个架构中有一个NameNode和几个DataNode还有一个SecondaryNameNode,下面我们分别来阐述一下它们各自的作用.

2、NameNode:

(1)、加载fsimag和edits文件到内存中。

ps:fsimag文件是HDFS元信息文件,edits文件是记录操作日志文件。fsimage文件和edits文件在一起,记录了数据块的位置和冗余信息。(2)、客户端向NameNode发起增删改查的请求。

(3)、NameNode记录操作到内存中,更新滚动日志。

(4)、NameNode在内存中对数据进行增删改查。

3、DataNode:

(1)、保存数据块,默认是128M,Hadoop1.0默认是64M。

(2)、存储在磁盘上,包括两个文件,一个数据本身,一个是元数据包括数据块长度,块数据校验和以及时间戳。

(3)、DataNode启动后向NameNode注册,通过后,周期性(64分钟)的向NameNode上报所有的信息。

(4)、心跳是三秒一次,心跳返回结果包括NameNode给该DataNode的命令。如果十分钟都没有收到该DataNode的心跳,则该节点不可用。

4、SecondaryNameNode:

(1)、向NameNode询问是否需要checkPoint。

ps:检查点触发的条件是:①时间快到了,60分钟。②日志文件edits中数据满了,64M。

(2)、请求执行checkPoint。

(3)、拷贝edits文件和fsimag文件到SecondaryNameNode中。

(4)、将拷贝过来的edits文件和fsimag文件进行合并。

(5)、生成新的fsimage命名为fsimage.chkpoint。

(6)、将fsimage.chkpoint拷贝到NameNode中去。

(7)、重新命名生成fsimage。

5、NameNode、JobTracker、DataNode、TaskTracker

(1)、hadoop的集群是基于master/slave模式,namenode和jobtracker属于master,datanode和tasktracker属于slave,master只有一个,而slave有多个。(2)、SecondaryNameNode内存需求和NameNode在一个数量级上,所以通常secondary NameNode(运行在单独的物理机器上)和 NameNode 运行在不同的机器上。(3)、JobTracker对应于NameNode,TaskTracker对应于DataNode。(4)、DataNode和NameNode是针对数据存放来而言的。JobTracker和TaskTracker是对于MapReduce执行而言的。

ps:mapreduce中几个主要概念,mapreduce 整体上可以分为这么几条执行线索:jobclient,JobTracker与TaskTracker。1)JobClient会在用户端通过JobClient类将已经配置参数打包成jar文件的应用存储到hdfs,并把路径提交到Jobtracker,然后由JobTracker创建每一个Task(即 MapTask 和 ReduceTask)并将它们分发到各个TaskTracker服务中去执行。2)JobTracker是一master服务,软件启动之后JobTracker接收Job,负责调度Job的每一个子任务。task运行于TaskTracker上,并监控它们,如果发现有失败的task就重新运行它。一般情况应该把JobTracker 部署在单独的机器上。3)TaskTracker是运行在多个节点上的slaver服务。TaskTracker主动与JobTracker通信,接收作业,并负责直接执行每一个任务。TaskTracker 都需要运行在HDFS的DataNode上。

(5)、JobTracker的Recover机制:如果设置了JobTracker Recover机制,那么在JobTracker重启的时候会触发Recover,在重启之前,histroy logs中会记录各个作业的运行状态,待JobTracker重启的时候,JobTracker会自动提交这些作业,并只对未完成的task进行重新调度。
三、HDFS上传下载原理:

1、HDFS文件的上传:

(1)、客户端发出文件上传的请求。

(2)、客户端创建出DistrbutedSystem。

(3)、DistributedSystem和NameNode建立RPC通信,得到一个NameNode的代理对象。

(4)、请求创建文件的元信息。

(5)、NameNode创建出文件的元信息。元信息包括文件名,文件的大小,路径,数据块数量,数据块分布在DataNode的信息。

(6)、NameNode缓存元信息。

(7)、如果满了就采用LRU置换算法,生成fsimage文件。

(8)、返回给客户端文件的元信息。

(9)、创建输出流。

(10)、上传第一个数据块到DataNode上面去。

(11)、DataNode之间根据冗余信息,进行复制。

(12)、FSDataOutputStream循环上传数据。

2、HDFS文件的下载:

(1)、客户端发出文件下载的请求。

(2)、客户端创建出DistrbutedSystem。

(3)、DistributedSystem和NameNode建立RPC通信,得到一个NameNode的代理对象。

(4)、得到文件的元信息。

(5)、NameNode在内存中查找文件的元信息。

(6)、在fsimage中查找。

(7)、返回给客户端文件的元信息。

(8)、创建一个输入流。

(9)、下载第一个数据块,多线程下载数据块。

四、yarn详解

yarn的基本组成:resourceManager、nodeManger、applicationMaster、container

1、resourceManager:主要负责资源的调度和应用程序的管理。

①调度器:调度器是将系统中的资源分配给各个正在运行的应用程序。

②应用程序管理:负责管理所有applicationMaster。

2、nodeManager:定时告诉resourceManger,node节点的资源使用情况;任务的启动和终止。

3、applicationMaster:向resourceManger请求资源,监听任务的执行进度。

4、container:资源的抽象(cpu,内存的信息),当applicationMaster向recourceManger请求资源的时候,就是以container抽象资源的形式返回,限制资源的使用情况。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陪你疯,陪你闹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值