Hadoop入门笔记十四:HDFS架构原理个人文章

HDFS集群遵循主从架构。每个群集包括一个主节点和多个从节点。在内部,文件分为一个或多个块,每个块根据复制因子存储在不同的从节点计算机上。主节点存储和管理文件系统名称空间,即有关文件块的信息,例如块位置,权限等。从节点存储文件的数据块。主从各司其职,互相配合,共同对外提供分布式文件存储服务。当然内部细节对于用户来说是透明的。

HDFS遵循主从架构。每个群集包括一个主节点和多个从节点。其中:NameNode是主节点,负责存储和管理文件系统元数据信息,包括namespace目录结构、文件块位置信息等;DataNode是从节点,负责存储文件具体的数据块。两种角色各司其职,共同协调完成分布式的文件存储服务。SecondaryNameNode是主角色的辅助角色,帮助主角色进行元数据的合并。

NameNode是Hadoop分布式文件系统的核心,架构中的主角色。它维护和管理文件系统元数据,包括名称空间目录树结构、文件和块的位置信息、访问权限等信息。基于此,NameNode成为了访问HDFS的唯一入口。

内部通过内存和磁盘两种方式管理元数据。其中磁盘上的元数据文件包括Fsimage内存元数据镜像文件和editslog(Journal)编辑日志。

DataNode是HadoopHDFS中的从角色,负责具体的数据块存储。DataNode的数量决定了HDFS集群的整体数据存储能力。通过和NameNode配合维护着数据块。

除了DataNode和NameNode之外,还有另一个守护进程,它称为secondaryNameNode。充当NameNode的辅助节点,但不能替代NameNode。当NameNode启动时,NameNode合并Fsimage和editslog文件以还原当前文件系统名称空间。如果editslog过大不利于加载,SecondaryNameNode就辅助NameNode从NameNode下载Fsimage文件和editslog文件进行合并。

HDFS采用master/slave架构。一般一个HDFS集群是有一个Namenode和一定数目的Datanode组成。Namenode是HDFS主节点,Datanode是HDFS从节点,两种角色各司其职,共同协调完成分布式的文件存储服务。

HDFS中的文件在物理上是分块存储(block)的,块的大小可以通过配置参数来规定,参数位于hdfs-default.xml中:dfs.blocksize。默认大小是128M(134217728)。

为了容错,文件的所有block都会有副本。每个文件的block大小(dfs.blocksize)和副本系数(dfs.replication)都是可配置的。应用程序可以指定某个文件的副本数目。副本系数可以在文件创建的时候指定,也可以在之后通过命令改变。默认dfs.replication的值是3,也就是会额外再复制2份,连同本身总共3份副本。

HDFS支持传统的层次型文件组织结构。用户可以创建目录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文件系统类似:用户可以创建、删除、移动或重命名文件。

Namenode负责维护文件系统的namespace名称空间,任何对文件系统名称空间或属性的修改都将被Namenode记录下来。

HDFS会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件,形如:hdfs://namenode:port/dir-a/dir-b/dir-c/file.data。

在HDFS中,Namenode管理的元数据具有两种类型:

文件的各个block的具体存储管理由DataNode节点承担。每一个block都可以在多个DataNode上存储。

该模块可以说是我们在开发使用HDFS过程中使用最多的模块了,提供了一种Web页面浏览操作文件系统的能力,在某些场合下,比使用命令操作更加直观方便。

该模块可以列出当前集群成功加载的所谓配置文件属性,可以从这里来进行判断用户所设置的参数属性是否成功加载生效,如果此处没有,需要检查配置文件或者重启集群加载。

Pipeline,中文翻译为管道。这是HDFS在上传文件写数据过程中采用的一种数据传输方式。客户端将数据块写入第一个数据节点,第一个数据节点保存数据之后再将块复制到第二个数据节点,后者保存后将其复制到第三个数据节点。通俗描述pipeline的过程就是:Client->A->B->C

为什么datanode之间采用pipeline线性传输,而不是一次给三个datanode拓扑式传输呢?因为数据以管道的方式,顺序的沿着一个方向传输,这样能够充分利用每个机器的带宽,避免网络瓶颈和高延迟时的连接,最小化推送所有数据的延时。在线性推送模式下,每台机器所有的出口宽带都用于以最快的速度传输数据,而不是在多个接受者之间分配宽带。

ACK(Acknowledgecharacter)即是确认字符,在数据通信中,接收方发给发送方的一种传输类控制字符。表示发来的数据已确认接收无误。在pipeline管道传输数据的过程中,传输的反方向会进行ACK校验,确保数据传输安全。

