Hadoop3:HDFS的架构组成

一、官方文档

我这里学习的是Hadoop3.1.3版本,所以,查看的也是3.1.3版本的文档

在这里插入图片描述
Architecture模块最下面
在这里插入图片描述

二、HDFS架构介绍

HDFS架构的主要组成部分,是一下四个部分

1、NameNode(NN)

就是Master节点,它是集群管理者。

1、管理HDFS的名称空间
2、配置副本策略
3、管理数据块(Block)映射信息
4、处理客户端读写请求

2、DataNode

就是Slave节点,干活的。NameNode下达程序命令,DataNode执行具体命令。
1、存储实际的数据块
2、执行数据块的读写操作

3、Client

客户端,web页面也算是客户端,终端命令也是客户端来执行的。

1、切分文件,文件上传到HDFS集群的时候,Client将文件切分成一个个的Block,然后,进行上传
2、与NameNode交互,获取文件的位置信息
3、与DataNode交互,读写数据
4、Client提供一些命令来管理HDFS,比如NameNode的格式化命令
5、Client可以通过一些命令来访问HDFS,比如对HDFS的增删改查操作

4、Secondary NameNode(2NN)

它不是NameNode的热备,当NameNode节点挂掉的时候,它并不能马上替换NameNode并提供服务
实际场景中,一般用两个NameNode来实现高可用,2NN一般不用

1、辅助NameNode,分担工作量
2、在紧急情况下,可辅助恢复NameNode

三、思考题

1、NameNode中的Block大小如何设置?设置多大合适?怎么计算?

1、配置参数dfs.blocksize
在Hadoop2.x/3.x版本中默认大小是128M,1.x版本中是64M。
默认配置在hdfs-default.xml中,我们可以在hdfs-site.xml中自定义配置

<property><name>dfs.blocksize</name><value>134217728</value><description>The default block size for new files, in bytes.You can use the following suffix (case insensitive):k(kilo), m(mega), g(giga), t(tera), p(peta), e(exa) to specify the size (such as 128k, 512m, 1g, etc.),Or provide complete size in bytes (such as 134217728 for 128 MB).</description>
</property>

2、Block大小计算逻辑

这个Block大小的确定,主要受寻址时间、传输时间、磁盘性能3个因素影响。
一般地
寻址时间为传输时间的1%时,则为最佳状态。
假设,寻址时间是10ms,则最佳传输时间是10ms/0.01=1000ms=1s
于是,根据这个传输时间及磁盘的读写速率,计算出Block的大小设置

一般性配置
机械硬盘,我们就设置为128MB
固态硬盘,我们就设置为256MB

3、设置太小或太大会有什么弊端?

设置太小
那么,HDFS里面会有很多的小文件,这样,会增加寻址时间,影响性能。

设置太大
会降低HDFS的并发能力,影响性能。

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

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

相关文章

CSS 样式清单整理:文字超出部分显示省略号和设置placeholder的字体样式

单行文本的溢出显示省略号&#xff08;一定要有宽度&#xff09; p{width:200rpx;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;}多行文本溢出显示省略号 p {display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;}设…

word格式技巧

文章目录 论文格式技巧论文交叉引用怎么弄论文的页码怎么弄 论文格式技巧 论文交叉引用怎么弄 1.取消文献原有的编号 2.定义新编号 3.具体编号设置 4.在引用的地方插入&#xff0c;具体引用选项卡–>交叉引用–>选择后插入 2. 4. 论文的页码怎么弄 假设我们有这样一…

Rust 常用 Web 开源代码库

Rust的web开发有许多优秀的开源库可供选择&#xff0c;以下是一些值得关注的库&#xff1a; Web框架&#xff1a; Axum&#xff1a;由Rust社区的异步事实标准Tokio团队开发&#xff0c;以高性能和强大的异步支持著称。其特点包括使用无宏API将请求路由到处理程序、使用提取器以…

Oracle完整截取汉字的方法

在Oracle数据库中&#xff0c;要完整截取汉字&#xff0c;你通常应该使用SUBSTR函数而不是SUBSTRB函数&#xff0c;因为SUBSTRB是基于字节进行截取的&#xff0c;而汉字在UTF-8等编码中通常占用多个字节。使用SUBSTR则能确保按照字符来截取&#xff0c;从而避免截断汉字。 SUB…

Nginx内存池源码刨析

Nginx 内存池刨析 实例源码刨析 #define BLOCK_SIZE 16 //每次分配内存块大小#define MEM_POOL_SIZE (1024 * 4) //内存池每块大小int i 0, k 0;int use_free 0;ngx_pagesize getpagesize();//获取系统的页大小//printf("pagesize: %zu\n",ngx_pagesize);ch…

SpringBoot @DS注解 和 DynamicDataSource自定义实现多数据源的2种实现方式

前言 在实际的项目中&#xff0c;我们经常会遇到需要操作多个数据源的情况&#xff0c;SpringBoot为我们提供了多种实现多数据源的方式。本文将介绍两种常见的方式&#xff1a;使用DS注解实现多数据源的切换以及使用DynamicDataSource自定义实现多数据源的切换。 我们将分别介…

