02HDFS架构
https://www.cnblogs.com/zhoujingyu/p/5040957.html
https://blog.csdn.net/firstchange/article/details/78567456

HDFS数据存储元(block)
- 文件被切分成固定大小的数据块
- 默认数据块大小为64MB(Hadoop1.x),128MB(Hadoop2.x)可以配置
- 若文件大小不到64MB,则单独存成一个block,大小是多少,占磁盘多少。
- 一个文件存储方式
- 按大小被切分成若干个block,存储到不同节点上
- 默认情况下每个block都有三个副本
- Block大小和副本数通过Clien端上传文件时设置,文件上传成功后副本数可以变更,Block Size不可变更
HDFS设计思想:

NameNode(NN):
- NameNode主要功能:接受客户端的读写服务
- NameNode保存metadata信息,包括:
- 整个文件系统的目录信息
- 文件owership(所有者)和permissions(权限)
- 文件包含哪些block
- 文件包含的Block保存在哪个DataNode(由DataNode启动时上报)
- NameNode的metadata信息在启动后会加载到内存:
- metadata存储到磁盘文件名为“fsimage” (持久化,文件的权限信息,包含哪些block块)
- Block的位置信息不会保存到“fsimage”
- edits记录对metadata的操作日志
SecondaryNameNode(SNN):
- 它不是NameNode的备份(但可以做备份),它的主要工作是帮助NameNode合并edits log,减少NameNode启动时间
- SecondaryNameNode执行合并时机:
- 根据配置文件设置的时间间隔fs.checkpoint.period默认3600秒
- 根据配置文件设置edits log大小fs.checkpoint.size规定edits文件的最大值,默认是64MB
SecondaryNameNode合并流程:

DataNode(DN):
- 存储数据(block)
- 启动DataNode线程的时候会向NameNode汇报block信息(block位置信息),保存到NameNode的metadata(fsimage文件)中
- 通过向NameNode发送心跳保持与其联系(3秒一次),如果NameNode10分钟没有收到DataNode的心跳,则认为其已经lost,并copy其上的block到其他DataNode,以保证每个文件的每个Block至少保存有3个副本
Block的副本放置策略:

HDFS写流程

HDFS读流程

