014_HDFS存储架构、架构可靠性分析、副本放置策略、各组件之间的关系
1.HDFS存储架构
(1)HDFS 架构 —— 文件
1)文件切分成块(默认大小64M),以块为单位,每个块有多个副本存储在不同的机器上,副本数可在文件生成时指定(默
认3)
2)NameNode 是主节点,存储文件的元数据如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个
文件的块列表以及块所在的DataNode等等
3)DataNode 在本地文件系统存储文件块数据,以及块数据的校验和。
4)可以创建、删除、移动或重命名文件,当文件创建、写入和关闭之后不能修改文件内容。
(2)HDFS 文件权限
1)与Linux文件权限类似。
2)r: read; w:write; x:execute,权限x对于文件忽略,对于文件夹表示是否允许访问其内容。
3)如果Linux系统用户zhangsan使用hadoop命令创建一个文件,那么这个文件在HDFS中owner就是zhangsan。
4)HDFS的权限目的:阻止好人做错事,而不是阻止坏人做坏事。HDFS相信,你告诉我你是谁,我就认为你是谁。
(3)HDFS 架构 —— 组件功能
(4)HDFS 架构 —— NameNode
1)Namenode 是一个中心服务器,单一节点(简化系统的设计和实现),负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。
2)文件操作,NameNode 负责文件元数据的操作,DataNode负责处理文件内容的读写请求,跟文件内容相关的数据流不经过NameNode,只会询问它跟那个DataNode联系,否则NameNode会成为系统的瓶颈。
3)副本存放在哪些DataNode上由 NameNode来控制,根据全局情况做出块放置决定,读取文件时NameNode尽量让用户先读取最近的副本,降低带块消耗和读取时延。
4)Namenode 全权管理数据块的复制,它周期性地从集群中的每个Datanode接收心跳信号和块状态报告(Blockreport)。接收到心跳信号意味着该Datanode节点工作正常。块状态报告包含了一个该Datanode上所有数据块的列表。
(5)HDFS 架构 —— DataNode
1)一个数据块在DataNode以文件存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳
2)DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。
3)心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode 的心跳,则认为该节点不可用。
4)集群运行中可以安全加入和退出一些机器
2.HDFS 架构可靠性
(1)保障可靠性的措施
1)一个名字节点和多个数据节点
2)数据复制(冗余机制)
存放的位置(机架感知策略)
3)故障检测
数据节点
心跳包(检测是否宕机)
块报告(安全模式下检测)
数据完整性检测(校验和比较)
名字节点(日志文件,镜像文件)
4)空间回收机制
(2)常见的三个错误情况及其解决方案
1)文件损坏 2)网络或者机器失败 3)NameNode挂掉
(3)数据损坏(corruption)处理
1)当DataNode读取block的时候,它会计算checksum
2)如果计算后的checksum,与block创建时值不一样,说明该block已经损坏。
3)Client读取其它DN上的block。
4)NameNode标记该块已经损坏,然后复制block达到预期设置的文件备份数。
5)DataNode 在其文件创建后三周验证其checksum。
3.副本放置策略
4.HDFS架构中Client、NN、DN、SNN之间关系
(1)三者之间的架构图
(2)HDFS 架构 —— Client & SNN
(3)HDFS 架构 —— NN & SNN
secondnamenode:并非namenode的热备份,是辅助NameNode,分担其工作量,定期合并fsimage和dsedits,推送给NameNode,在紧急情况下,可辅助恢复NameNode。
当集群启动时,fsimage加载到NameNode内存中,然后不变,所在的操作保存在fsedits中。
NameNode内存中保存一份最新的,内存中的镜像文件等于fsimage+edits,定期合并fsimage和edits,否则会因为Edits文件过大将导致NameNode重启速度慢。SecondNameNode负责定期合并它们。
说明:此博客基本全是整理自云帆大数据梦琪老师的PPT
014_HDFS存储架构、架构可靠性分析、副本放置策略、各组件之间的关系的更多相关文章
- HDFS副本放置策略和机架感知
副本放置策略 的副本放置策略的基本思想是: 第一block在复制和client哪里node于(假设client它不是群集的范围内,则这第一个node是随机选取的.当然系统会尝试不选择哪些太满或者太忙的 ...
- Hadoop 副本放置策略的源码阅读和设置
本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/hadoop_block_placement_policy 大多数 ...
- HDFS副本放置策略
1.第一个副本放置在上传文件的DataNode上,如果是集群外提交,则随机挑选一个磁盘不太满,CPU不太忙的节点. 2.第二个副本放置在与第一个副本不同的机架上. 3.第三个副本放置在与第二个副本同机 ...
- openstack 5大组件之间的关系和基本架构思维导图
云计算是一种按使用量付费的模式,这种模式提供可用的/便捷的/按需的网络访问,进入可配置的计算资源共享池(资源包括网络/服务器/存储/应用软件和服务),这些资源能够被快速提供,只需投入很少的管理工作或与 ...
- 分布式存储系统可靠性系列五:副本放置算法 & CopySet Replication
本文来自网易云社区 作者:孙建良 在分布式存储系统 中说明了,在一定情况下,copyset的数量不是越多越好,在恢复时间确定的情况下,找到合适的copyset的数量可以降低数据丢失的概率. 在分布式存 ...
- 实现键值对存储(三):Kyoto Cabinet 和LevelDB的架构比較分析
译自 Emmanuel Goossaert (CodeCapsule.com) 在本文中,我将会逐组件地把Kyoto Cabinet 和 LevelDB的架构过一遍.目标和本系列第二部分讲的差点儿相 ...
- Ceph 架构以及原理分析
一.架构 Ceph在一个统一的系统中独特地提供对象,块和文件存储. Ceph高度可靠,易于管理且免费. Ceph的强大功能可以改变您公司的IT基础架构以及管理大量数据的能力. Ceph提供了非凡的可扩 ...
- Azure底层架构的初步分析
之所以要写这样的一篇博文的目的是对于大多数搞IT的人来说,一般都会对这个topic很感兴趣,因为底层架构直接关乎到一个公有云平台的performance,其实最主要的原因是我们的客户对此也非常感兴趣, ...
- MySQL的多存储引擎架构
支持多种存储引擎是众所周知的MySQL特性,也是MySQL架构的关键优势之一.如果能够理解MySQL Server与存储引擎之间是怎样通过API交互的,将大大有利于理解MySQL的核心基础架构.本文将 ...
随机推荐
- Java并发编程(十四)并发容器类
同步容器将所有对容器状态的访问都串行化,以实现线程安全性.这种方法的代价是严重降低并发性,当多个线程竞争容器的锁时,吞吐量将严重减低. 另一个方面,并发容器是针对多个线程并发访问设计的.在java 5 ...
- 分布式服务框架 Zookeeper(二)官方介绍
ZooKeeper:为分布式应用而生的分布式协调服务 ZooKeeper是一个为分布式应用而设计的分布式的.开源的协调服务.它提供了一套简单的原语,分布式应用利用这套原语可以实现更高层的服务,比如一致 ...
- ES6 学习笔记 (1)
笔记来源:廖雪峰老师的javascript全栈教程 ES6:JavaScript的标准,ECMAScript在不断发展,最新版ECMAScript 6标准(简称ES6)已经在2015年6月正式发布了, ...
- ps -aux --sort -rss |head 列出进程拿物理内存占用排序 使用ps aux 查看系统进程时,第六列即 RSS列显示的就是进程使用的物理内存。
ps -a Select all processes -u userlist Select by effective user ID (EUID) or name. ...
- 第一百七十二节,jQuery,动画效果
jQuery,动画效果 学习要点: 1.显示.隐藏 2.滑动.卷动 3.淡入.淡出 4.自定义动画 5.列队动画方法 6.动画相关方法 7.动画全局属性 一.显示.隐藏 jQuery 中显示方法为:. ...
- OpenGL ES andoid学习————1
package com.xhm.getaccount; import javax.microedition.khronos.egl.EGLConfig; import javax.microediti ...
- ionic2常见问题-启动后白屏问题
问题描述 app启动后大概有几秒白屏,才会显示首页,如下gif图 启动有白屏.gif 解决方法1 请查看以下3张图的标注 图 1-最初config.xml配置 图 2-更改后的splash配置 图 3 ...
- poj 2195(KM求最小权匹配)
题目链接:http://poj.org/problem?id=2195 思路:我们都知道KM使用来求最大权匹配的,但如果要求最小权匹配,只需把图中的权值改为负值,求一次KM,然后权值和取反即可. ht ...
- OKhttp3
针对上一博文订单调用用户使用默认数据交互方式,下面介绍下使用 Okhttp3网络数据交换方式. 1.订单启动类变化 package com.tycoon.orderService; import or ...
- ADODB
转自网友,看着挺全就转了,供大家学习研究. Recordset 对象的属性1.CursorType 属性AdOpenForwardOnly: 仅向前游标,默认值.除了只能在记录中向前滚动外,与静态游标 ...