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 ...
随机推荐
- Codeforces 814C
题意略. 思路: 尺取法,依然是要利用之前的结果. 感觉时间复杂度太高了,竟然也过了. #include<bits/stdc++.h> using namespace std; ; ]; ...
- Leetcode之二分法专题-374. 猜数字大小(374. Guess Number Higher or Lower)
Leetcode之二分法专题-374. 猜数字大小(374. Guess Number Higher or Lower) 我们正在玩一个猜数字游戏. 游戏规则如下:我从 1 到 n 选择一个数字. 你 ...
- 吃货眼中的sqlalchemy外键和连表查询
前言 使用数据库一个高效的操作是连表查询,一条查询语句能够查询到多个表的数据.在sqlalchem架构下的数据库连表查询更是十分方便.那么如何连表查询?以及数据库外键对连表查询有没有帮助呢?本篇文章就 ...
- (八)分布式通信----主机Host
上节中有谈到的是通信主机(TransportHost),本节中主机(ServiceHost)负责管理服务的生命周期. 项目中将两个主机拆分开,实现不同的功能: 通信主机:用于启动通信监听端口: 生命周 ...
- JavaScript 小游戏 贪吃蛇
贪吃蛇 代码: <!DOCTYPE html><html><head> <meta charset="UTF-8"> <met ...
- CodeForces 85D Sum of Medians Splay | 线段树
Sum of Medians 题解: 对于这个题目,先想到是建立5棵Splay,然后每次更新把后面一段区间的树切下来,然后再转圈圈把切下来的树和别的树合并. 但是感觉写起来太麻烦就放弃了. 建立5棵线 ...
- adb 端口冲突
第一种方法:可以设置另一个端口 第二种方法: http://blog.csdn.net/hwl1314/article/details/52538023 Android studio 5037端口被占 ...
- 在Linux中增加swap空间
转自: http://blog.csdn.net/chinalinuxzend/article/details/1759593 在Linux中增加swap空间 在安装Linux的时候,不知道swap空 ...
- 2018 Multi-University Training Contest 1(部分题解)
Maximum Multiple Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 【LeetCode】435-无重叠区间
题目描述 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠. 注意: 可以认为区间的终点总是大于它的起点. 区间 [1,2] 和 [2,3] 的边界相互"接触", ...