HDFS集群启动过程详解

大数据领域必备:Hadoop集群搭建全流程详解 本文旨在构建一套完整的Hadoop集群搭建技术体系,涵盖从基础环境准备到生产级集群部署的全流程。三种部署模式(单机/伪分布式/完全分布式)的技术特点和适用场景HDFS分布式文件系统和YARN资源管理框架的核心原理集群节点规划、网络配置、安全认证体系建设基于实际生产环境的故障排查和性能优化方案目标读者需具备Linux系统管理基础和Java开发环境配置经验,建议提前掌握Shell脚本编程和分布式系统基本概念。核心概念:解析Hadoop架构体系,包括HDFS和YARN的组件关系环境准备。 阅读详情

HDFS的启动过程和关闭过程都经过脚本进行了封装,只需要执行start-all.sh和stop-all.sh就可以。操作较简单。下面针对启动阶段的原理和详细过程进行说明,对关闭过程目前还没有调研,所以暂缺。

HDFS的启动分三步骤:

  • l  第一步,启动namenode;
  • l  第二步,启动datanode;
  • l  第三步,启动Secondary namenode。

下面一一描述。


第一步,启动namenode

1.      初始化过程:获取一些必要的参数值,初始化FSImage,FSNameSystem,NameNode等类。这个过程在很多启动描述中都被忽略,不是很重要。需要注意的是,这个过程在recover, format和finalize几种启动时的操作略有不同。

2.      构造Configuration对象:该对象的具体创建过程不是很清楚,只知道其中包含了一些配置信息的加载。所以应该是和配置信息有关的。

3.      构造namenode对象:这是namenode启动最重要的阶段。Namenode对象主要包括两部分,一个是Server类成员对象,第二个是FSNameSystem类成员对象。

a)        Server成员的构造:Server是namenode用于与client和datanode之间进行RPC通信的服务端。Namenode中有一个或两个Server成员,由不同的Hadoop版本决定,两个的时候分别负责和client和Datanode的通信。

b)        FSNameSystem的构造:Server构造完成后,调用namenode的initialize方法,接下来的操作都在这个方法中完成。先是构造FSNameSystem对象,FSNameSystem对象就是namenode上元数据的真正的存放数据结构。它主要包括两部分,第一部分是一些数据结构,包括

  • l  blocksMap:map,保存数据块block相关的映射关系,包括文件与块,块与datanode的映射等。
  • l  curruptReplicasMap:保存所有损坏的块,所有副本都损坏。
  • l  datanodeMap:曾近连接过的所有的datanode,是全集。
  • l  recentInvalidateSets:最近失效的block。
  • l  excessReplicateMap:机器与机器上多余的block的映射,这些block等待被删除。
  • l  Heartbeats:当前发送心跳包的datanode,也就是alive的datanode。

第二部分是FSDirectory对象,这里存放着文件系统的层次结构。

FSNameSystem对象构造的过程,首先初始化blocksMap等数据结构,然后加载fsimage文件到类FSImage中,然后读取edits文件,利用fsimage和edits构造文件系统层次结构。

Q:fsimage文件如何加载?

之所以要记录fsimage的加载过程,是因为fsimage是启动过程中耗时较大的一个步骤,便于后续的研究。

1.      从fsimage逐行读入目录和文件信息;

2.      初始化元数据信息;

3.      构造namespace名字空间镜像;

4.      读取block信息,并填充到BlocksMap中。


c)        启动后台守护进程: 启动一系列的后台守护进程,下面是简单描述。

  • l  PendingReplicaitonBlocks$PendingReplicationMonitor: 监控block的copy过程
  • l  FSNamesystem$HeartbeatMonitor,心跳包的检测
  • l  FSNamesystem$ReplicationMonitor: 监控复本数量,如果不足,就copy。
  • l  LeaseManager$Monitor:控制写请求,文件不能同时多人写。
  • l  DecommissionManager$Monitor:处理数据节点的退役

d)       启动RPC Server服务和web服务:Namenode和datanode以及client之间的通信都是通过RPC方式的,下面是简单描述RPC的通信过程。

Listener获取来自client或者datanode的请求,为该请求创建listener的一个子类reader的对象。并创建connection类,加入到connectionList中。处理connection对象,reader常见call对象,然后加入到callList中。再取出,处理执行,然后将得到的response加入到ResponseQueue中,从RQ中返回给client或者datanode,并关闭连接。

4.      进入安全模式:namenode对象构造完成后,namenode进入安全模式,在这个阶段等待datanode的注册。为什么一定要在第3步以后呢,我觉得是因为只有RPC启动后,datanode才能与namenode进行通信,才能注册。

