HDFS基本架构及概念介绍
简单介绍
l 设计思想
分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析;
l 在大数据系统中作用:
为各类分布式运算框架(如:mapreduce,spark,tez,……)提供数据存储服务
l 重点概念:文件切块,副本存放,元数据
HDFS概念和特性
首先,它是一个文件系统,用于存储文件,通过统一的命名空间——目录树来定位文件
其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色;
架构图

- namenode存储文件系统的元数据信息 -->基于内存,不会和磁盘发生交换
- datanode存储实际的数据块
- datanode定时发送心跳还有块报告信息给namenode
- 客户端通过与namenode通信获取文件的元数据信息,再通过获取到的元数据信息直接和datanode交互进行I/O操作
角色介绍
Client:客户端
文件切分,文件上传到HDFS时,Client负责将文件切分成一个个Block进行存储
与Namenode交互,获取文件的元数据信息
与Datanode交互,读取或写入数据
提供一些命令来管理HDFS
通过一些命令来访问HDFS
metadata:元数据
文件owership和permissions
文件大小和时间
(block列表,偏移量)
block每个副本位置(datanode上报)
block:文件线性切割块
偏移量:offset(byte)
分散存储在集群节点中
单一文件block大小一致,文件与文件可以不一致
可以设置副本数,不能超过节点数量,必须分散在不同节点上
已上传文件副本数可以调整,大小不能改变
一次写入多次读取,同时只允许一个用户写入,可以append追加数据
NameNode:主节点
管理 HDFS 的名称空间(NameSpace)
管理数据块(Block)映射信息
配置副本策略
处理客户端读写请求
DataNode:从节点
本地磁盘存储block,文件形式
同时存储block的元数据信息文件
启动DN时向NN汇报block信息
通过向namenode发送心跳保持联系(3s/次),如果namenode10分钟没有收到心跳,则认为其已经lost,并copy其上的block到其他DataNode
Secondary NameNode:非 NameNode 热备。NameNode 挂掉时,它并不能马上替换 NameNode 并提供服务
辅助 NameNode,分担其工作量
定期合并 fsimage和fsedits,并推送给NameNode
在紧急情况下,可辅助恢复 NameNode
(注:适合用来做数据分析,并不适合用来做网盘应用,因为,不便修改,延迟大,网络开销大,成本太高)
HDFS基本架构及概念介绍的更多相关文章
- HDFS 原理、架构与特性介绍--转载
原文地址:http://www.uml.org.cn/sjjm/201309044.asp 本文主要讲述 HDFS原理-架构.副本机制.HDFS负载均衡.机架感知.健壮性.文件删除恢复机制 1:当前H ...
- HDFS 原理、架构与特性介绍
本文主要讲述 HDFS原理-架构.副本机制.HDFS负载均衡.机架感知.健壮性.文件删除恢复机制 1:当前HDFS架构详尽分析 HDFS架构 •NameNode •DataNode •Senc ...
- 【Hadoop】一、HDFS简介及基本概念
当需要存储的数据集的大小超过了一台独立的物理计算机的存储能力时,就需要对数据进行分区并存储到若干台计算机上去.管理网络中跨多台计算机存储的文件系统统称为分布式文件系统(distributed fi ...
- HDFS简介及基本概念
(一)HDFS简介及其基本概念 HDFS(Hadoop Distributed File System)是hadoop生态系统的一个重要组成部分,是hadoop中的的存储组件,在整个Hadoop中 ...
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)
集群概念介绍(一)) 白宁超 2015年7月16日 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习 ...
- HBase的基本架构及其原理介绍
1.概述:最近,有一些工程师问我有关HBase的基本架构的问题,其实这个问题仅仅说架构是非常简单,但是需要理解.在这里,我觉得可以用HDFS的架构作为借鉴.(其实像Hadoop生态系统中的大部分组建的 ...
- 初步掌握HDFS的架构及原理
目录 HDFS 是做什么的 HDFS 从何而来 为什么选择 HDFS 存储数据 HDFS 如何存储数据 HDFS 如何读取文件 HDFS 如何写入文件 HDFS 副本存放策略 Hadoop2.x新特性 ...
- 理解MySQL——架构与概念
写在前面:最早接触的MySQL是在三年前,那时候MySQL还是4.x版本,很多功能都不支持,比如,存储过程,视图,触发器,更别说分布式事务等复杂特性了.但从5.0(2005年10月)开始,MySQL渐 ...
- hdfs文件系统架构详解
hdfs文件系统架构详解 官方hdfs分布式介绍 NameNode *Namenode负责文件系统的namespace以及客户端文件访问 *NameNode负责文件元数据操作,DataNode负责文件 ...
随机推荐
- jq动画设置图片抽奖
(因为自己是前端刚入门的小白所以中间出现很多问题,不过这对于我来说就是一次经验的积累) 预想效果:点击"开始",图片循环旋转,不是同时的效果,而是有一定的时间差.点击"开 ...
- Synchronized的几种用法
https://blog.csdn.net/luoweifu/article/details/46613015
- Linux 内存占用大排查
用命令 top 查看发现内存使用很高,可用内存很少,导致有些服务无法正常启动. 这时,可以用下面的命令查看占用内存前10的进程,改变 10 的数字,可以调整前几的个数. ps -aux | sort ...
- SummerNote 富文本编辑器 - Rails 集成
使用官方提供的CDN服务 将下面一段加入layout文件中 <link href="http://netdna.bootstrapcdn.com/bootstrap/3.3.5/css ...
- Java API使用
汉化版Java API使用 首次打开出现的问题 在首次打开API时,可能你会遇见这样的问题. 经过查阅,发现是因为文档的权限问题,文档未解锁造成的.这时候只需要给给它权限就可以. 首先关闭程序,单击右 ...
- git的使用方式总结
1.先用 git clone url 克隆下来项目 2.查看下载的项目里面有没有一个名字叫git的文件夹 3.用git branch查看当前所有的本地分支,绿色的代表当前所处的分支 4.若本地只有一个 ...
- python语法之函数2
高阶函数: def f(n): return n*n def foo(a,b,func): func(a)+func(b) ret=func(a)+func(b) return ret foo(1,2 ...
- 每日一练ACM 2019.0418
Problem Description 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离. Input 输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2 ...
- javabean转换为map对象
在调用第三方接口发现对方使用map进行接收(不包括秘钥等),将bean类属性转换为map,直接贴代码: /** * JavaBean对象转化成Map对象 * * @param javaBean */p ...
- 【翻译】Flume 1.8.0 User Guide(用户指南) source
翻译自官网flume1.8用户指南,原文地址:Flume 1.8.0 User Guide 篇幅限制,分为以下5篇: [翻译]Flume 1.8.0 User Guide(用户指南) [翻译]Flum ...