【hadoop】hadoop的体系架构

hadoop的体系架构

  • HDFS的体系架构
    • NameNode
      • edits文件(客户端的操作日志)
      • fsimage文件(元信息文件)
    • DataNode
    • Secondary NameNode
  • Yarn的体系架构
  • HBase
  • 主从架构的单点故障的问题

HDFS的体系架构

NameNode

NameNode:主节点
职责:
(1)管理HDFS
(2)接收客户端的请求:数据上传,数据下载
(3)维护HDFS:维护edits文件(客户端的操作日志)、维护fsimage文件(元信息文件)

所处路径:
$HADOOP_HOME/tmp/dfs
( /root/training/hadoop-2.7.3/tmp/dfs )
在这里插入图片描述

edits文件(客户端的操作日志)

所处路径:
$HADOOP_HOME/tmp/dfs/name/current
( /root/training/hadoop-2.7.3/tmp/dfs/name/current )
在这里插入图片描述
edits_inprogress_0000000000000000105是当前正在操作的日志,所有的edits文件都是二进制文件,使用一般的编辑器查看不了,所以可以使用下面这个命令来进行查看:

hdfs oev -i edits_inprogress_0000000000000000105 -o ~/a.xml
# -i 后接输入文件(想查看的文件) -o后接输出文件

这里我们先对dfs进行一个创建目录的操作,然后这个操作也会被hdfs的日志记录下来

hdfs dfs -mkdir /tools

进行创建操作后,使用日志查看器进行查看(相当于转化成xml格式文件进行查看)

hdfs oev -i edits_inprogress_0000000000000000105 -o ~/a.xml
vi a.xml

在这里插入图片描述

<RECORD>标签中就是一条条操作的记录,操作的行为是创建文件夹(<OPCODE>OP_MKDIR</OPCODE>),创建的目录是tools(<PATH>/tools</PATH>)

如果hdfs的元信息文件损坏,我们则可以通过日志文件进行恢复。

fsimage文件(元信息文件)

记录的是数据块的位置信息,冗余信息
位置:$HADOOP_HOME/tmp/dfs/name/current

下面将jdk的压缩包进行上传,fsimage文件中则会记录数据块的位置信息和冗余度。

hdfs dfs -put jdk-8u181-linux-x64.tar.gz /tools

提供元信息查看器

hdfs oiv -i fsimage_0000000000000000104 -o ~/b.xml -p XML

DataNode

DataNode:从节点
1、职责:按照数据块来保存数据:1.x:64M 2.x:128M
2、数据块的位置
$HADOOP_HOME/tmp/dfs/data/current/BP-90413187-192.168.157.111-1582475681214/current/finalized/subdir0/subdir0
在这里插入图片描述
Demo:上传数据 hdfs dfs -put jdk-8u181-linux-x64.tar.gz /tools,大概204M

在这里插入图片描述

数据块相加起来的大小就是之前上传jdk文件的大小。

设置数据块冗余度的一般原则:冗余度跟数据节点个数一致,最大不超过3

Secondary NameNode

Secondary NameNode:第二名称节点,跟NameNode运行在一起
1、不是NameNode热备
2、职责:定期进行日志信息的合并:把edits----> fsimage文件
3、重点:掌握日志合并的过程(为什么Secondary NameNode要和NameNode运行在一起)

在这里插入图片描述
(1)将NameNode的edits日志和fsimage元信息文件下载至secondaryNameNode(copy)

在这里插入图片描述

(2)secondaryNameNode将edits日志和fsimage元信息合并成fsimage.check文件
(3)secondaryNameNode将fsimage.check文件上传到NameNode,NameNode对fsimage.check文件再进行维护。

这也解释了为什么Secondary NameNode要和NameNode运行在一起,因为在同一机台上,可以大幅度提高下载的速度和上传速度。

在下载和上传期间,会生产新的edits文件,这个时候会先暂存在edits_inprogress中,等到其他edits上传完成,又变成新的edits文件,继续进行下载操作。

合并发生的时机?
当HDFS发出 检查点( checkpoint ) 的时候,触发进行合并。
默认∶(1)每隔60分钟,参数: fs.check.peroid
(2)当edits文件达到64M,参数: fs.check.size

补充一点:检查点
(1)HDFS:触发日志的合并
(2)Oracle:会以最高优先级唤醒数据库的写进程,写脏数据
(3)Spark和Flink:容错机制

Yarn的体系架构

1、ResourceManager:主节点
职责:
(1)接收客户端的请求:执行MapReduce任务的请求
(2)资源的分配:CPU、内存、网络
(3)任务的分配:NodeManager

2、NodeManager:从节点
职责:
(1)从ResourceManager获取任务和资源
(2)执行任务

3、Yarn调度MapReduce任务的过程