默认副本存储策略是由BlockPlacementPolicyDefault指定。策略如下:第一块副本:优先客户端本地,否则随机

第二块副本:不同于第一块副本的不同机架。

第三块副本:第二块副本相同机架不同机器。

元数据(Metadata),又称中介数据,为描述数据的数据(dataaboutdata),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。

记录文件块和DataNode之间的映射信息,即哪个块位于哪个节点上。按存储形式分为内存元数据和磁盘元数据文件两种,分别存在内存和磁盘上。

为了避免两次持久化之间数据丢失的问题,又设计了Editslog编辑日志文件。文件中记录的是HDFS所有更改操作(文件创建,删除或修改)的日志,文件系统客户端执行的更改操作首先会被记录到edits文件中。

NameNode职责是管理元数据信息,DataNode的职责是负责数据具体存储,那么SecondaryNameNode的作用是什么?对很多初学者来说是非常迷惑的。它为什么会出现在HDFS中。从它的名字上看,它给人的感觉就像是NameNode的备份。但它实际上却不是。当HDFS集群运行一段事件后,就会出现下面一些问题:

因此为了克服这个问题,需要一个易于管理的机制来帮助我们减小editlogs文件的大小和得到一个最新的fsimage文件,这样也会减小在NameNode上的压力。SecondaryNameNode就是来帮助解决上述问题的,它的职责是合并NameNode的editlogs到fsimage文件中。

namenode元数据存储目录由参数:dfs.namenode.name.dir指定。dfs.namenode.name.dir属性可以配置多个目录,各个目录存储的文件结构和内容都完全一样,相当于备份,这样做的好处是当其中一个目录损坏了,也不会影响到hadoop的元数据,特别是当其中一个目录是NFS(网络文件系统NetworkFileSystem,NFS)之上,即使你这台机器损坏了,元数据也得到保存。

SecondaryNameNode在checkpoint的时候会将fsimage和editslog下载到自己的本机上本地存储目录下。并且在checkpoint之后也不会进行删除。如果NameNode中的fsimage真的出问题了,还是可以用SecondaryNamenode中的fsimage替换一下NameNode上的fsimage,虽然已经不是最新的fsimage,但是我们可以将损失减小到最少!

HDFS并不擅长存储小文件,因为每个文件最少一个block,每个block的元数据都会在NameNode占用内存,如果存在大量的小文件,它们会吃掉NameNode节点的大量内存。HadoopArchives可以有效的处理以上问题,它可以把多个文件归档成为一个文件,归档成一个文件后还可以透明的访问每一个文件。

例如:如果你只想存档一个目录/smallfile下的所有文件:

hadooparchive-archiveNametest.har-p/smallfile/outputdir这样就会在/outputdir目录下创建一个名为test.har的存档文件。注意:Archive归档是通过MapReduce程序完成的,需要启动YARN集群。

首先我们来看下创建好的har文件。使用如下的命令:hadoopfs-ls/outputdir/test.har

在查看har文件的时候,如果没有指定访问协议,默认使用的就是hdfs://,此时所能看到的就是归档之后的样子。此外,Archive还提供了自己的haruri访问协议。如果用haruri去访问的话,索引、标识等文件就会隐藏起来,只显示创建档案之前的原文件:HadoopArchives的URI是:har://scheme-hostname:port/archivepath/fileinarchivescheme-hostname格式为hdfs-域名:端口。

未压缩的SequenceFile文件由header、record、sync三个部分组成。其中record包含了4个部分:recordlength(记录长度)、keylength(键长)、key、value。每隔几个record(100字节左右)就有一个同步标记

基于record压缩的SequenceFile文件由header、record、sync三个部分组成。其中record包含了4个部分:recordlength(记录长度)、keylength(键长)、key、compressedvalue(被压缩的值)。每隔几个record(100字节左右)就有一个同步标记。

基于block压缩的SequenceFile文件由header、block、sync三个部分组成。block指的是recordblock,可以理解为多个record记录组成的块。注意,这个block和HDFS中分块存储的block(128M)是不同的概念。Block中包括:record条数、压缩的key长度、压缩的keys、压缩的value长度、压缩的values。每隔一个block就有一个同步标记。block压缩比record压缩提供更好的压缩率。使用SequenceFile时,通常首选块压缩。

