HDFS由三个基本组件组成:NameNode,SecondaryName,DataNode,其思想类似于Linux的文件系统,可以进行类比。

1.NameNode介绍:

1.管理整个文件系统的命名空间,内部维护了命名树。

2.存储元数据:文件层级关系,文件所有者及权限,每个文件由哪些文件块组成(但元信息中不包括每个块的位置)。内容通过fsimage及edits维护,后文会详述。

3.接受客户端请求

2.为什么HDFS倾向于存储大文件:

 首先,NameNode中存储一条元信息需要200byte,而元信息是保存在NameNode的内存中的,不能分布式存储,文件越小,存储同样大小的内容元信息越大,NameNode的内存有可能会成为系统存储的瓶颈。

其次,大文件减少了磁盘的寻道时间。但是数据块过大也会出现问题,MapReduce框架通常会为每个数据块启动一个进程,数据块过大会使并行数量减少,降低任务处理效率。

3.元信息持久化:

fsimage是NameNode的元数据镜像文件,用于存储某一时段内存的元数据信息,而系统运行期间所有元信息的操作都保存在内存中并被持久化到另一个文件edits中,edits会被周期性合并进fsimage中。合并两个日志的操作显然会占用大量的CPU,内存及IO,而NameNode中的计算及存储资源是很宝贵的,因此,通常合并操作通常交给SecondaryNameNode(注意,SecondaryNameNode作用不是热备!)。而NameNode本身通常也不会参与MapReduce计算和数据存储。

4.单点问题:

可以发现,HDFS中NameNode是一个单点,除了定期保存fsimage用于故障恢复外,也可以在元数据写入同时将其实时同步到一个远程挂载的NFS上。

5.SecondaryNameNode作用:

1. 减少启动时NameNode合并日志的时间

2. 一定程度上减少了NameNode的单点问题

2.DataNode

  1.负责存储数据块,响应客户端读写(注意,客户端直接读写DataNode,而非经过NameNode)。

  2.根据NameNode发送的指令创建,删除和复制文件。

  3.定期向NameNode发送心跳,报告文件块列表信息。

  4.为了安全,提供了数据块冗余,默认为3个副本。数据块默认为64MB

  5.数据完整性问题:

  存储和处理数据时数据有可能发生错误或丢失,HDFS会对写入的数据计算校验和。

HDFS基本原理总结的更多相关文章

  1. HDFS基本原理及数据存取实战

    ---------------------------------------------------------------------------------------------------- ...

  2. 【图文详解】HDFS基本原理

    本文主要详述了HDFS的组成结构,客户端上传下载的过程,以及HDFS的高可用和联邦HDFS等内容.若有不当之处还请留言指出. 当数据集大小超过一台独立的物理计算机的存储能力时,就有必要对它进行分区,并 ...

  3. Hadoop之HDFS(二)HDFS基本原理

    HDFS 基本 原理 1,为什么选择 HDFS 存储数据  之所以选择 HDFS 存储数据,因为 HDFS 具有以下优点: 1.高容错性 数据自动保存多个副本.它通过增加副本的形式,提高容错性. 某一 ...

  4. HDFS基本原理

    一.什么是HDFS HDFS即Hadoop分布式文件系统(Hadoop Distributed Filesystem),以流式数据访问模式来存储超大文件,它和现有的分布式文件系统有很多共同点.但同时, ...

  5. hdfs的基本原理和基本操作总结

    hdfs基本原理 Hadoop分布式文件系统(HDFS)被设计成适合执行在通用硬件(commodity hardware)上的分布式文件系统.它和现有的分布式文件系统有非常多共同点. 但同一时候,它和 ...

  6. 最通熟易懂的Hadoop HDFS实践攻略

    HDFS是用来解决什么问题?怎么解决的? 如何在命令行下操作HDFS? 如何使用Java API来操作HDFS? 在了解基本思路和操作方法后,进一步深究HDFS具体的读写数据流程 学习并实践本文教程后 ...

  7. Hadoop_HDFS_02

    1. HDFS入门 1.1 HDFS基本概念 HDFS是Hadoop Distribute File System的简称, 意为: Hadoop分布式文件系统. 是Hadoop三大核心组件之一, 作为 ...

  8. 大数据和Hadoop平台介绍

    大数据和Hadoop平台介绍 定义 大数据是指其大小和复杂性无法通过现有常用的工具软件,以合理的成本,在可接受的时限内对其进行捕获.管理和处理的数据集.这些困难包括数据的收入.存储.搜索.共享.分析和 ...

  9. 定时脚本: 删除HDFS中的过期文件

    1. 基本原理: 通过hadoop fs -ls *命令获取相关文件或目录的修改时间,然后与设定的过期时间进行比较,之后执行删除操作即可 2. 相关代码: #!/bin/bash source ~/. ...

随机推荐

  1. 使用 neon-wallet-db + neon-js + NEO-cli /rpc 搭建轻钱包服务端

    本文将搭建一个不具有任何功能的NEO轻钱包,所有的精力都仅集中于成功运行neon-wallet-db项目并搭配全节点的neo-cli /rpc接口为轻钱包客户端提供服务. 首先需要准备几个项目: ne ...

  2. 总结MySQL大数据量下如何进行优化

    写在建库前: 在确定数据库业务后.建立数据库表格时,就应对一些常见问题有所考虑,以避免在数据增长一段时间后再做应对,可能造成时间及维护成本增加: 数据的月增量,年增量 数据的快速增长点 是否需要触发器 ...

  3. 实用技巧:如何通过IP地址进行精准定位

    在甲方工作的朋友可能会遇到这样的问题,服务器或者系统经常被扫描,通过IP地址我们只能查到某一个市级城市,如下图: 当我们想具体到街道甚至门牌号,该怎么办??? 偶然间发现百度地图有高精度IP定位API ...

  4. 30分钟掌握ES6/ES2015核心内容(上)

    ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...

  5. linux ftp及C/S服务架构

    乱码转换工具使用convmv软件:windows中文字符编码为GB2312 linux中文字符编码为utf-8选项:-f:源文件中中文字符编码-t:转换成字符编码-r:代表递归--notest:不测试 ...

  6. a标签文字选中后的颜色样式更改

    ::selection 选择器,选择被用户选取的元素部分.是css3的用法,讲真,我觉得这个东西没必要特地去写.因为选中样式默认的会根据你的背景颜色还有字体color来设置颜色 这是我默认的样式

  7. dojo拼接成CSV格式字符串

    var student = "学号,姓名,年龄\n"; for(var i = 0;i<resp.items.length;i++) { student += resp.it ...

  8. Scheme change not implemented

    1.错误描述 2.错误原因 由于在改变Java代码中的方法或运行代码出现,导致Tomcat编译的代码不能替换工作空间的代码,即不能及时同步,出现错误 3.解决办法 (1)关闭Tomcat,clean一 ...

  9. 【原】Java学习笔记026 - 集合

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:从三国演义中 ...

  10. hdu5556 Land of Farms

    我对于题目的一种理解 改造农场 1.建新农场 在空的点选 2.重建旧农场 选一个点属于这个农场的地方都要选 最后的农场都不能相连 所以枚举旧农场的个数并进行二分图匹配 #include<bits ...