在这里插入图片描述
(1)客户端发起任务 hadoop jar ***
(2)JobClient.java向ResourceManager请求创建任务ID
(3)JobClient.java将任务(jar文件)上传到HDFS
(4)JobClient.java向HDFS获取元信息(数据元信息、任务元信息)
(5)JobClient.java向ResourceManager提交任务:任务ID、数据元信息、任务元信息
(6)ResourceManager对任务进行初始化(谁来执行、资源怎么分配)
(7)ResourceManager将任务分配给NodeManager
(8)启动Application Container,任务都运行在 Container中。
(9)NodeManager根据第七步分配的数据和任务的元信息,向HDFS获取数据和任务。

为什么NodeManager和DataNode在同一机台?
因为NodeManager根据ResourceManager分配的数据和任务的元信息,向HDFS的DataNode获取数据和任务,如果在同一机台,获取的速度会很快,大大提高了性能。

4、Yarn的资源分配方式

(1)FIFO Scheduler 先来先得,问题:没有考虑任务的优先级
(2)Capacity Scheduler:容器管理的调度规则,允许多个组织共享集群的资源
(3)Fair Scheduler:公平调度原则,假设:任务具有相同的优先级,平均分配系统的资源。如果加入权重,那么会根据权重的占比来进行分配。
在这里插入图片描述

HBase

HBase:基于HDFS之上的NoSQL数据库
1、HMaster:主节点
2、RegionServer:从节点
3、ZooKeeper:当成“数据库”

在这里插入图片描述

主从架构的单点故障的问题

主从架构的单点故障的问题,需要实现HA(High Availablity高可用性)

在这里插入图片描述
HA(高可用性)核心思想:多几个主节点,但只有一个主节点处于Active状态,其他的主节点处于StandBy,一旦处于Active的主节点损坏,那么可以借助ZooKeeper激活另外的主节点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/2408.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023网络安全面试题汇总(附答题解析+配套资料)

随着国家政策的扶持&#xff0c;网络安全行业也越来越为大众所熟知&#xff0c;相应的想要进入到网络安全行业的人也越来越多&#xff0c;为了更好地进行工作&#xff0c;除了学好网络安全知识外&#xff0c;还要应对企业的面试。 所以在这里我归总了一些网络安全方面的常见面…

Vue中的事件处理

一&#xff0c;基本使用 1.使用v-on:事件名或者事件名绑定事件 常见的事件有&#xff1a; onclick, 鼠标单击事件&#xff1b; ondblclick, 鼠标双击事件&#xff1b;onmousedown,鼠标按下去的事件&#xff1b;onmouseup,鼠标弹起事件&#xff1b; onmouseover,onmouseente…

巧妙使用 CSS 渐变来实现波浪动画

目录 一、波浪的原理 二、曲面的绘制 三、波浪动画 四、文字波浪动画 五、总结一下 参考资料 之前看到coco[1]的这样一篇文章&#xff1a;纯 CSS 实现波浪效果&#xff01;[2]&#xff0c;非常巧妙&#xff0c;通过改变border-radius和不断旋转实现的波浪效果&#xff0c…

MiniGPT4系列之二推理篇命令行方式:在RTX-3090 Ubuntu服务器推理详解

MiniGPT4系列之一部署篇&#xff1a;在RTX-3090 Ubuntu服务器部署步骤详解_seaside2003的博客-CSDN博客 MiniGPT4系列之二推理篇命令行方式&#xff1a;在RTX-3090 Ubuntu服务器推理详解_seaside2003的博客-CSDN博客 MiniGPT4系列之三模型推理 (Web UI)&#xff1a;在RTX-309…

中国国债发行数据集(2002-2023)

国债是由国家发行的债券&#xff0c;由于国债的发行主体是国家&#xff0c;所以它具有最高的信用度&#xff0c;被公认为是最安全的投资工具。国债按照交易市场的不同分为三类&#xff0c;即银行间市场国债、交易所市场国债和柜台市场国债&#xff1b;按照交易方式的不同分为三…

git使用问题记录-权限

注意点&#xff1a; 1、在远程仓库中直接创建项目时&#xff0c;默认分支为main 2、git push报错 原因&#xff1a;即使是项目文件的创建者&#xff0c;但上层目录的权限为developer&#xff0c;无法push项目&#xff0c;找上层管理员修改权限为maintainer或owner可push代码…

电路分析 day01 一种使能控制电路

本次分析的电路为 一种使能控制电路 &#xff08;站在别人的肩膀上学习&#xff09; 资料来源 &#xff1a; 洛阳隆盛科技有限责任公司的专利 申请号&#xff1a;CN202022418360.7 1.首先查看资料了解本次电路 1.1 电路名称&#xff1a; 一种使能控制电路 1.2 电路功能…

C++基础算法高精度篇

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C算法 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 主要讲解了高精度算法的四种常用的计算 文章目录 Ⅲ. 高精度Ⅲ. Ⅰ . …

【外卖系统】环境的搭建

