Hadoop学习笔记【分布式文件系统学习笔记】
分布式文件系统介绍
分布式文件系统:Hadoop Distributed File System,简称HDFS。
一、HDFS简介
Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高 度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。
二、HDFS设计目标
·支持海量的数据,硬件错误是常态,因此需要备份。
·一次写多次读(write-once-read-many)的存取模式。
·运行在普通的硬件上面。
·数据块(默认大小是64M)尽量散步到各个节点中。
三、HDFS能做什么?
HDFS适合做什么?
·存储并管理PB级数据。
·处理非结构化数据。
·注重数据处理的吞吐量。
·应用模式为:write-once-read-many存取模式。
HDFS不适合做?
·存储小文件(不建议使用)。
·大量的随机读(不建议使用)。
·需要对文件的修改(不支持)。
四、几个基本概念
4.1 数据块
每个磁盘都有默认的数据块大小,这是磁盘进行数据读写的最小单位。构建与单个磁盘之上的文件系统通过磁盘块来管理该文件系统中的块(大小一般为512 byte)。HDFS中也有块(block)的概念,默认大小为64M,HDFS上的文件被华为为块大小的多个分块(chunk),作为独立的存储单元,但于其他文件系统不同的是,HDFS中小于一个块大小的文件不会占整个块的空间。
为何HDFS中的块设置如此之大?
HDFS的块比磁盘块达,其目的是为了减小寻址开销。如果设置的足够大,磁盘传输数据的时间将明显大于寻址时间,这样一个由多个块组成的文件时间取决于磁盘传输速率。
4.2 namenode和datanode
HDFS主要由namenode和datanode组成, 并以管理者/工作者模式运行,即一个namenode和多个datanode。
Namenode:
namenode管理文件系统的命名空间,它维护者文件系统树及整棵树内所有的文件和目录。这些管理信息以两个文件形式永久保存在本地磁盘上:命名空间镜像文件和编辑日志文件。namenode 也记录着每个文件中各个块所在的数据节点信息,但它井不永久保存块的位置信息,因为这些信息会在系统启动时由数据节点重建。
Datanode:
datanode 是文件系统的工作节点。它们根据需要存储井检索数据块(受客户端或namenode 调度),井且定期向namenode 发送它们所存储的块的列表。客户端(c1ient)代表用户通过与namenode 和datanode 交互来访问整个文件系统。
综上:没有namenode ,文件系统将无泣使用。事实上,如果运行namenode 服务的机器毁坏,文件系统上所有的文件将会丢失,因为我们不知道如何根据datanode 的块来重建文件。
五、HDFS架构
1. 一个文件被划分成大小固定的多个文件块,分布的存储在集群中的节点中。

一个文件一台电脑直接读取需要花费很多时间,但是多个电脑同时读取就可以看出速度啦。
2. 同一个文件块在不同的节点中有多个副本。

如果说第一个节点处的文件失效不能工作了,那么hadoop根据你的配置去自动需找其他的副本,这些副本的拷贝是在hadoop的配置文件中进行指定的,副本的个数都是可以配置的。
3. 一个集中的地方保存文件的分块信息。一般保存在/home/hdfs/目录下。

集中的地方就叫做namenode用于保存分块的信息,namenode只有一个,首先我们必须从namenode获得分块信息,上面就是namenode中分块的信息。

上图是datanode的信息,就是讲文件进行分块存储,然后进行并行读取节点信息,相比传统的方式,一般是将硬盘作为一个节点进行存储,而hadoop则是将分布的主机作为节点进行存储。
六、HDFS体系结构
下图为HDFS的体系结构:

