技术标签: hdfs hadoop hdfs存储原理 大数据
将文件分为集群节点的部分数,分别存入每个节点中。
在前面我们了解了HDFS文件系统的数据安全,是依靠多个副本来确保的。
如何设置默认文件上传到HDFS中拥有的副本数量呢?可以在hdfs-site.xml中配置如下属性:
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
这个属性默认是3,一般情况下,我们无需主动配置(除非需要设置非3的数值)。
如果需要自定义这个属性,请修改每一台服务器的hdfs-site.xml文件,并设置此属性。
除了配置文件外,我们还可以在上传文件的时候,临时决定被上传文件以多少个副本存储。
hadoop fs -D dfs.replication=2 -put text.txt /tmp/
如上命令,就可以在上传test.txt的时候,临时设置其副本数为2。
对于已经存在HDFS的文件,修改dfs.replication属性不会生效,如果要修改已存在文件可以通过命令
hadoop fs -setrep [-R] 2 path
如上命令,指定path的内容将会被修改为2个副本存储。
-R选项可选,使用-R表示对子目录也生效。
我们可以使用hdfs提供的fsck命令来检查文件的副本数
hdfs fsck path [-files [-blocks [-locations]]]
fsck可以检查指定路径是否正常
-files可以列出路径内的文件状态
hdfs fsck /it/fb -files
-files -blocks 输出文件块报告(有几个块,多少副本)
hdfs fsck /it/fb -files -blocks
-files -blocks -locations 输出每一个block的详情
hdfs fsck /it/fb -files -blocks -locations
可以看到通过fsck命令我们验证了:
对于块(block),hdfs默认设置为256MB一个,也就是1GB文件会被划分为4个block存储。
块大小可以通过参数:
<property>
<name>dfs.blocksize</name>
<value>268435456</value>
<description>设置HDFS块大小,单位是b</description>
</property>
如上,设置为256MB
在hdfs中,文件是被划分了一堆堆的block块,那如果文件很大、以及文件很多,Hadoop是如何记录和整理文件和block块的关系呢?
答案就在于NameNode
edits文件,是一个流水账文件,记录了hdfs中的每一次操作,以及本次操作影响的文件其对应的block。
edits记录每一次HDFS的操作逐渐变得越来越大。
问题在于,当用户想要查看某文件内容,如:/tmp/data/test.txt
就需要在全部的edits中搜索(还需要按顺序从头到尾,避免后期改名或删除),效率非常低。
将全部的edits文件,合并为最终结果,即可得到一个FSImage文件。
NameNode基于edits和FSImage的配合,完成整个文件系统文件的管理。
对于元数据的合并,是一个定时过程,基于:
只要有一个达到条件就执行。
检查是否达到条件,默认60秒检查一次,基于:
对于元数据的合并,还记得HDFS集群有一个辅助角色:SecondaryNameNode吗?
没错,合并元数据的事情就是它干的
关键信息点:
结束!!!!!!
hy:35
不要对人性抱以过高的期待,永远要警惕人性深处的幽暗,法治的前提就是对人性败坏的假设。
文章浏览阅读3.7k次。Word文档被锁定了无法编辑,那就试试这4种方法吧!_docx被锁定无法编辑
文章浏览阅读2.6w次,点赞15次,收藏49次。这里我用华三的eNSP模拟器做实验,其实三种技术都是很简单的,我这里主要解释模拟实验的配置问题,就不过多的补充理论知识了哈。法一:VLAN的Hybrid端口类型首先,先说明一点,华三交换机端口默认类型是Access,用命令“display interface brief”就可以知道;华为交换机端口默认类型是Hybrid,用命令“display port vlan”查看。下面贴上实图:..._ensp 让pc1和pc3能互相通信,它们与pc2不能通信
文章浏览阅读475次。利用google搜索关键字入侵漏洞网站 1、到GoogLe,搜索一些关键字,edit.asp? 韩国肉鸡为多,多数为MSSQL数据库! 2、到Google ,site:cq.cn inurl:asp 3、利用挖掘鸡和一个ASP木马. 文件名是login.asp 路径组是/manage/ 关键词是went.asp 用'or'='or'来登陆 4、关键字:Co Net MI..._goingta 网站入侵
文章浏览阅读222次。I am using Automapper for making a copy of an objectMy domain can be reduced into this following exampleConsider I have a Store with a collection of Locationpublic class Store{public string Name { get..._automapper 子集合
基于Ehcache或Redis通过注解Cacheable,CachePut及CacheEvict实现
文章浏览阅读242次。Baumer工业相机堡盟工业相机如何通过BGAPISDK进行定序器编程:根据每次触发信号移动感兴趣区域(C#)
检查项目根目录下是否有一个名为或的文件。这是 Vite 项目的配置文件。在文件中,查看和部分是否包含vite和(对于 Vue 3)或(对于 Vue 2)。
如何在Linux服务器上安装Stable Diffusion WebUI
如果您遇到 ModuleNotFoundError: No module named ‘_socket’ 错误,这可能意味着您的 Python 安装存在问题或缺少了某些核心组件。对于不熟悉SD内部工作原理的用户来说,这无疑增加了解决问题的难度。(简称SD)这一强大技术的旅程中,我们有时可能会遇到一些始料未及的问题。其中,启动一键安装包时遭遇的“Python 无法找到模块‘urlib’”的报错,就是许多新手用户可能会碰到的一个挑战。在使用图生图功能时遇到错误提示,显示为“'Image'对象不支持下标操作”。
每到一个站点后,此时是有补充有消耗的,关注点:当前还剩余多少油。
文章浏览阅读650次。新的infludb版本已经取消了页面的访问方式,只能使用客户端来查看数据一、influxdb与传统数据库的比较库、表等比较:influxDB传统数据库中的概念database数据库measurement数据库中的表points表里面的一行数据influxdb数据的构成:Point由时间戳(time)、数据(field)、标签(tags)组成。Point属性传统数据库中的概念time每个数据记录时间...
如何查看 Root Service 切换完成的时间点