Hadoop点滴-Hadoop分布式文件系统
- Hadoop自带HDFS,即 Hadoop Distributed FileSystem(不是HaDoop FileSystem 的简称)
- 适用范围
- 超大文件:最新的容量达到PB级
- 流式数据访问:HDFS的构建思路:一次写入、多次读取时最高效的访问模式
- 低时间延迟的数据访问不适用HDFS
- 大量的小文件的限制:由于namenode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于namenode的内存容量。根据经验,每个文件、目录、数据块的存储信息大约占150字节。举例来说,如果有一百万个文件,每个文件占用一个数据块,那至少需要300MB的内存。尽管存储上百万文件时可行的,但是存储数十亿个文件就超出了当前硬件的能力。
- 不支持多用户写入、任意修改文件:HDFS中的文件写入只支持单个写入者,而且写操作总是已只添加的方式在文件末尾写数据。不支持多个写入者操作,也不支持在文件的任意位置进行修改。
- 数据块
- 磁盘块一般为512字节,普通文件系统块一般为几千字节,HDFS块默认128MB
- 与普通文件系统不同,一个小于块大小的文件,不会占据整个块的大小(不会浪费块剩余空间)。如1MB的文件,只占用1MB空间,而不是128MB空间
- 块的大小不能设置的太大,Mapreduce中map任务通常一次只处理一个块中的数据,如果块太大,任务数据太少(少于集群中节点的数量),那么集群的分布式计算就发挥不出来
- 事实上,尽管不常见,也可存储一个文件,占用整个HDFS,该文件的块占满集群中的所有磁盘。
- 使用块,可以将数据存储于文件权限分开设计,简化设计框架
- namenode节点:整个集群只有1个namenode节点,管理文件系统的命名空间,他维护着系统树和整个树内所有的文件和目录。这些信息以两个文件形式永久保存在“本地磁盘”上,但并不永久保存块的位置信息,因为这些信息会在系统启动时根据datanode信息重建。
- datanode节点:可以有多个,受客户端或namenode调度,并且定期向namenode节点发送他们所存储的块列表。负责存储并检索数据块。
- 如果运行namenode节点损坏,文件系统上所有的文件将会丢失,对namenode实现容错非常重要
- 方法一:备份哪些组成文件系统元数据持久状态的文件,可以通过配置,是namenode节点在本地和NFS上同时存储持久状态(类似于oracle归档日志的多路写入)
- 方法二:运行一个辅助namenode,但不能用作namenode。辅助namenode的重要作用是定期合并编辑日志与命名空间镜像,运行在单独的机器上,需要占用大量CPU时间,并需要与主namenode一样大小的内存。但是,辅助namenode保存的状态总是滞后于主节点,所以主节点全部失效时,难免会丢失部分数据。在这种情况下,一般把存储在NFS上的namenode元数据复制到辅助namenode并作为新的主节点运行
- 联邦HFDS:在2.x发行版本中引入的联邦HDFS允许通过添加namenode实现扩展,其中每个namenode管理文件系统命名空间的一部分。例如一个namenode管理/user目录下所有的文件,而另一个namenode管理/share目录下的所有文件。
- 在联邦环境下,每个namenode维护一个命名空间卷,由命名空间的元数据和一个数据块池组成,数据块池包含该命名空间下文件的所有的数据块。命名空间卷之间是相互独立的,亮亮之间并不相互通信,设置其中一个namenode失效也不会影响其他namenode的可用性。数据块池不再进行切分,因此集群中的所有datanode需要注册到每个namenode
- 要想访问联邦HDFS集群,客户端需要使用挂在数据表将文件路径映射到namenode。
- 高可用
- Hadoop2增加了HDFS高可用(HA)的支持,配置了一对 活动-备用(active-standby)namenode
- namenode之间需要通过高可用
Hadoop点滴-Hadoop分布式文件系统的更多相关文章
- Hadoop基础-HDFS分布式文件系统的存储
Hadoop基础-HDFS分布式文件系统的存储 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS数据块 1>.磁盘中的数据块 每个磁盘都有默认的数据块大小,这个磁盘 ...
- 【史上最全】Hadoop 核心 - HDFS 分布式文件系统详解(上万字建议收藏)
1. HDFS概述 Hadoop 分布式系统框架中,首要的基础功能就是文件系统,在 Hadoop 中使用 FileSystem 这个抽象类来表示我们的文件系统,这个抽象类下面有很多子实现类,究竟使用哪 ...
- Hadoop点滴-Hadoop的IO
Hadoop自带一套原子操作用于数据的I/O操作. 如果系统中需要处理的数据量达到Hadoop的处理极限时,数据被损害的概率还是很高的 检测数据是否被损害的常见措施是,在数据第一次被引进系统时,计算校 ...
- 第3章:Hadoop分布式文件系统(1)
当数据量增大到超出了单个物理计算机存储容量时,有必要把它分开存储在多个不同的计算机中.那些管理存储在多个网络互连的计算机中的文件系统被称为"分布式文件系统".由于这些计算机是基于网 ...
- Hadoop 学习之路(一)—— 分布式文件系统 HDFS
一.介绍 HDFS (Hadoop Distributed File System)是Hadoop下的分布式文件系统,具有高容错.高吞吐量等特性,可以部署在低成本的硬件上. 二.HDFS 设计原理 2 ...
- Hadoop 系列(一)—— 分布式文件系统 HDFS
一.介绍 HDFS (Hadoop Distributed File System)是 Hadoop 下的分布式文件系统,具有高容错.高吞吐量等特性,可以部署在低成本的硬件上. 二.HDFS 设计原理 ...
- Hadoop 三剑客之 —— 分布式文件存储系统 HDFS
一.介绍 二.HDFS 设计原理 2.1 HDFS 架构 2.2 文件系统命名空间 2.3 数据复制 2.4 数据复制的实现原理 2.5 副本的选择 2 ...
- [Hadoop 周边] Hadoop技术生态圈
Hadoop版本演进 当前Hadoop有两大版本:Hadoop 1.0和Hadoop 2.0. Hadoop1.0被称为第一代Hadoop,由分布式文件系统HDFS和分布式计算框架MapReduce组 ...
- Hadoop学习------Hadoop安装方式之(二):伪分布部署
要想发挥Hadoop分布式.并行处理的优势,还须以分布式模式来部署运行Hadoop.单机模式是指Hadoop在单个节点上以单个进程的方式运行,伪分布模式是指在单个节点上运行NameNode.DataN ...
随机推荐
- js 前端实现打印功能
// 此处是一个打印的方法 可以在点击事件的时候调用 dayin = () =>{ // 获取当前页面要打印的内容 // 这里的className(‘print’)是我给要打印的区域起的 ...
- ABP虚拟文件系统(VirtualFileSystem)实例------定制菜单栏显示用户姓名
ABP默认的MVC启动模板在登录后, 右上角显示的是用户名: 如果想让它显示用户的姓名该如何做呢?这就需要用到ABP一个非常强大的功能------虚拟文件系统. 前期准备 使用ABP CLI创建一个名 ...
- JSP学习笔记(3)——JSTL 标签库
JSP Standard Tag Lib,名为JSP标准标签库,设计的目的主要用来方便我们将数据输出,而不是使用JSP中的语法<% %> <%= %> <%! %> ...
- 自己实现vue瀑布流组件,含详细注释
我知道vue有瀑布流插件vue-waterfall-easy,但是使用的时候与我的预期有部分别,所以就自己动手写了这个组件 人和动物的根本区别是是否会使用工具,我们不仅要会使用,还要会创造工具,别人提 ...
- 学习HTML之后的感受
自从学习了HTML之后,感觉自己每天面对密密麻麻的代码,都有了一种密集恐惧症的感觉,作为一个计算机行业的小白,我十分渴望在计算机行业有所建树,以前计算机对我来说是一个神秘的领域.现在我正在努力进入这个 ...
- 分层图 单调决策性DP
easy 写法. #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.txt" ...
- 最短路 dijkstra+优先队列+邻接表
http://acm.hdu.edu.cn/showproblem.php?pid=2544 #include<iostream> #include<queue> #inclu ...
- CF 450E Jzzhu and Apples 数学+模拟
E. Jzzhu and Apples time limit per test 1 second memory limit per test 256 megabytes input standard ...
- 题解 UVA11000 【Bee】
传送门 [题目描述] 在非洲有一种非常特殊的蜜蜂.每年,这种蜜蜂的一只雌蜂生育一只 雄蜂,而一只雄蜂生育一只雌蜂和一只雄蜂,生育后它们都会死去!现在科学家们意外地发现了这一特殊物种的一只神奇的雌蜂,她 ...
- Python---网页元素
文章目录 1. 前言 万维网 万维网的关键技术 2. 网页基本框架 HTML CSS: JavaScript 在介绍审查元素之前我们先简单介绍一下网页的基本框架 1. 前言 万维网 万维网(英语:Wo ...