读取数据流程:
- 客户端要访问HDFS中的一个文件。
- 首先从namenode获取组成这个文件的数据库位置列表。
- 根据列表知道存储数据块的datanode。
- 访问datanode获取数据。
- Namenode并不参与数据实际传输。
Hadoop学习笔记【分布式文件系统学习笔记】的更多相关文章
- Hadoop基础-HDFS分布式文件系统的存储
Hadoop基础-HDFS分布式文件系统的存储 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS数据块 1>.磁盘中的数据块 每个磁盘都有默认的数据块大小,这个磁盘 ...
- FastDFS图片服务器(分布式文件系统)学习。
参考:https://blog.csdn.net/hiqingtian/article/details/79413471 https://blog.csdn.net/sinat_40399893/ar ...
- 【史上最全】Hadoop 核心 - HDFS 分布式文件系统详解(上万字建议收藏)
1. HDFS概述 Hadoop 分布式系统框架中,首要的基础功能就是文件系统,在 Hadoop 中使用 FileSystem 这个抽象类来表示我们的文件系统,这个抽象类下面有很多子实现类,究竟使用哪 ...
- DFS 分布式文件系统 选型笔记
需求按优先级顺序如下: 1)存放3TB以上中小型文件,图片为主,平均在500~700k,一般在1M以内. 2)要集群化,支持负载均衡,高可用高性能.有大企业使用背书最好. 3)提供Java程序上传文件 ...
- Hadoop 学习之路(一)—— 分布式文件系统 HDFS
一.介绍 HDFS (Hadoop Distributed File System)是Hadoop下的分布式文件系统,具有高容错.高吞吐量等特性,可以部署在低成本的硬件上. 二.HDFS 设计原理 2 ...
- 第3章:Hadoop分布式文件系统(1)
当数据量增大到超出了单个物理计算机存储容量时,有必要把它分开存储在多个不同的计算机中.那些管理存储在多个网络互连的计算机中的文件系统被称为"分布式文件系统".由于这些计算机是基于网 ...
- 分布式基础学习【二】 —— 分布式计算系统(Map/Reduce)
二. 分布式计算(Map/Reduce) 分布式式计算,同样是一个宽泛的概念,在这里,它狭义的指代,按Google Map/Reduce框架所设计的分布式框架.在Hadoop中,分布式文件系统,很大程 ...
- Hadoop 系列(一)—— 分布式文件系统 HDFS
一.介绍 HDFS (Hadoop Distributed File System)是 Hadoop 下的分布式文件系统,具有高容错.高吞吐量等特性,可以部署在低成本的硬件上. 二.HDFS 设计原理 ...
- Hadoop 三剑客之 —— 分布式文件存储系统 HDFS
一.介绍 二.HDFS 设计原理 2.1 HDFS 架构 2.2 文件系统命名空间 2.3 数据复制 2.4 数据复制的实现原理 2.5 副本的选择 2 ...
随机推荐
- PHP限制提现时间-----周一至周五 9点到17点
$time = time(); $err_msg = '请在周一至周五 9:00-17:00 提交申请!'; $week = date('w', $time); $hour = date('H', $ ...
- 友盟错误日志分析(转自:COCOACHINA shemy )
在做的项目中,用到了友盟的组件,在没有禁用错误日志上传之前,收集了一些错误日志. 有一些朋友看到了错误日志,却不知道怎么定位到程序的的代码中,实际上,这一步是非常的简单.友盟没有集成.dSYM文件 ...
- java学习:ArrayList的实现及原理
1. ArrayList概述: ArrayList是List接口的可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部 ...
- 搜索引擎 ElasticSearch 之 步步为营 【主目录】
ElasticSearch 是一款著名的分布式搜索引擎框架,采用Java编写.具有搜索速度快,实时搜索等特色. 以下为官网对ElasticSearch的介绍: Elasticsearch 是一款高可伸 ...
- Firebird数据库的Select语句
select first 10 skip 8 * from t_data //跳过前8行不要,取10行,即取第9行到18行共10行 select first 10 * from t_data ...
- 特征哈希(Feature Hashing)
[本文链接:http://www.cnblogs.com/breezedeus/p/4114686.html,转载请注明出处] 我的博客主营地迁至github,欢迎朋友们有空去看看:http://br ...
- 基于VC的ACM音频编程接口压缩Wave音频(二)
(二)获取CODECs 的 信 息 ACM 的API 函 数 定 义 在 头 文 件msacm.h 中, 除 此 之 外, 对ACM 编 程 还 必 须 包 含 头 文 件mmsystem.h,mm ...
- 关于“windows无法自动将ip协议栈绑定到网络适配器”问题导致不能连上网的解决办法
问题出现的原因:这个问题的直接表象并不是显示给用户这个问题,而是提示无线网络驱动可能有问题或者以太网驱动可能有问题,但只要用户查看”详细信息“,就会得到标题这个问题,而出现这个问题的本质并不是驱动问题 ...
- RHEL6.5及Win7的和谐共处(投机版)
背景: 在Windows XP存在时,装了个RHEL6.5,用的是安装程序自带的Grub,后来将XP删除后重装了Windows7,RHEL的Grub被覆盖,启动不了RHEL了,于是补上RHEL的引导… ...
- CAS 4.0.0RC 配置通过数据库认证用户登录
配置通过数据库认证用户登录 打开webapp\WEB-INF目录下的deployerConfigContext.xml,替换 <bean id="primaryAuthenticati ...