THE END
1.Archivetheartifacts归档文件夹archive里个人存档处Archive the artifacts 归档文件夹 archive 里个人存档处 序言 Chrome浏览器很好用,感觉也很快,但是,也是有那么几个小瑕疵的。例如,Chrome浏览器无法设置安装路径,只能安装在默认的C盘,个人信息默认放在C盘,详细路径如下: C:\Users\XXXX\AppData\Local\Google\Chrome\User Data\Defaulthttps://blog.51cto.com/u_16213620/8893609
2.PARA法则——《打造第二大脑》导读P3于是,重头戏来了:作者在这里提出了(那个被无数人拿来宣传的)PARA信息系统管理办法,这是一种对捕捉后的信息和文件按重要程度进行再分类的手法,即按照Project(项目)、Area(领域)、Resource(资源)和Archive(存档)等四个类别确定分类类型,并将文档对应归类的法则。作者解释,PARA这样的命名是整合于parallel(平行的)这一词https://www.jianshu.com/p/46c89ba41103
3.为什么要在完成电子邮件后存档(Archive)电子邮件archive邮件如果它是一份时事通讯,你读完了它,点击存档! (如果是您不想阅读的时事通讯或促销电子邮件,请取消订阅…然后存档!) 现在,您可以随时查看收件箱,查看和处理仍需要更多阅读,响应或操作的电子邮件。 让我知道事情的后续! 原文:http://philfreo.com/blog/archive-your-emails/https://blog.csdn.net/wxqee/article/details/86603351
4.Exchange2016归档功能设置保留策略就地存档ArchiveExchange2016 归档功能设置保留策略就地存档Archive 有一篇参考文章:http://blog.chinaunix.net/uid-31401119-id-5785989.html Exchange Server中的就地存档可帮助您重新获得对组织的邮件数据的控制,而无需个人存储(.pst)文件,并允许用户将邮件存储在存档邮箱中。存档邮箱是为用户的主邮箱启用的其他邮箱。存档邮箱在 https://www.cnblogs.com/life512/p/13889302.html
5.January2010四季*一生Archive for January, 2010 《风筝》——蔡琴 看 谁在心上 看 谁的过往 我盼 有一个人 伴我飞向幸福的地方 多么想 自由飞翔 随风 尽诉希望 我愿找到一片天空靠岸 不愿陷在命运里牵绊 我就像风筝飘扬 风起时幸福在望 哪管最后一身风霜 曾经那么靠近天堂https://siyifeng.wordpress.com/2010/01/
6.了解个人存档:Exchange2010帮助MicrosoftLearn“个人存档”(也称为“内部部署存档”)可帮助您省掉个人存储 (.pst) 文件重新获得对组织内邮件数据的控制,并且允许用户将邮件存储在存档邮箱内,可在 OfficeOutlook Web App 或更高版本以及 Microsoft MicrosoftExchange Server 2010 内进行访问。 要了解与个人存档相关的管理任务吗?请参阅管理个人存档。 https://technet.microsoft.com/zh-cn/library/dd979795.aspx
7.SysInfoToolsArchiveRepair(文件修复工具)怎么用SysInfoToolsArchiveRepair是一款功能齐全的存档文件修复软件,它有着简约的操作界面,还适用对损坏的存档文件开展大批量恢复,彻底兼容Windows10、8、7、Vista、2003、XP和2000。【软件特点】实行好几个 SysInfoTools Archive Repair是一款功能齐全的存档文件修复软件,它有着简约的操作界面,还适用对损坏的存档文件开展大批量https://xiazai.zol.com.cn/baike/510733.shtml
8.GitHubtaoste/archiveGitHub Code Vault(GitHub 代码保险库)是由 GitHub Archive Program(GitHub 代码永久保存计划)设立的代码本档案库共含有 201 个胶卷,其中包括一个含有人类可读信息和指引的“指南胶卷”和 200 个软件存档胶卷该信息可在“内容目录”中找到,具体位置见本档案库每个胶卷的开头处。 每个胶卷中都有该信息,因此https://github.com/taoste/archive-program
9.OS+linuxcommand/LinuxCommand/Linuxcommand/linuxany_command > /dev/sda使用该命令,原始数据将被写到块设备,其结果是造成数据丢失。 wget http://some_untrusted_source -O- | sh不要从不信任的地方下载东西,这可能会获取恶意代码。 mv /home/yourhomedirectory/* /dev/null此命令将移动主目录中的所有文件到一个不存在的地方,你将再也看不到那些文件。 https://www.iteye.com/blog/223297
10.Linux压缩库archive使用腾讯云开发者社区冻结设置,打开存档,并准备读取条目。这是此调用的最通用版本,它接受四个回调函数。大多数客户端都希望使用archive_read_open_filename(),archive_read_open_FILE(),archive_read_open_fd()或archive_read_open_memory()。库调用客户端提供的函数从存档中获取原始字节。 https://cloud.tencent.com/developer/article/1619901
11.AmazonS3常见问题AWS云存储怎么用“还原”会在 S3 Standard 存储类中创建数据的临时副本,同时使 S3 Glacier Deep Archive 中的已归档数据保持完整。您可以以天为单位指定将临时副本存储在 S3 上的时间。然后,可以通过 Amazon S3 GET 从 S3 中请求访问已归档对象的临时副本。 恢复存档对象时,您可以在请求正文的层级元素中指定以下选项之一:标准是http://aws.amazon.com/cn/s3/faqs/
12.自动存档设置的含义是什么?注意:所创建的文件夹如果包含的项的类型与“收件箱”、“日历”、“任务”、“便笺”或“日记”相同,则其生存期也为默认的六个月。 例如,创建的用于从同事处接收状态报表的邮件文件夹或者为个人联系方式创建的联系人文件夹。 确定项生存期 项类型 https://support.office.com/article/444BD6AA-06D0-4D8F-9D84-903163439114
13.如何删除归档日志文件deletearchivelogmydream20140824一个ORACLE归档日志经常满,表现为/oraarchive 这个文件空间占用100%大家一定抱怨ORACLE为何没有归档维护工具,很多人直接删除了事,错了,ORACLE有,而且很智能,可以正确的删除归档和FLASHBACK,不过切记,ORACLE归档日志对于ORACLE的数据恢复和备份非常重要,不到万不得已不要删除归档日志。 http://blog.chinaunix.net/uid-29980917-id-4624762.html
14.archiveiconcopy the entirearchive(along with the initial full backup) to a local hard disc or network share disc. seagate.com seagate.com 若怀疑某些文件较大,请先 将整个存档(连同初始完整备份)复制到本地硬盘或网络共享磁盘。 seagate.com seagate.com http://cn.linguee.com/%E8%8B%B1%E8%AF%AD-%E4%B8%AD%E6%96%87/%E7%BF%BB%E8%AD%AF/archive+icon.html
15.ChatGPT新增聊天记录存档功能ChatGPT新增聊天记录存档功能 智东西12月21日消息, 今日,OpenAI宣布在ChatGPT中推出聊天记录存档功能,用户在侧边栏点选“Archive chat”即可存档,并随时在设置中查看已存档的聊天记录。目前该功能在网页端和iOS版本推出,安卓版也将很快推出。https://zhidx.com/news/40730.html
16.欢迎注册中国制造网,专业的电子商务B2B平台(三)我们从第三方获取您的个人信息 我们可能会在您的授权同意范围内从第三方(我们的合作方)处收集并使用您的个人信息。我们保证严格按照与第三方之间的合同我们还会将本政策的旧版本存档,若您需要查阅旧版本可通过上述联系方式与我们联系。 我们的任何修改都会将您的满意度置于首位。最后,我们鼓励您在每次使用中国https://www.made-in-china.com/help/policy-cn/
17.行业动态丹麦国家档案馆发布《数字存档政策》该政策传达了丹麦国家档案馆在“存档数字原生数据”(archive digitally created data)方面的愿景和解决方案框架。该政策规定了一些原则,这些原则为我们在数字存档过程中的选择指明了方向,并确定了我们为实现这一愿景而采取的行动领域。 数字存档涵盖数据生命周期https://mp.weixin.qq.com/s?__biz=MzI0NzYxNzI4Ng==&mid=2247491587&idx=1&sn=86a532e641bc4206d1e1e4abec7adc66&chksm=e9afe26aded86b7c6e1d9bd0ee6fc5323dd8a57d24b33c861cf24fa1d5b2d47f50b8a184fc01&scene=27
18.《恶灵附身》全收集品图文攻略详细解析个人文件+地图残片+报纸+海报《恶灵附身》全收集品:个人文件,文件,地图残片,报纸,失踪者海报,录音带图文收集攻略 | The Evil Within Collectibles Guide 在本作中总共有106件需要主动搜寻的收集品,其中涵盖了日志,资料,地图碎片,报纸,寻人启事,磁带和钥匙7大类,涉及到奖杯“Every Nook and Cranny | 处处有惊喜”。收集品多周目继承,所以无需https://gl.ali213.net/html/2014-12/55925.html
19.archive(英语单词)n. 存档材料,档案;档案室 v. 把……存档,把……归档 [ 复数 archives 第三人称单数 archives 现在分词 archiving 过去式 archived 过去分词 archived ]词典双解 柯林斯英汉双解大词典 archive /?ɑ?ka?v/ CET6+ TEM8 ( archiving, archived, archives )1.N-COUNT Archives are a collection of https://baike.baidu.com/item/archive/62077369