Master-slaver结构,namenode是中心服务器维护着文件系统树和整个树内的文件目录,

负责整个数据集群的管理。datanode分布在不同的机架上,在客户端和namenode的调度下

存储并检索数据块,并且定期向namenode发送所存储的块的列表。客户端通过datanode和namenode

的交互访问文件系统。联系namenode获取文件的元数据,真正的IO操作直接和datanode交互。

数据块在不同的datanode上备份以应对节点故障。默认每个数据块都保存三个副本,其中两个副本存在不同

机架两个不同节点上,另一个副本存在不同机架的节点上。

默认数据块大小64M

元数据指文件和目录的属性信息。

镜像文件中记录修改时间,访问时间,数据块大小,组成一个文件的数据块存储位置

目录中镜像文件包含修改时间,访问控制权限。

日志文件记录HDFS 所有跟新操作

namenode启动时,合并镜像文件和日志文件。把内存中的元数据跟新到最新状态。

i

每3sdatanode向namenode发送心跳,显示自己存活,每10次心跳发送一次数据块报告,‘

包含自己存储的数据块信息通过这些信息,namenode能重建元数据,并确保每个数据块有足够的副本。

1客户端打开分布式文件系统

2分布式文件系统通过远程过程调用访问namenode,

读到数据块信息,datanode地址

3客户端通过文件系统输入输出流读数据

4向距离最近的datanode读取数据

5出错则向副本发起连接,并记录,以后不再连接

1客户端打开分布式文件系统

2分布式文件系统通过远程过程调用访问namenode

3namenode首先确认文件不存在,然后创建一个新的文件

4客户端通过文件系统输入输出流写入数据

5FSDataOutputStream将数据分成块写入队列

6DataStreamer处理数据队列,根据数据队列,要求namenode分配适合的datanode来存储数据副本,每个数据块默认赋值三块

7然后将数据发送给第一个datanode,第一个datanode将数据发送给第二个datanode,第二个datanode将数据块发送个第三个datanode

8数据写好后,向FSDataOutputStream发送ACK,FSDataOutputStream调用close向namenode通知写入完成,

HDFS体系架构的更多相关文章

  1. HDFS的体系架构

    通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS.MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍.基本涵盖了Hadoop分布式平台的全部技术核心. H ...

  2. Map/Reduce的类体系架构

    Map/Reduce的类体系架构 Map/Reduce案例解析: 先以简单的WordCount例程, 来讲解如何去描述Map/Reduce任务. public static void main(Str ...

  3. Hadoop体系架构简介

    今天跟一个朋友在讨论hadoop体系架构,从当下流行的Hadoop+HDFS+MapReduce+Hbase+Pig+Hive+Spark+Storm开始一直讲到HDFS的底层实现,MapReduce ...

  4. HBase体系架构和集群安装

    大家好,今天分享的是HBase体系架构和HBase集群安装.承接上两篇文章<HBase简介>和<HBase数据模型>,点击回顾这2篇文章,有助于更好地理解本文. 一.HBase ...

  5. Hadoop1.x HDFS系统架构

    1. HDFS中的一些概念1.1 数据块1.2 NameNode和DataNode1.2.1 管理者:Namenode1.2.1 工作者:Datanode1.3 Secondary Namenode1 ...

  6. HDFS HA架构以及源代码引导

    HA体系架构 相关知识介绍 HDFS master/slave架构,HDFS节点分为NameNode节点和DataNode节点. NameNode存有HDFS的元数据:主要由FSImage和EditL ...

  7. 说说面向服务的体系架构SOA

    序言 在.Net的世界中,一提及SOA,大家想到的应该是Web Service,WCF,还有人或许也会在.NET MVC中的Web API上做上标记,然后泛泛其谈! 的确,微软的这些技术也确实推动着面 ...

  8. 【转】XenServer体系架构解析

    XenServer是一套已在云计算环境中经过验证的企业级开放式服务器虚拟化解决方案,可以将静态.复杂的IT环境转变为更加动态.易于管理的虚拟数据中心,从而大大降低数据中心成本.同时,它可以提供先进的管 ...

  9. WebLogic集群体系架构

    WebLogic Server集群概述  WebLogic Server 群集由多个 WebLogic Server 服务器实例组成,这些服务器实例同时运行并一起工作以提高可缩放性和可靠性.对于客户端 ...

随机推荐

  1. Java 多线程之单例设计模式

    转载:https://segmentfault.com/a/1190000007504892 概念: Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍两种:懒汉式单例.饿汉 ...

  2. FIFO简记

    FIFO( First In First Out)简单说就是指先进先出的存储方式,在高速外设读取时经常使用. FIFO从读写的时钟可分为同步和异步两种,从信号来说都有读.写使能信号,读.写数据总线,满 ...

  3. marathon新建应用映射端口限制

    映射端口范围不能使用:1~1024 (除 80 443), 5000~5100, 6000~6999, 10000~20000, 31000~32000 映射端口可能与 Chrome 冲突: 6665 ...

  4. Docker应用程序容器技术_转

    转自:百度百科 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相 ...

  5. visio任意角度精确旋转图形

    visio 2013 步骤: 选中图形 点击"视图->显示->任务窗格->大小和位置" 然后会出现一个小窗口,里面可以输入图形的旋转角度

  6. AVD之PANIC: Could not open

    1 原因一:因为我们采用的是绝对路径定位,也就是说在环境变量里面把路径写死了,所以安装都不同,路径读不出来. 解决办法:①在环境变量中创建变量名:ANDROID_SDK_HOME,变量值:你当时安装S ...

  7. EF实体框架之CodeFirst一

    对于SQL Server.MySql.Oracle等这些传统的数据库,基本都是关系型数据库,都是体现实体与实体之间的联系,在以前开发时,可能先根据需求设计数据库,然后在写Model和业务逻辑,对于Mo ...

  8. Linux 上从 MySQL 迁移到 MariaDB 的简单步骤

    大家好!这是一篇介绍如何在服务器或个人电脑上从MySQL迁移到MariaDB的教程.也许你会问为什么我们要将数据库管理从MySQL迁移到MariaDB.往下看我们告诉你为什么这样做.为什么要用Mari ...

  9. centos查看实时网络带宽占用情况方法

    Linux中查看网卡流量工具有iptraf.iftop以及nethogs等,iftop可以用来监控网卡的实时流量(可以指定网段).反向解析IP.显示端口信息等. centos安装iftop的命令如下: ...

  10. c#-冒泡排序-算法

    冒泡排序(Bubble Sort) 冒泡排序算法的运作如下: 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后 ...