赞
踩
hadoop1.x的HDFS默认块大小为64MB;hadoop2.x的默认块大小为128MB。
1)文件块:Block,datanode中存放数据最小逻辑单元,默认块大小为64M,便于管理,不受磁盘限制,数据可在datanode的总block中进行冗余备份,存储的副本数量要少于datanode节点的数量,当一个或多个块出现故障,用户可以直接去其他地方读取数据副本;
2)NameNode:管理文件系统的命名空间,属于管理者角色,维护文件系统树内所有文件和目录,记录每个文件在各个DataNode上的位置和副本信息,并协调客户端对文件的访问;
3)DataNode:负责处理文件系统客户端的文件读写请求,存储并检索数据块,并定期向NameNode发送所存储的块的列表,属于工作者角色。负责所在物理节点的存储管理,按照一次写入,多次读取的原则,存储文件按照Block块进行存储;
4)Secondary NameNode:相当于NameNode的快照,也称之为二级NameNode,能够周期性的备份NameNode,记录NameNode上的元数据等。为防止NameNode进程出现故障,起到备份作用;
Hadoop的优势
1)高可靠性:因为Hadoop假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理。
2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。
4)高容错性:自动保存多份副本数据,并且能够自动将失败的任务重新分配。
hadoop缺点:
1)低时间延迟的数据访问:要求在例如几十毫秒内完成数据访问的应用,不适合在HDFS上运行,HDFS虽然有强大的高数据吞吐量,但是以提高时间延迟为代价,可以使用HBase满足低延迟的访问需求;
2)无法高效存储大量小文件:大量小文件会造成整个文件系统的目录树和索引目录相对较大,而这些的元数据都会存放在namenode节点;
Hadoop组成
1)Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统。
2)Hadoop MapReduce:一个分布式的离线并行计算框架。
3)Hadoop Common:支持其他模块的工具模块。
4)Hadoop YARN:作业调度与集群资源管理的框架(Hadoop2.x增加)。
Hadoop1.x 时 代 ,Hadoop中 的MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大。在Hadoop2.x时 代,增加 了Yarn。Yarn只负责资 源 的 调 度 ,MapReduce 只负责运算。Hadoop3.x在组成上没有变化
运行模式
(1)本地模式(默认模式):
不需要启用单独进程,直接可以运行,测试和开发时使用。
(2)伪分布式模式:
等同于完全分布式,只有一个节点。
(3)完全分布式模式:
多个节点一起运行。
Hadoop HDFS架构概述
1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
2)DataNode(dn):负责数据的读写操作和复制操作,在本地文件系统存储文件块数据,以及块数据的校验和。DataNode之间会进行通信,复制数据块,保证数据的冗余性。
3)Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。(定期合并文件系统镜像和编辑日志,然后把合并后的传给NameNode,替换其镜像,并清空编辑日志,类似于CheckPoint机制),但NameNode失效后仍需要手工将其设置成主机
Checkpoint过程
1、secondary namenode请求namenode是否需要checkpoint,或者条件触发进行同步
2、secondary namenode发送checkpoint请求
3、滚动正在写的edits文件及fsimages文件,拷贝到secondary namenode加载到内存并合并(采用http GET)
4、secondary namenode逐步执行edits文件中的操作生成新的fsimages快照文件并拷贝到namenode(http POST)
5、Namenode节点将新接收的fsimages文件替换旧的fsimages,步骤3产生新的edits.new文件替换旧的edits文件
HDFS写文件
1.客户端将文件写入本地磁盘的 HDFS Client 文件中
2.当临时文件大小达到一个 block 大小时,HDFS client 通知 NameNode,申请写入文件
3.NameNode 在 HDFS 的文件系统中创建一个文件,并把该 block id 和要写入的 DataNode 的列表返回给客户端
4.客户端收到这些信息后,将临时文件写入 DataNodes
HDFS读文件
1.客户端向NameNode发送读取请求
2.NameNode返回文件的所有block和这些block所在的DataNodes(包括复制节点)
3.客户端直接从DataNode中读取数据,如果该DataNode读取失败(DataNode失效或校验码不对),则从复制节点中读取(如果读取的数据就在本机,则直接读取,否则通过网络读取)
YARN架构
Resource Manager:全局资源管理和任务调度
Node Manager:单个节点服务器的资源管理者
ApplicationMaster: 单个作业的资源管理和任务监控
Container:相当于一台独立服务器,里面有任务运行所需要的资源,比如CPU、磁盘、网络等
MapReduce架构
MapReduce将计算过程分为两个阶段:Map和Reduce
Map阶段并行处理输入数据
Reduce阶段对Map结果进行汇总
HDFS、YARN、MapReduce三者关系
工作过程概述:
1.用户向YARN中提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等
2.ResourceManager为该应用程序分配第一个Container,并与对应的Node-Manager通信,要求它在这个Container中启动应用程序ApplicationMaster
3.ApplicationMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManager查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤4~7
4.ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源
5.一旦ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它启动任务
6.NodeManager为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务MapTask
7.各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。在应用程序运行过程中,用户可随时通过RPC向ApplicationMaster查询应用程序的当前运行状态
8.最后经过ReduceTask将结果返回写到磁盘,HDFS做相应的存储
9.应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己
常用服务端口
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。