5.      退出安全模式,启动成功:在等待datanode注册的过程中,namenode有一个timeout设置,等待超时后,namenode就会默认已经没有要注册的datanode了,离开安全模式。

namenode正式启动。


第二步,启动datanode

Datanode的启动包括两个步骤,初始化过程和启动过程。

1.       初始化过程:

a)        初始化过程的第一步,是Datanode获取并设置各种配置信息。我认为datanode整理自己的block信息并进行封装,等待发送给namenode就是在这一步进行的。

b)        然后向namenode发送RPC请求,从namenode获取namespaceID, version以及StorageID等待信息,然后再做一系列的初始化操作。

2.       Datanode启动:

a)        首先是datanode向namenode注册。

Datanode通过DatanodeProtocal协议进行注册,向namenode发送注册信息,包括服务地址,信息查询端口,客户端访问端口以及datanodeID等,还包括block_report块数据;

namenode接收到信息后(这时的namenode处在安全模式中,等待注册),先检验datanode的版本,然后把datanode交给FSNameSystem处理;

FSNameSystem先验证该datanode是否被允许挂载(通过dfs.hosts列表验证),然后把datanode数据映射到元数据中,这里主要是获取block_report块与datanode的映射关系,添加到BlocksMap中[hx1] ,然后再把这个datanode添加到heartsbeats中进行监控。最后返回注册信息。

b)        启动datanode线程。Datanode线程实际上是在不断调用offerService,周期性向namenode发送block_Report和heartbeats,同时接受namenode的指令。

Datanode启动完成。


第三步,Secondary namenode的启动

Secondary namenode的过程没有细看。分析一下,觉得其实它的启动应该是有两部分的,首先与namenode建立连接,注册到namenode,并且从namenode同步当前的fsimage,edits等文件信息;第二部分,是启动secondary namenode上用于轮训的进程,定期执行检查点的创建操作。


HDFS启动完成。


HDFS启动耗时

HDFS启动最耗时的步骤,是fsimage加载的过程和datanode注册时block_report载入的过程。具体的情况需要结合源码以及简单的测试来确定。


综合能源系统多时间尺度优化调度!诸多创新点让你抓住审稿人的心! 主要介绍综合能源系统的设备组成结构,并针对屋顶光伏系统、冷-热-电联供系统中的燃气轮机、燃气锅炉、光伏溴化锂制冷机、卡琳娜余热发电、中央空调系统,以及外网交互系统的配电网与天然气管网交互关系进行数学建模。1) 源-荷-储协同调度:研究屋顶光伏、燃气轮机、燃气锅炉等源侧设备,中央空调、电-热-冷负荷、可平移电负荷、可削减温控负荷等负荷侧资源,以及储能系统、电动汽车等储能侧设备的协同调度,以提高风光消纳能力,满足社会能源需求。通过电转热、电转冷、电转气等多能耦合方式,可进一步促进可再生能源的应用与发展。 阅读详情

相关推荐

手把手教你用WF100DPZ数字压力传感器搞定I2C/SPI通信(附完整寄存器解析)

本文详细解析了WF100DPZ数字压力传感器的I2C与SPI通信驱动方法,涵盖硬件连接、寄存器配置、数据读取流程及常见问题排查。该传感器内置24位ADC和出厂校准,通过实战代码演示了如何稳定获取高精度压力与温度数据,帮助开发者快速集成到嵌入式项目中。

weixin_28285943的博客 375

HDFS的启动过程

欢迎使用马克飞象 HDFS的启动过程 HDFS的启动过程分为四个阶段: 第一阶段:NameNode 读取包含元数据信息的fsimage文件,并加载到内存; 第二阶段:NameNode读取体现HDFS最新状态的edits日志文件,并加载到内存中 第三阶段:生成检查点,SecondaryNameNode将edits日志中的信息合并到fsimage文件中 第四阶段:进入安全模式,检查数据块的完整性 H...

fanyun2009的博客 3011

保姆级教程:用YOLOv5s搞定钢材表面缺陷检测,从数据集NEU-DET到模型部署全流程

本文提供了一份详细的YOLOv5s钢材表面缺陷检测教程,涵盖从NEU-DET数据集处理到模型部署的全流程。针对工业环境中的实际限制,如计算资源有限和标注样本少等问题,提供了优化方案和实用技巧,帮助开发者快速实现高效的钢材缺陷检测系统。

weixin_30568591的博客 465

【HDFS】架构 二 :HDFS的启动流程、安全模式、服务器的分类、副本放置策略、读写流程

本文提供了Hadoop分布式文件系统(HDFS)的详细架构分析,包括启动流程、安全模式、服务器分类、副本放置策略、写流程和读流程。 文章强调了HDFS在设计上对数据一致性和可靠性的重视,以及其在分布式计算环境中的高效读写能力。