LINUX 入门 9

LINUX 入门 9 day11 20240507 耗时&#xff1a;120min 课程链接地址 第9章 百万并发的服务器 1 百万并发项目介绍与并发概念讲解 书接上回&#xff0c;把server做成并发量百万级的服务量 装4台虚拟机 vmware右下角可以设置虚拟机内存 内核 没敲&#xff0c;就看了一下&a…

Python 正则表达式 re . 符号

Python 正则表达式 re . 符号 正文示例1示例2 正文 用法说明&#xff1a;(点号) 在默认模式下&#xff0c;匹配除换行符以外的任意字符。 如果指定了 flags 参数 DOTALL &#xff0c;它将匹配包括换行符在内的任意字符。 示例1 import restr1 abcde print(re.search(., str…

[SWPUCTF 2021 新生赛]PseudoProtocols、[SWPUCTF 2022 新生赛]ez_ez_php

[SWPUCTF 2021 新生赛]PseudoProtocols 打开环境&#xff0c;提示hint.php就在这里&#xff0c;且含有参数wllm 尝试利用PHP伪协议读取该文件 ?wllmphp://filter/convert.base64-encode/resourcehint.php//文件路径php://filter 读取源代码并进行base64编码输出。 有一些敏…

scikit-learn实现单因子线性回归模型

1.是什么&#xff1a; 针对机器学习提供了数据预处理&#xff0c;分类&#xff0c;回归等常见算法的框架 2.基于scikit-learn求解线性回归的问题&#xff1a; 2.1.求解a&#xff0c;b对新数据进行预测&#xff1a; 2.2评估模型表现&#xff08;y和y’的方差MSE&#xff09;…

Python轴承故障诊断 (18)基于CNN-TCN-Attention的创新诊断模型

往期精彩内容&#xff1a; Python-凯斯西储大学&#xff08;CWRU&#xff09;轴承数据解读与分类处理 Python轴承故障诊断 (一)短时傅里叶变换STFT Python轴承故障诊断 (二)连续小波变换CWT_pyts 小波变换 故障-CSDN博客 Python轴承故障诊断 (三)经验模态分解EMD_轴承诊断 …

【Linux系列】file命令

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

hadoop学习---基于Hive的数据仓库相关函数机制及其优化方案

Hive相关函数&#xff08;部分&#xff09;&#xff1a; if函数: 作用: 用于进行逻辑判断操作 语法: if(条件, true返回信息,false返回信息) 注意: if函数支持嵌套使用 select if(aa,’bbbb’,111) fromlxw_dual; bbbb select if(1<2,100,200) fromlxw_dual; 200nvl函数:…

25_Scala集合Tuple

文章目录 tuple1.元组定义2.Tuple元素访问3.如果元素的len2&#xff0c;称之为键值对对象&#xff0c;也称之为对偶元组4.补充上节Map5.Map集合遍历6.集合之间相互转化 tuple 概念&#xff1a;scala语言采用特殊的方式将无关的数据作为一个整体&#xff0c;组合在一起’ 1.元…

2024爆火的AI设备Rabbit R1到底是什么?有人说它是AI的iPhone时刻,有人说它是套壳的安卓

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

c++编程(10)——string

欢迎来到博主的专栏——c编程 博主ID&#xff1a;代码小豪 文章目录 <string>string类的接口构造、析构、与赋值重载构造函数赋值重载运算符 元素访问operator[] 容量修改器对string对象的操作迭代器 std::string是定义在c标准的一个类&#xff0c;定义在标准库<strin…

Unity 性能优化之图片优化(八)

提示&#xff1a;仅供参考&#xff0c;有误之处&#xff0c;麻烦大佬指出&#xff0c;不胜感激&#xff01; 文章目录 前言一、可以提前和美术商量的事1.避免内存浪费&#xff08;UI图片&#xff0c;不是贴图&#xff09;2.提升图片性能 二、图片优化1.图片Max Size修改&#x…

龙兵知识付费系统开发,教育机构如何利用小程序引流?

时代进步的好处是人们需求也越来越多&#xff0c;家长要求孩子学习十八般武艺&#xff0c;唱歌绘画舞蹈钢琴一样不能落下&#xff0c;各种培训需求只增不减&#xff0c;培训机构当然也越来越多。针对小孩子的才艺培训、针对大学生的考研考证培训、针对在职人士的技能培训和企业…

Momentum靶机系列Momentum2

先进行arp扫描&#xff1a; 获得渗透靶机的IP&#xff1a;192.168.13.142 扫描一下靶机的使用的端口&#xff1a; 具有tcp端口和http服务的80端口 可以扫描一下80端口的http服务&#xff1a; 可以发现一个网站&#xff1a;http://192.168.13.142 打开该网址&#xff1a; 查看…

Flink 部署模式

目录 概述 部署模式 会话模式&#xff08;Session Mode&#xff09; 单作业模式(Per-Job Mode) 应用模式(Application Mode) 运行模式&#xff08;资源管理模式&#xff09; Standalone运行模式 会话模式部署 应用模式部署 Yarn运行模式 会话模式部署 单作业模式部…