搭建数据库 1.创建数据库&#xff0c;名字叫reiggie 2.导入数据库 创建Maven项目 1.创建项目 2.检查项目新建的是否有问题 3.导入pom.xml文件 4.导入application.yml文件 在从gittee上down的代码的基础上&#xff0c;修改一下端口号&#xff0c;数据库的名称什么的 …

传输层协议—网络

文章目录 1.TCP1.1TCP协议段格式1.2可靠机制1.2.1确认应答机制1.2.2超时重传机制1.2.3连接管理机制1.2.4流量控制机制1.2.5拥塞控制机制 1.3效率机制1.3.1滑动窗口机制1.3.2延迟应答机制1.3.3捎带应答机制 1.4粘包问题&#xff08;tcp问题&#xff0c;应用层的数据包&#xff0…

【uni-app】常用图标、头像汇总

在做小程序的时候&#xff0c;有时候需要各种图标和头像素材&#xff0c;而百度一堆基本都是收费的。所以&#xff0c;整理一些免费好用的图标&#xff0c;头像库&#xff1a; 1、iconfont-阿里巴巴矢量图标库 基本上常用的矢量图标&#xff0c;在这儿都有&#xff0c;而且可…

rt-thread rtc设备驱动开发

基于pico rtc设备驱动开发 I/O设备框架RTC设备功能配置——启用Soft RTC功能配置——启用NTP时间自动同步功能配置——启用硬件RTC RT-Thread 的 RTC &#xff08;实时时钟&#xff09;设备为操作系统的时间系统提供了基础服务。应用层对于 RTC 设备一般不存在直接调用的 API &…

基于ZYNQ阵列涡流检测系统硬件设计(一)

为实现阵列涡流检测系统总体功能&#xff0c;需研制一套多通道信号采集硬件系统&#xff0c;以搭配 软件编程实现分时激励和分时采集。基于以上要求&#xff0c;本章介绍了阵列涡流检测系统的硬 件模块设计。 3.1 阵列涡流检测系统总体设计 阵列涡流检测系统需要利用 DA …

分布式软件架构——传输链路

传输链路 链路指无源的点到点的物理连接。链路是计算机网络中的一个重要概念&#xff0c;它指的是连接两个网络设备的物理或逻辑路径。简单来说&#xff0c;链路就是电信号或数据在网络中传输的路径。在计算机网络中&#xff0c;链路可以分为物理链路和逻辑链路两种。物理链路…

【UI自动化测试】appium+python+unittest+HTMLRunner

进阶Python接口自动化测试必备教程&#xff08;2023全网最详细&#xff09; 简介 获取AppPackage和AppActivity 定位UI控件的工具 脚本结构 PageObject分层管理 HTMLTestRunner生成测试报告 启动appium server服务 以python文件模式执行脚本生成测试报告 下载与安装 下载需要自…

举例说明基于线性回归的单层神经网络网络(以梯度下降算法来求解权重的过程)...

我们将通过一个简单的例子来说明基于线性回归的单层神经网络&#xff0c;以及如何使用梯度下降算法来求解权重。 假设我们有以下数据集&#xff0c;表示学生的学习时间&#xff08;小时&#xff09;与他们的考试分数&#xff1a; 学习时间&#xff08;X&#xff09;&#xff1a…

线程池学习(五)线程工厂、线程池工厂

Executors 定义的Executor, ExecutorService, ScheduledExecutorService, ThreadFactory和Callable类的工厂和实用程序方法&#xff0c;我们称为线程池工厂。ThreadFactory 为定制化创建新线程的对象,我们称为线程工厂 前面几期的学习中&#xff0c;我已经初步会使用线程池了&…

MySQL内置函数

内置函数从实现的功能角度可以分为数值函数、字符串函数、日期和时间函数、流程控制函数、加密与解密函数&#xff0c;获取MySQL信息函数、聚合函数等。 1.数值函数 来源&#xff1a; 版权声明&#xff1a;本文为CSDN博主「清风拂来水波不兴」的原创文章&#xff0c;遵循CC 4…

Ceph简介及部署

Ceph Ceph一、存储基础1、单机存储设备2、Ceph 简介3、Ceph 优势5、Ceph 架构6、Ceph 核心组件7、OSD 存储后端8、Ceph 数据的存储过程9、Ceph 版本发行生命周期10、Ceph 集群部署 二、部署ceph-deploy Ceph 集群前环境配置1、关闭 selinux 与防火墙2、根据规划设置主机名3、配…

数据中心水浸事件,该如何找回安全?

数据中心是现代企业和组织中不可或缺的基础设施&#xff0c;承载着大量的敏感数据和关键业务运作。然而&#xff0c;水浸事件可能成为数据中心的巨大威胁&#xff0c;可能导致设备故障、数据丢失以及业务中断&#xff0c;给组织带来严重的损失和风险。 因此&#xff0c;为了保护…