1. Hadoop自带HDFS,即 Hadoop Distributed FileSystem(不是HaDoop  FileSystem 的简称)
  2. 适用范围
    1. 超大文件:最新的容量达到PB级
    2. 流式数据访问:HDFS的构建思路:一次写入、多次读取时最高效的访问模式
    3. 低时间延迟的数据访问不适用HDFS
    4. 大量的小文件的限制:由于namenode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于namenode的内存容量。根据经验,每个文件、目录、数据块的存储信息大约占150字节。举例来说,如果有一百万个文件,每个文件占用一个数据块,那至少需要300MB的内存。尽管存储上百万文件时可行的,但是存储数十亿个文件就超出了当前硬件的能力。
    5. 不支持多用户写入、任意修改文件:HDFS中的文件写入只支持单个写入者,而且写操作总是已只添加的方式在文件末尾写数据。不支持多个写入者操作,也不支持在文件的任意位置进行修改。
  3. 数据块
    1. 磁盘块一般为512字节,普通文件系统块一般为几千字节,HDFS块默认128MB
    2. 与普通文件系统不同,一个小于块大小的文件,不会占据整个块的大小(不会浪费块剩余空间)。如1MB的文件,只占用1MB空间,而不是128MB空间
    3. 块的大小不能设置的太大,Mapreduce中map任务通常一次只处理一个块中的数据,如果块太大,任务数据太少(少于集群中节点的数量),那么集群的分布式计算就发挥不出来
    4. 事实上,尽管不常见,也可存储一个文件,占用整个HDFS,该文件的块占满集群中的所有磁盘。
    5. 使用块,可以将数据存储于文件权限分开设计,简化设计框架
  4. namenode节点:整个集群只有1个namenode节点,管理文件系统的命名空间,他维护着系统树和整个树内所有的文件和目录。这些信息以两个文件形式永久保存在“本地磁盘”上,但并不永久保存块的位置信息,因为这些信息会在系统启动时根据datanode信息重建。
  5. datanode节点:可以有多个,受客户端或namenode调度,并且定期向namenode节点发送他们所存储的块列表。负责存储并检索数据块。
  6. 如果运行namenode节点损坏,文件系统上所有的文件将会丢失,对namenode实现容错非常重要
    1. 方法一:备份哪些组成文件系统元数据持久状态的文件,可以通过配置,是namenode节点在本地和NFS上同时存储持久状态(类似于oracle归档日志的多路写入)
    2. 方法二:运行一个辅助namenode,但不能用作namenode。辅助namenode的重要作用是定期合并编辑日志与命名空间镜像,运行在单独的机器上,需要占用大量CPU时间,并需要与主namenode一样大小的内存。但是,辅助namenode保存的状态总是滞后于主节点,所以主节点全部失效时,难免会丢失部分数据。在这种情况下,一般把存储在NFS上的namenode元数据复制到辅助namenode并作为新的主节点运行
  7. 联邦HFDS:在2.x发行版本中引入的联邦HDFS允许通过添加namenode实现扩展,其中每个namenode管理文件系统命名空间的一部分。例如一个namenode管理/user目录下所有的文件,而另一个namenode管理/share目录下的所有文件。
  8. 在联邦环境下,每个namenode维护一个命名空间卷,由命名空间的元数据和一个数据块池组成,数据块池包含该命名空间下文件的所有的数据块。命名空间卷之间是相互独立的,亮亮之间并不相互通信,设置其中一个namenode失效也不会影响其他namenode的可用性。数据块池不再进行切分,因此集群中的所有datanode需要注册到每个namenode
  9. 要想访问联邦HDFS集群,客户端需要使用挂在数据表将文件路径映射到namenode。
  10. 高可用
    1. Hadoop2增加了HDFS高可用(HA)的支持,配置了一对  活动-备用(active-standby)namenode
    2. namenode之间需要通过高可用

