Hadoop
文章平均质量分 72
学习Hadoop时的记录
loser与你
这个作者很懒,什么都没留下…
展开
-
YARN工作流程
YARN工作流程1.基本架构 YARN总体上仍然是Master/Slave结构,ResourceManager为Master,NodeManager为Slave。ResourceManager负责对每个NodeManager上的资源进行统一管理和调度。当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManager启动可以用一定资源的任务。 YARN主要由ResourceManager、Nod原创 2021-10-09 21:21:49 · 5722 阅读 · 0 评论 -
YARN与MapReduce1的区别
YARN与MapReduce1的区别1.组成对比 MapReduce1中,两类守护进程控制着作业执行过程:一个JobTracker和一个或多个TaskTracker。JobTracker通过调度TaskTracker上运行的任务来协调所有运行在系统上的作业。TaskTracker在运行任务的同时将运行进度报告发送给JobTracker,JobTracker由此记录每项作业任务的整体进度情况。JobTracker同时负责作业调度和任务进度监控。 Hadoop对JobTracker赋予的功能过多造成负载过原创 2021-10-03 23:19:48 · 1680 阅读 · 0 评论 -
HDFS客户端写流程
HDFS客户端写流程1.创建文件 首先调用DistributedFileSystem.creat()创建一个空的HDFS文件。 然后这个方法在底层会通过调用ClientProtocol.create()方法通知Namenode执行对应的操作,Namenode会首先在文件系统目录树中的指定路径下添加一个新的文件,然后将创建新文件的操作记录到editlog中。 调用的DistributedFileSystem.creat()方法会返回一个HdfsDataOutputStream对象,这个对象在底层包装了原创 2021-10-03 18:35:42 · 272 阅读 · 0 评论 -
HDFS客户端读流程
HDFS客户端读流程1.打开HDFS文件 用户读取一个HDFS文件时,首先会调用open()方法打开这个文件,并获取文件对应的FSDataInputStream输入流,然后在这个FSDataInputStream对象上调用read()方法读取数据。2.从Namenode获取Datanode地址 在DFSInputStream构造方法中,首先会初始化DFSInputStream的属性,然后会调用openInfo()方法从Namenode获取文件对应的数据块位置信息,并将信息保存至其相应字段中。 其首原创 2021-10-03 13:22:56 · 974 阅读 · 0 评论 -
Datanode中读取数据块的两种方式
Datanode中读取数据块的两种方式1.普通方式 Datanode读取数据块的普通方式在操作系统层面有四步:(1)Datanode首先将数据块从磁盘存储读入操作系统的内核缓冲区(2)在将数据跨内核推到Datanode进程(3)然后Datanode会再次跨内核将数据推回内核中的套接字缓冲区(4)最后将数据写入网卡缓冲区 显然,上面的步骤(2)和步骤(3)进行了两次多余的数据拷贝操作,此时Datanode只是起到缓存数据并将其传回套接字的作用。2.零拷贝方式 Java NIO提供了零拷贝模式原创 2021-09-13 21:38:10 · 471 阅读 · 0 评论 -
Datanode升级机制
Datanode升级机制 Datanode升级机制是通过磁盘文件目录的配合来进行的,其升级可以分为三个步骤。1.升级操作 升级操作就是将Datanode从低版本升级到高版本,主要涉及这三个目录: (1)current目录:保存当前版本数据。 (2)previous.tmp目录:在升级过程中,保存当前版本数据的目录。 (3)previous目录:升级后,保存上一版本数据的目录。 Datanode升级时,会将当前版本数据所在的current目录改名为previous.tmp,然后为新版本数据重建c原创 2021-09-09 20:42:51 · 201 阅读 · 0 评论 -
HDFS的联邦机制
HDFS的联邦机制1.HDFS1.X架构 HDFS1.X架构从逻辑上可以分为两层:命名空间管理层和数据块存储管理层。其中数据块存储管理层又分为数据块管理和存储管理两部分。 Namenode实现了命名空间管理层以及数据块存储管理层中的数据块管理功能,而Datanode则实现了数据块存储管理层中的存储管理部分。 HDFS1.X架构使用一个Namenode来管理文件系统的命名空间以及数据块信息,使得HDFS的实现非常简单,但是单一的Namenode会导致以下缺点: (1)由于Namenode在内存中保存原创 2021-09-09 20:18:23 · 1890 阅读 · 0 评论 -
Namenode的启动与停止
Namenode的启动与停止 Namenode实体涉及到三个类:NameNode类、NameNodeRpcServer类、FSNamesystem类。NameNode类负责管理Namenode配置、RPC接口以及HTTP接等;NameNodeRpcServer类用于接收和处理所有的RPC请求;FSNamesystem类负责实现Namenode的所有逻辑。1.启动 Namenode的启动操作是在Namenode类中执行的,具体由其main()方法负责。 启动流程如下: (1)NameNode.mai原创 2021-09-09 14:23:25 · 2673 阅读 · 0 评论 -
HDFS的高可用HA
HDFS的高可用HA 在Hadoop2.X之前,Namenode是HDFS集群中可能发生单点故障的节点,每个HDFS集群中只有一个Namenode,一旦这个节点不可用,则整个HDFS集群将处于不可用状态。 HDFS的高可用HA方案就是为了解决上述问题而产生的,在HA HDFS集群中会同时运行两个Namenode...原创 2021-09-09 13:16:26 · 446 阅读 · 0 评论 -
Namenode中的安全模式
Namenode中的安全模式 安全模式是Namenode的一种状态,处于安全模式中的Namenode不接受任何对于命名空间的修改操作,同时也不触发任何复制和删除数据块的操作。 Namenode启动时会自动进入安全模式状态,用户可以通过“dfsadmin -safemode value”命令来操作安全模式,这个命令在底层是由DFSClient调用setSafeMode方法实现的。 Namenode启动时会首先加载fsimage文件并且合并编辑editlog文件,完成这些操作之后Namenode的第一关系原创 2021-09-03 15:36:14 · 2242 阅读 · 0 评论 -
HDFS集群的Namenode对缓存的管理
HDFS集群的Namenode对缓存的管理 HDFS的2.3.0版本新增了集中式缓存管理功能,允许用户将一些文件和目录保存到HDFS缓存中。HDFS集中式缓存是由分布在Datanode上的堆外内存组成的,并由Namenode统一管理。 添加了集中式缓存功能的HDFS集群的优势: 1.阻止了频繁使用的数据从内存中清除 2.HDFS客户端可以根据数据块的缓存情况调度任务,提高数据块的读性能 3.数据块被Datanode缓存后,客户端就可以使用一个新的更高效的零拷贝机制读取数据块,零拷贝读取数据块的客户原创 2021-09-02 15:51:24 · 389 阅读 · 0 评论 -
HDFS集群的Namenode对租约的管理
HDFS集群的Namenode对租约的管理 HDFS集群的Namenode对租约的管理租约管理器 HDFS文件是write-once-read-many,并且不支持客户端的并行写操作,因而需要一种机制保证对HDFS文件的互斥操作。HDFS提供了租约机制来实现这个功能,租约是Namenode给予租约持有者(通常是客户端)在规定时间内拥有文件权限(写文件)的合同。 在HDFS中,客户端写文件时需要先从租约管理器申请一个租约,成功申请租约之后客户端就成为了租约持有者,也就拥有了对该HDFS文件的独占权限,其原创 2021-09-02 11:43:25 · 475 阅读 · 0 评论 -
HDFS集群的Namenode对数据块和数据节点的管理
HDFS集群的Namenode对数据块和数据节点的管理 HDFS集群的Namenode对数据块和数据节点的管理数据块管理1.数据块2.数据块副本3.数据块的增、删、改、查 Namenode维护着HDFS两个最重要的关系,第一关系是文件系统目录树,第二关系便是数据块和数据节点的关系了。 数据块和数据节点的对应关系,就是指定数据块的副本保存在哪些数据节点上的信息。这个信息是在Datanode启动时,由Datanode上报给Namenode的。Namenode收到后再去更新内存中的数据,以维护数据块和数据节原创 2021-09-01 20:39:20 · 2384 阅读 · 0 评论 -
HDFS集群的Namenode对文件系统目录树的管理
HDFS集群的namenode文件系统目录树管理 HDFS集群的namenode文件系统目录树管理基本信息管理特性相关信息管理持久化 HDFS的目录和文件在内存中是以一颗树的形式存储的,目录树由namenode维护,namenode会修改这个树形结构以对外提供添加和删除文件等操作。文件系统目录树上的节点还保存了HDFS文件与数据块的对应关系,这一对应关系也是由namenode维护的。 namenode中最重要的两个功能之一就是维护文件系统的命名空间,文件系统的命名空间是以“/”为根的整个目录树,通过F原创 2021-08-31 12:21:02 · 1313 阅读 · 0 评论 -
Hadoop安全认证
Hadoop安全认证 Hadoop中采用了SASL(Simple Authentication and Security Layer,简单层和安全层)进行安全认证,具体方法涉及DIGEST-MD5和Kerberos两种。1.SASL SASL是一种用来扩充C/S模式验证能力的认证机制,核心思想是把用户认证和安全传输从应用程序中隔离出来。 SASL支持多种认证方法,主要包括以下几种: (1)ANONYMOUS:无须认证 (2)PLAIN:最简单但危险的机制,信息采用明文密码方式传输 (3)DIG原创 2021-08-26 17:27:48 · 1379 阅读 · 0 评论 -
MapReduce流程
MapReduce流程 MapReduce流程1.MapReduce架构1.MapReduce架构 Hadoop MapReduce采用了Master/Slave(M/S)架构,主要由以下几个组件组成:Client、JobTracker、TaskTracker和Task。如下图所示:(1)Client 用户编写的MapReduce程序通过Client提交到JobTracker端。在Hadoop内部用Job表示MapReduce程序,一个MapReduce可对应多个Job,每个Job会被分解成原创 2021-08-19 13:26:28 · 995 阅读 · 0 评论