flowglow的博客 1226

启动盘安装Win10完整指南:U盘制作、BIOS设置与分区排错

系统重装是解决电脑卡顿、系统崩溃、病毒残留等问题的基础操作,而U盘启动盘则是目前最主流的安装介质。其核心原理在于通过Rufus等工具,将原版ISO镜像写入U盘,并依据主板固件类型(UEFI或Legacy)选择对应的GPT或MBR分区表,确保引导程序能正确加载。掌握这些底层概念,不仅能提升安装成功率,还能避免因引导模式不匹配导致的黑屏、无法启动等问题。在实际应用中,无论是老旧电脑升级、硬盘更换,还是需要纯净的系统环境,制作一个可靠的启动盘都是必备技能。本文从备份数据、下载官方镜像讲起,逐步演示U盘制作、启动快

weixin_32667955的博客 339

Halcon实战:5分钟搞定工业零件中的圆孔检测(附完整代码)

本文详细解析了如何利用Halcon的hough_circle算法在5分钟内高效完成工业零件中的圆孔检测。通过优化图像采集、智能预处理和参数化边缘检测,解决了金属反光、油污干扰等工业场景常见问题,并提供了完整的代码示例和实战案例,显著提升检测精度和效率。

weixin_29061997的博客 239

大数据Hadoop集群的启动

目录1 启动准备工作1.1 配置操作系统的环境变量1.2 创建Hadoop数据目录1.3 格式化文件系统1.4 启动和关闭Hadoop1.5 验证Hadoop是否成功启动1.6 hadoop-daemon.sh的使用2 HDFS常用的操作命令3 hdfs的高级使用命令3.1 HDFS文件限额配置3.2 数量限额3.3 空间大小限额3.4 HDFS的管理命令3.5 hdfs的安全模式 1 启动准备工作 通过前面的配置现在可以启动Hadoop集群了,但是在首次启动Hadoop时还需要做一些准备工作。 1.1

赵广陆 1万+

OpenClaw人人养虾:接入即时通讯平台Zalo

通过 Zalo Official Account(OA,官方账号)API,可以将 OpenClaw 接入 Zalo,实现面向越南用户的自动化客服和互动。

王国平的博客 437

Hadoop环境搭建---集群启动篇

linux

欢迎来到祁连的博客 261

点云数据处理:体素滤波算法

体素滤波是一种简单而有效的点云数据处理方法,可用于去除离群点和平滑点云表面。体素滤波是一种常用的点云数据处理算法,用于去除离群点并平滑点云表面。在本文中,我们将介绍CloudCompare和PCL(Point Cloud Library)中的体素滤波算法,并提供相应的源代码示例。PCL是一个专门用于点云处理的开源库,提供了一系列高效的点云处理算法和工具。然后,我们创建了一个。方法执行体素滤波,并将滤波后的点云保存为"filtered_cloud.ply"文件。方法来执行体素滤波,指定体素大小为0.01。

ZyqfCss的博客 388

【25届数字IC秋招总结】面试经验10——紫光同芯

25届数字ic面试记录——紫光同芯

lalala0635的博客 862

最详细讲解,保姆式操作,Linux集群下Hadoop的安装、配置、启动以及UI界面访问

前言 Hadoop包含2个基本组件:HDFS和Yarn。前者负责存储文件,后者负责管理文件。 HDFS分布式文件系统 HDFS是Hadoop的分布式文件系统,它是Hadoop生态系统中的核心项目之一,是分布式计算中数据存储管理基础。 Yarn资源管理框架 Yarn(Yet Another Resource Negotiator)是Hadoop 2.0中的资源管理器,它可为上层应用提供统一的资源管理和调度。 准备工作 Linux系统和已经安装jdk jdk的安装步骤参考: https://www.bili

专注编程和人工智能! 1439

大模型风电功率预测:短期,超短期,中长期的完整实现与代码详解

本文全面介绍了基于深度学习大模型的风电功率预测方法,涵盖超短期(15分钟-1小时)、短期(1-6小时)和中长期(1天-1周)三种时间尺度。文章详细阐述了数据准备与特征工程,包括数据收集、预处理和可视化分析。针对不同时间尺度,分别介绍了Temporal Fusion Transformer (TFT)、Informer和N-BEATS模型的构建、训练与评估方法,并提供了完整的开源代码实现。此外,文章还探讨了模型部署与生产环境集成,包括模型保存与加载、实时预测API以及模型监控与再训练。最后,文章总结了关键创新

专注AI大模型,软件混淆,授权 1888

HDFS 笔记配置、启动

