一.简介

  HDFS【Hadoop Distributed File System】是Hadoop组件中的分布式存储系统,提供高可靠性、高扩展性和高吞吐率的数据存储服务。

二.存储模型

  1.文件线性切割成块【Block】,块分散存储在集群的各个节点中。

  2.单一文件Block大小一致,不同的文件可以设置的不一样。

  3.Block可以设置副本数,副本分散在不同的节点【副本数不要超过节点数,这样副本设置才有意义】。

  4.文件上传可以设置Block大小和副本数,已上传的文件Block副本数可以调整,大小不变。

  5.只支持一次写入多次读取,同一时刻只有一个写入,可以追加数据。

三.架构模型

  1.NameNode【主】节点保存文件元数据,DataNode节点保存文件Block数据。

  2.DataNode和NameNode之间通过心跳确认各个节点的健康情况,以及是否需要重启节点。

  3.HDFSClient与NameNode交互元数据信息,与DataNode交互文件Block数据【需先访问NameNode】。

  

四.NameNode【NN】

  特点:

  1.基于内存存储,不会和磁盘发生交换。

  2.接受客户端的读写请求,收集DataNode汇报的Block列表信息。

  3.保存metadata信息,包括:文件ownership和permissions、文件大小、时间、Block列表、Block偏移量、位置信息和Block副本位置【由DataNode上报】等。

  持久化:

  1.NameNode的metadata信息在启动后会加载到内存。

  2.metadata存储到磁盘文件名称为"fsimage"。

  3.Block的位置信息不会保存到fsimage。

  4.edits记录对metadata的操作日志。

HDFS快速入门的更多相关文章

  1. Spark快速入门 - Spark 1.6.0

    Spark快速入门 - Spark 1.6.0 转载请注明出处:http://www.cnblogs.com/BYRans/ 快速入门(Quick Start) 本文简单介绍了Spark的使用方式.首 ...

  2. Hadoop快速入门

    目的 这篇文档的目的是帮助你快速完成单机上的Hadoop安装与使用以便你对Hadoop分布式文件系统(HDFS)和Map-Reduce框架有所体会,比如在HDFS上运行示例程序或简单作业等. 先决条件 ...

  3. sqoop 1.4.4-cdh5.1.2快速入门

    一.快速入门 (一)下载安装 1.下载并解压 wget http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.4-cdh5.1.2.tar.gz tar - ...

  4. Apache Spark 2.2.0 中文文档 - 快速入门 | ApacheCN

    快速入门 使用 Spark Shell 进行交互式分析 基础 Dataset 上的更多操作 缓存 独立的应用 快速跳转 本教程提供了如何使用 Spark 的快速入门介绍.首先通过运行 Spark 交互 ...

  5. Spark快速入门

    Spark 快速入门   本教程快速介绍了Spark的使用. 首先我们介绍了通过Spark 交互式shell调用API( Python或者scala代码),然后演示如何使用Java, Scala或者P ...

  6. Hadoop生态圈-大数据生态体系快速入门篇

    Hadoop生态圈-大数据生态体系快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.大数据概念 1>.什么是大数据 大数据(big data):是指无法在一定时间 ...

  7. Spark2.x学习笔记:Spark SQL快速入门

    Spark SQL快速入门 本地表 (1)准备数据 [root@node1 ~]# mkdir /tmp/data [root@node1 ~]# cat data/ml-1m/users.dat | ...

  8. 大数据技术之_09_Flume学习_Flume概述+Flume快速入门+Flume企业开发案例+Flume监控之Ganglia+Flume高级之自定义MySQLSource+Flume企业真实面试题(重点)

    第1章 Flume概述1.1 Flume定义1.2 Flume组成架构1.2.1 Agent1.2.2 Source1.2.3 Channel1.2.4 Sink1.2.5 Event1.3 Flum ...

  9. Hadoop生态圈-Hive快速入门篇之HQL的基础语法

    Hadoop生态圈-Hive快速入门篇之HQL的基础语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客的重点是介绍Hive中常见的数据类型,DDL数据定义,DML数据操作 ...

随机推荐

  1. 整理一下pywinauto 的sendeys(py2.7)换成python3.6用PyUserInput

    没办法入门学的是py3.6所以有些只支持2.7的库保好放弃了 senkeys (2.7)==>pyuserinput (3.6) ================================ ...

  2. Android--Service之AIDL传递系统基本类型数据

    前言 前面讲解了Service的一些基本内容.但是对于绑定服务传递数据,只局限于本地服务,无法使用服务进行跨进程间的交互.如果需要用到跨进程交互的话,需要用到一个新的技术-AIDL,这篇博客就针对AI ...

  3. 函数式编程之-拒绝空引用异常(Option类型)

    众多语言都会设计Option类型,例如Java 8和Swift都设计了Optional类型.其实这种类型早就出现在了函数式语言中,在OCaml和Scala中叫Option,在Haskell中叫Mayb ...

  4. bootbox.js官方文档

    简介 Bootbox.js是一个小型的JavaScript库,基于Bootstrap模态框开发,用于创建可编程的对话框. 不像原生的alert等对话框,所有的Bootstrap模态框生成的都是非阻塞事 ...

  5. flask中接收post传递数组方法

    list = request.form.getlist("表单名")

  6. 【ASP.NET MVC系列】浅谈ASP.NET 页面之间传值的几种方式

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  7. 南大算法设计与分析课程复习笔记(3)L3 - Recursion

    一.递归方程 按照分治的思想,可以将一个递归的复杂度写成递归方程 一.解递归方程--猜然后证明 该方法又称为代入法,步骤如下: 1.猜解的形式 2.数学归纳法证明正确 例子: 我们假设有如下递归式: ...

  8. 在go modules里使用go get进行包管理

    上一篇文章里我们介绍了go modules的初步使用,现在我们来更深入的了解一下如何使用go get在module中管理依赖. module下的包管理 首先我们介绍过go mod edit修改go.m ...

  9. JavaScript匿名函数入门。

    1.第一种匿名函数的使用:简单的调用 var f=function(){ return 'Hello'; };   //匿名函数没法调用,只能赋值,所以作为赋值语句后面得加分号 var result= ...

  10. Centos 7.6配置nginx反向代理,直接yum安装

    一,实验介绍 利用三台centos7虚拟机搭建简单的nginx反向代理负载集群, 三台虚拟机地址及功能介绍 192.168.2.76    nginx负载均衡器 192.168.2.82    web ...