HDFS文件权限:
- 与Linux文件权限类似
- r:read;w:write;x:execute,权限x对于文件忽略,对于文件夹表示是否允许访问其内容
- 如果Linux系统用户zhangsan使用hadoop命令创建一个文件,那么这个文件在HDFS中owner就是张三
- HDFS的权限目的:阻止好人做错事,而不是阻止坏人做坏事。HDFS相信,你告诉我你是谁,我就认为你是谁
安全模式:
- namenode启动的时候,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作
- 一旦在内存中成功建立文件系统元数据的映射,则创建一个新的fsimage文件(这个操作不需要SecondaryNameNode)和一个空的编辑日志
- 此刻namenode运行在安全模式,即namenode的文件系统对于客户端来说是只读的(显示目录,显示文件内容等。写、删除、重命名都会失败)。
- 在此阶段Namenode手机各个datanode的报告,当数据块达到最小副本数以上时,会被认为是“安全”的,在一定比例(可以设置)的数据块被确定为“安全”后,再过若干时间,安全模式结束
- 当检测到副本数不足的数据块时,该块会被复制直到达到最小副本数,系统中数据块的位置并不是由namenode维护的,而是以块列表形式存储在datanode中。
HDFS安装:
完全分布式安装
- 下载
- 解压
- 检查java和ssh的免密码登录
- 修改core-site.xml
- 修改hdfs-site.xml
- 修改masters文件和slaves文件
- 格式化namenode
- start-hdfs.sh启动
02HDFS架构的更多相关文章
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- node服务的监控预警系统架构
需求背景 目前node端的服务逐渐成熟,在不少公司内部也开始承担业务处理或者视图渲染工作.不同于个人开发的简单服务器,企业级的node服务要求更为苛刻: 高稳定性.高可靠性.鲁棒性以及直观的监控和报警 ...
- 如何一步一步用DDD设计一个电商网站(二)—— 项目架构
阅读目录 前言 六边形架构 终于开始建项目了 DDD中的3个臭皮匠 CQRS(Command Query Responsibility Segregation) 结语 一.前言 上一篇我们讲了DDD的 ...
- 浅谈 jQuery 核心架构设计
jQuery对于大家而言并不陌生,因此关于它是什么以及它的作用,在这里我就不多言了,而本篇文章的目的是想通过对源码简单的分析来讨论 jQuery 的核心架构设计,以及jQuery 是如何利用javas ...
- 【深入浅出jQuery】源码浅析--整体架构
最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...
- DDD CQRS架构和传统架构的优缺点比较
明天就是大年三十了,今天在家有空,想集中整理一下CQRS架构的特点以及相比传统架构的优缺点分析.先提前祝大家猴年新春快乐.万事如意.身体健康! 最近几年,在DDD的领域,我们经常会看到CQRS架构的概 ...
- Microservice架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...
- 谈一下关于CQRS架构如何实现高性能
CQRS架构简介 前不久,看到博客园一位园友写了一篇文章,其中的观点是,要想高性能,需要尽量:避开网络开销(IO),避开海量数据,避开资源争夺.对于这3点,我觉得很有道理.所以也想谈一下,CQRS架构 ...
- Windows平台分布式架构实践 - 负载均衡
概述 最近.NET的世界开始闹腾了,微软官方终于加入到了对.NET跨平台的支持,并且在不久的将来,我们在VS里面写的代码可能就可以通过Mono直接在Linux和Mac上运行.那么大家(开发者和企业)为 ...
随机推荐
- 某些material英文翻译
chrome 铬,铬合金, 镀铬 matte 无光泽的,不光滑的 Decal 陶瓷的 duo color 双色 livery (这个没找到什么吊意思,我看像是一个类似打logo的材质)
- 7series 逻辑单元理解(更新中)
7series 逻辑单元理解 ug768和ug799文档介绍了7系列芯片中包含的基本逻辑单元,对其中常用的单元,进行下分析. 1.IOBUF单元 (1)真值表 (2)用途 the design e ...
- Thread.join方法的解析(转)
原文链接:https://www.cnblogs.com/huangzejun/p/7908898.html 1. join() 的示例和作用 1.1 示例 1 // 父线程 2 public cla ...
- SharePoint Framework 在Visual Studio Code中调试你的本地解决方案
博客地址:http://blog.csdn.net/FoxDave Visual Studio Code不知道大家都有没有,界面清爽,编辑快速,是一个非常好的前端开发工具.本文介绍如何使用Goog ...
- github咋用昂
github-trend:https://github.com/trending github-usingway:https://zhuanlan.zhihu.com/p/41899093 githu ...
- kbmMW 5.08.01压力测试报告
上图为客户端测试结果,运行14小时,无异常报告.基于洞主封装的HttpsysTransport,基于ClientQuery完成25万多次数据库访问操作,含查询并对查询结果进行修改及增加新记录,然后提交 ...
- 2019-03-01-day002-基础编码
01 昨日内容回顾 编译型: 一次性编译成二进制. 优点:质型速度快. 确定:开发效率低,不能跨平台. 解释型: 逐行解释,逐行运行. 优点:开发效率高,可以跨平台. 缺点:回字形效率低. pytho ...
- 2016ICPC-大连 Convex (几何)
We have a special convex that all points have the same distance to origin point. As you know we can ...
- 【Python】创建xml文档
#练习:创建xml文档 import xml.dom.minidom import codecs #在内存中创建一个空的文档 doc = xml.dom.minidom.Document() ...
- 2018最新APP Android UI设计规范
设计稿尺寸:从目前市场主流设备尺寸来看,我们要用 1080 x 1920 PX 来做安卓设计稿尺寸. 以1080x1920px作为设计稿标准尺寸的原由: 从中间尺寸向上和向下适配的时候界面调整的幅度 ...