1. HDFS 是什么?

Hadoop分布式文件系统(Distributed File System)-HDFS(Hadoop Distributed File System)

2. HDFS 架构

首先HDFS是一个分布式文件系统,就是说在一个集群上做了一个文件系统。一般的集群都是主从结构。namenode是主,datenode是从。

我们来看一下这几个概念

Client:就是客户端。

1、文件切分。文件上传 HDFS 的时候,Client 将文件切分成 一个一个的Block,然后进行存储。

2、与 NameNode 交互,获取文件的位置信息。

3、与 DataNode 交互,读取或者写入数据。

4、Client 提供一些命令来管理 HDFS,比如启动或者关闭HDFS。

5、Client 可以通过一些命令来访问 HDFS。

NameNode:就是 master,它是一个主管、管理者。

1.管理者文件系统命名空间          

--维护着文件树及树中的所有文件和目录

               2.存储元数据

--namenodde 保存元信息的种类有

文件名目录名及它们之间的层级关系

文件目录和所有者及其权限

每个文件块和名及文件有哪些块组成

                 注:元数据保存在内存中

namenode元信息并不包含每个块的位置信息

3.保存文件,block,datanode 之间的映射关系

 4.配置副本策略

               5.处理客户端读写请求

DataNode:就是Slave。NameNode 下达命令,DataNode 执行实际的操作。

1.负责存储实际的数据块,负责为系统客户端提供数据块的读写服务

2.根据NameNode 的指示进行创建、删除和复制等操作

3.心跳机制,定期报告文件块列表信息

4.datanode之间进行通信,块的副本处理

Secondary NameNode:并非 NameNode 的热备。当NameNode 挂掉的时候,它并不能马上替换 NameNode 并提供服务。

1、辅助 NameNode,分担其工作量。

2、定期合并 fsimage和fsedits,并推送给NameNode。

3、在紧急情况下,可辅助恢复 NameNode。

3. HDFS上传流程

过程解析:

这里描述的 是一个256M的文件上传过程

① 由客户端 向 NameNode节点节点 发出请求

② NameNode 向Client返回可以可以存数据的 DataNode 这里遵循 机架感应 原则

③ 客户端 首先 根据返回的信息 先将 文件分块(Hadoop2.X版本 每一个block为 128M 而之前的版本为 64M

④ 然后通过那么Node返回的DataNode信息 直接发送给DataNode 并且是 流式写入 同时 会复制到其他两台机器

⑤ dataNode 向 Client通信 表示已经传完 数据块 同时向NameNode报告

⑥ 依照上面(④ 到 ⑤)的原理将 所有的数据块都上传结束 向 NameNode 报告 表明 已经传完所有的数据块

这样 整个HDFS上传流程就 走完了

HDFS笔记(一)的更多相关文章

  1. HDFS笔记——技术点汇总

    目录 · 概况 · 原理 · HDFS 架构 · 块 · NameNode · SecondaryNameNode · fsimage与edits合并 · DataNode · 数据读写 · 容错机制 ...

  2. hdfs笔记

    Distributed File System 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文 ...

  3. 【Hadoop】HDFS笔记(三):HDFS的Shell操作

    HDFS处理文件的命令和Linux命令差不多,但注意区分大小写. (Linux区分大小写,Windows不区分大小写) 一.fs命令 键入命令"./bin/hadoop fs"将输 ...

  4. 【Hadoop】HDFS笔记(二):HDFS的HA机制和Federation机制

    HA解决了HDFS的NameNode的单点问题: Federation解决了整个HDFS集群中只有一个名字空间,并且只有单独的一个NameNode管理所有DataNode的问题. 一.HA机制(Hig ...

  5. 【Hadoop】HDFS笔记(一):Hadoop的RPC机制

    RPC(Remote Procedure Call, 远程过程调用)主要面对两个问题: 1.对象调用方式: 2.序列/反序列化机制. Hadoop实现的RPC组件依赖于Hadoop Writable类 ...

  6. HDFS笔记(二)

    fsimage : NameNode启动时,对文件系统的快照 eidt logs : NameNode启动后,对文件系统的改动序列 namenode在全局里就一个进程,所以存在单点问题 DataNod ...

  7. 学习笔记—MapReduce

    MapReduce是什么 MapReduce是一种分布式计算编程框架,是Hadoop主要组成部分之一,可以让用户专注于编写核心逻辑代码,最后以高可靠.高容错的方式在大型集群上并行处理大量数据. Map ...

  8. Hadoop1.x HDFS系统架构

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

  9. HDFS Federation (读书笔记)

    HDFS Federation (读书笔记) HDFS的架构 HDFS包含两个层次:命名空间管理(Namespace) 和 块/存储管理(Block Storage). 命名空间管理(Namespac ...

随机推荐

  1. 在vue中使用import()来代替require.ensure()实现代码打包分离

    最近看到一种router的写法 import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) const login = ...

  2. PostCSS理解与运用

    1.PostCSS是什么 它可以被理解为一个平台,可以让一些插件在上面跑 它提供了一个解析器,可以将CSS解析成抽象语法树 通过PostCSS这个平台,我们能够开发一些插件,来处理CSS.热门插件如a ...

  3. 计算机基础:计算机网络-chapter2

    因为计算机网络是的传输从物理到数据端的过程到端是自下而上的,所以大多数的教材都是从五层协议结构的底部开始向上延申. 物理层: = = 好复杂哦.看不懂,反正就是讲一些通信的线,信号传输的实现原理,和信 ...

  4. selenium-网站demo学习-test Design-优化自动化代码

    看selenium的网站的文档,里面的自动化用例设计有一些小点很靠谱.学了很多,可以用作优化自己的代码. 1.测试类型: Testing Static Content Testing Links Fu ...

  5. 异步请求 ajax的使用详解

    https://blog.csdn.net/happyaliceyu/article/details/52381446 可以说是很详细了,赞

  6. Cookie隐藏小广告

    方式一:在close.php页面上设置COOKIE, colse.php页面 <?php setcookie('hide','1'); header('Location: indes.php') ...

  7. 数据库中in和exists关键字的区别

    数据库中in和exists关键字的区别 in 是把外表和内表作hash join,而exists是对外表作loop,每次loop再对内表进行查询. 一直以来认为exists比in效率高的说法是不准确的 ...

  8. MyBatis-DynamicSQL IF判断

    在写动态sql时发现字符串的判断没有生效 <if test="CLLX != null and CLLX != ''"> and a.CLLX = #{CLLX} &l ...

  9. springMVC的参数检验

    先说应用场景,比如说前台传来一个参数,我们肯定得在后台判断一下,比如id不能为空了,电话号码不能少于11位了等等.如果在service层一个一个判断岂不是要累死个人.代码也不简洁,这时候我们肯定会想到 ...

  10. C# 一个特别不错的http请求类

    using System; using System.Collections; using System.Collections.Generic; using System.Collections.S ...