下载安装Hadoop、JDK、SSH(SSH要求免密访问) 修改Hadoop配置文件:   1、../hadoop/etc/hadoop/core-site.xml <!--配置HDFS默认的文件地址及端口--><property> <name>fs.defaultFS</name> <value>hdfs://lo...

LuckyTHP 279

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

HADOOP集群搭建

集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起(也就是说需要分别部署HDFS集群和YARN集群,但是这两个集群在一个机器上部署) HDFS集群: 负责海量数据的存储,集群中的角色主要有 NameNode / DataNode YARN集群: 负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager /No...

chunguang.yao的博客 378

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

3.Hadoop---集群配置

无

qq_24223159的博客 1234

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

高可用集群之~ 三:hadoop

高可用集群之~ 三:hadoop3.1 配置主节点的 Hadoop 环境3.1.1 进入/opt/bigdata/hadoop260/etc/hadoop 与普通的集群相比,hadoop-yarn高可用集群配置的不同之处在于配置core-site.xml , hdfs-site.xml , yarn-site.xml3.1.2配置 hadoop-env.sh3.1.3 配置 mapred-env.sh3.1.4 配置 yarn-env.sh3.1.5 配置 core-site.xml (配置完此步,需要在

cai_and_luo的博客 618

hadoop集群搭建总结

通常,集群里的一台机器被指定为NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves 官方地址:(http://hadoop.apache.org/common/docs/r0.19.2/cn/cluster_setup.html) 1 先决条件 确保在...

diaoqi5743的博客 594

10-hdfs-hdfs搭建

hdfs的优缺点比较:       架构图解分析:  nameNode的主要任务:   SNameNode的功能: (不是NN的备份, 主要用来合并fsimage)   合并流程:       dataNode的主要功能:   HDFS上传文件思想:        hdfs用于一般用于处理离线数据文件, 存储方式为block副本, 集群规划使用完全式分部安装 一台作为NameNode,...

weixin_34376986的博客 86

hdfs完全分布式

HDFS完全分布式 `## 1、环境需求说明: -1. 三台机器的防火墙必须是关闭的. -2. 确保三台机器的网络配置畅通(NAT模式,静态IP,主机名的配置) -3. 确保/etc/hosts文件配置了ip和hostname的映射关系 -4. 确保配置了三台机器的免密登陆认证(克隆会更加方便) -5. 确保所有机器时间同步 -6. jdk和hadoop的环境变量配置 2、完全分布式文件配置 1.需要配置的文件($HADOOP_HOME/etc/hadoop/) - core-site.xml

qq_43196913的博客 316

05.大数据之HDFS的shell操作、java操作

一.遇到的一些错误问题一:集群搭建一些问题1.root和hardtop下启动start-all.sh权限不统一的问题,在root下启动后,下次开机在hardtop  下不能启动,因为目录已经占用,hardtop下目录写不了东西。我们可以在学习中直接选择root2. 启动不了,可能配置少了一些< ,>,字母等,看日志文件。3. 启动超时,如果一台没有配好,会造成超时。4. 配地址都用主机...

小茗同学IT的博客 603

hadoop-HA集群搭建,启动DataNode,检测启动状态,执行HDFS命令,启动YARN,HDFS权限配置,C++客户端编程,常见错误...

本篇博文为整理网络上Hadoop-HA搭建后出来的博客,参考网址为:http://blog.chinaunix.net/uid-196700-id-5751309.html 3.部署 3.1.机器列表 共5台机器(zookeeper部署在这5台机器上),部署如下表所示: NameNode JournalNode DataNode ZooK...

weixin_34392843的博客 944

Hadoop3简介与集群搭建

文章目录一、概念1. Hadoop是什么2. Hadoop优势(4高)3. Hadoop组成1)HDFS架构概述2)YARN架构概述3)MapReduce架构概述4)HDFS、YARN、MapReduce三者关系二、安装1. 前提条件2. 准备模板虚拟机3. 目录结构4. 分发命令与脚本配置1)scp(secure copy)安全拷贝a. 基本语法b. 例子2)rsync远程同步工具a. 基本语法b. 案例实操3)xsync集群分发脚本a. 需求分析:b. 脚本实现c. 测试脚本4)SSH无密登录配置a.

一名小码农的博客 1916

部署HDFS HA的环境

===>环境架构部署规划: bigdata1 NameNode ResourceManager Zookeeper JournalNode failOverController bigdata2 NameNode ResourceManager Zookeeper JournalNode failOverController big...

weixin_34327223的博客 81
上一篇: 保存
下一篇: Hadoop1.0和Hadoop2.0的区别
硅谷纵横
博客等级 码龄9年 26粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值