Hadoop点滴-Hadoop分布式文件系统的更多相关文章

  1. Hadoop基础-HDFS分布式文件系统的存储

    Hadoop基础-HDFS分布式文件系统的存储 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS数据块 1>.磁盘中的数据块 每个磁盘都有默认的数据块大小,这个磁盘 ...

  2. 【史上最全】Hadoop 核心 - HDFS 分布式文件系统详解(上万字建议收藏)

    1. HDFS概述 Hadoop 分布式系统框架中,首要的基础功能就是文件系统,在 Hadoop 中使用 FileSystem 这个抽象类来表示我们的文件系统,这个抽象类下面有很多子实现类,究竟使用哪 ...

  3. Hadoop点滴-Hadoop的IO

    Hadoop自带一套原子操作用于数据的I/O操作. 如果系统中需要处理的数据量达到Hadoop的处理极限时,数据被损害的概率还是很高的 检测数据是否被损害的常见措施是,在数据第一次被引进系统时,计算校 ...

  4. 第3章:Hadoop分布式文件系统(1)

    当数据量增大到超出了单个物理计算机存储容量时,有必要把它分开存储在多个不同的计算机中.那些管理存储在多个网络互连的计算机中的文件系统被称为"分布式文件系统".由于这些计算机是基于网 ...

  5. Hadoop 学习之路(一)—— 分布式文件系统 HDFS

    一.介绍 HDFS (Hadoop Distributed File System)是Hadoop下的分布式文件系统,具有高容错.高吞吐量等特性,可以部署在低成本的硬件上. 二.HDFS 设计原理 2 ...

  6. Hadoop 系列(一)—— 分布式文件系统 HDFS

    一.介绍 HDFS (Hadoop Distributed File System)是 Hadoop 下的分布式文件系统,具有高容错.高吞吐量等特性,可以部署在低成本的硬件上. 二.HDFS 设计原理 ...

  7. Hadoop 三剑客之 —— 分布式文件存储系统 HDFS

    一.介绍 二.HDFS 设计原理     2.1 HDFS 架构     2.2 文件系统命名空间     2.3 数据复制     2.4 数据复制的实现原理     2.5 副本的选择     2 ...

  8. [Hadoop 周边] Hadoop技术生态圈

    Hadoop版本演进 当前Hadoop有两大版本:Hadoop 1.0和Hadoop 2.0. Hadoop1.0被称为第一代Hadoop,由分布式文件系统HDFS和分布式计算框架MapReduce组 ...

  9. Hadoop学习------Hadoop安装方式之(二):伪分布部署

    要想发挥Hadoop分布式.并行处理的优势,还须以分布式模式来部署运行Hadoop.单机模式是指Hadoop在单个节点上以单个进程的方式运行,伪分布模式是指在单个节点上运行NameNode.DataN ...

随机推荐

  1. Codeforces 814C

    题意略. 思路: 尺取法,依然是要利用之前的结果. 感觉时间复杂度太高了,竟然也过了. #include<bits/stdc++.h> using namespace std; ; ]; ...

  2. Leetcode之二分法专题-374. 猜数字大小(374. Guess Number Higher or Lower)

    Leetcode之二分法专题-374. 猜数字大小(374. Guess Number Higher or Lower) 我们正在玩一个猜数字游戏. 游戏规则如下:我从 1 到 n 选择一个数字. 你 ...

  3. 吃货眼中的sqlalchemy外键和连表查询

    前言 使用数据库一个高效的操作是连表查询,一条查询语句能够查询到多个表的数据.在sqlalchem架构下的数据库连表查询更是十分方便.那么如何连表查询?以及数据库外键对连表查询有没有帮助呢?本篇文章就 ...

  4. (八)分布式通信----主机Host

    上节中有谈到的是通信主机(TransportHost),本节中主机(ServiceHost)负责管理服务的生命周期. 项目中将两个主机拆分开,实现不同的功能: 通信主机:用于启动通信监听端口: 生命周 ...

  5. JavaScript 小游戏 贪吃蛇

    贪吃蛇 代码: <!DOCTYPE html><html><head> <meta charset="UTF-8"> <met ...

  6. CodeForces 85D Sum of Medians Splay | 线段树

    Sum of Medians 题解: 对于这个题目,先想到是建立5棵Splay,然后每次更新把后面一段区间的树切下来,然后再转圈圈把切下来的树和别的树合并. 但是感觉写起来太麻烦就放弃了. 建立5棵线 ...

  7. adb 端口冲突

    第一种方法:可以设置另一个端口 第二种方法: http://blog.csdn.net/hwl1314/article/details/52538023 Android studio 5037端口被占 ...

  8. 在Linux中增加swap空间

    转自: http://blog.csdn.net/chinalinuxzend/article/details/1759593 在Linux中增加swap空间 在安装Linux的时候,不知道swap空 ...

  9. 2018 Multi-University Training Contest 1(部分题解)

    Maximum Multiple Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  10. 【LeetCode】435-无重叠区间

    题目描述 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠. 注意: 可以认为区间的终点总是大于它的起点. 区间 [1,2] 和 [2,3] 的边界相互"接触", ...