定义

HDFS(Hadoop Distributed File System)是分布式文件管理系统中的一种,用来管理多台机器上的文件,通过目录树来定位文件。
由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
适合一次写入,多次读取,且不支持文件的修改。适合用来做数据分析,不适合用来做网盘应用。

优缺点

优点:
1.高容错性
数据自动保存多个副本。通过增加副本的形式,提高容错性
某一个副本丢失以后,可以自动恢复
2.适合处理大数据。
3.可运行在廉价机器上,通过多副本机制,提高可靠性。

缺点:
1.无法低延时访问数据,如毫秒级的存储数据。
2.无法高效的对大量小文件进行存储。
大量小文件会占用 NameNode 大量的内存来存储文件目录信息和块信息
小文件的寻址时间会超过读取时间
3.无法并发写入和文件随机修改。
HDFS上一个文件只能有一个线程写,不允许多个线程同时写
HDFS上的文件仅支持数据append(追加),不支持文件的随机修改

HDFS 组成

HDFS 为 主(Master) / 从(Slave) 架构:一个 NameNode,多个 DataNode(通常是群集中每个节点一个)

NameNode:管理文件系统命名空间(打开、关闭、重命名文件和目录,还确定了文件块在那个 DataNode 上的路径),管理客户端对文件的访问,配置副本策略(复制因子,可为某个文件单独设置),记录对文件系统命名空间或其属性的任何更改

DataNode:存储文件块(负责提供来自文件系统客户端的读写请求,还根据 NameNode 的指令执行块创建、删除和复制),上传至 HDFS 的文件在内部被分成一个或多个块,这些块存储在一组 DataNode 中

Client:
HDFS 客户端
1.文件切分。文件上传HDFS的时候,Client将文件切分成一个一个的Block,然后进行上传
2.与NameNode交互,获取文件的位置信息
3.与DataNode交互,读取或者写入数据
4.Client提供一些命令来管理HDFS,比如NameNode格式化
5.Client可以通过一些命令来访问HDFS,比如对HDFS增删查改操作 Secondary NameNode:
并非NameNode的热备。当NameNode挂掉的时候,它并不能马上替换NameNode并提供服务
1.辅助NameNode,分担其工作量,比如定期合并Fsimage和Edits,并推送给NameNode
2.在紧急情兄下,可辅助恢复NameNode

HDFS 文件块大小设置

HDFS 中的文件在物理磁盘上是分块存储(Block),块的大小可以通过配置参数(dfs.blocksize)来设置
默认大小在Hadoop2.x版本中是128M,1.x中是64M,本地模式中是32M 寻址(查找Block位置)时间为传输时间的 1% 时,则为最佳状态。
目前磁盘的传输速率普遍为 100MB/s 假设 HDFS 寻址时间为 0.01 秒,那最佳块大小为:0.01 / 1% * 100M = 100M,实际有些偏差,所以 100M/s 的磁盘最佳为 128M 块的大小不能设置太小,也不能设置太大
1.块设置太小,会增加寻址时间,程序一直在找块的开始位置
2.块设置太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。导致程序在处理这块数居时,会非常慢 HDFS 块的大小设置主要取决于磁盘传输速率

https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html

https://blog.csdn.net/pear_zi/article/details/8082752

https://www.cnblogs.com/Dhouse/p/6901028.html

HDFS 概述的更多相关文章

  1. HDFS概述

    HDFS概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS产出背景及定义 1>.HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配 ...

  2. HDFS概述(一)

    HDFS概述(一) 1. HDFS产出的背景及定义 1.1 HDFS产生的背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需 ...

  3. HDFS概述和Shell操作

    大数据技术之Hadoop(HDFS) 第一章 HDFS概述 HDFS组成架构 HDFS文件块大小 第二章 HDFS的Shell操作(开发重点) 1.基本语法 bin/hadoop fs 具体命令    ...

  4. HDFS概述(6)————用户手册

    目的 本文档是使用Hadoop分布式文件系统(HDFS)作为Hadoop集群或独立通用分布式文件系统的一部分的用户的起点.虽然HDFS旨在在许多环境中"正常工作",但HDFS的工作 ...

  5. HDFS概述(5)————HDFS HA

    HA With QJM 目标 本指南概述了HDFS高可用性(HA)功能以及如何使用Quorum Journal Manager(QJM)功能配置和管理HA HDFS集群. 本文档假设读者对HDFS集群 ...

  6. HDFS概述(4)————HDFS权限

    概述 Hadoop分布式文件系统(HDFS)的权限模型与POSIX模型的文件和目录权限模型一致.每个文件和目录与所有者和组相关联.该文件或目录将权限划分为所有者的权限,作为该组成员的其他用户的权限.以 ...

  7. HDFS概述(3)————HDFS Federation

    本指南概述了HDFS Federation功能以及如何配置和管理联合集群. 当前HDFS背景 HDFS主要有两层: 1.Namespace (1)包含目录,文件和块. (2)它支持所有命名空间相关的文 ...

  8. HDFS概述(1)————HDFS架构

    概述 Hadoop分布式文件系统(HDFS)是一种分布式文件系统,用于在普通商用硬件上运行.它与现有的分布式文件系统有许多相似之处.然而,与其他分布式文件系统的区别很大.HDFS具有高度的容错能力,旨 ...

  9. HDFS概述(2)————Block块大小设置

    以下内容转自:http://blog.csdn.net/samhacker/article/details/23089157?utm_source=tuicool&utm_medium=ref ...

  10. Hadoop之HDFS概述

    一.HDFS产生背景及定义 1.HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文 ...

随机推荐

  1. Balanced Number HDU - 3709 数位dp

    题意: 给出范围 算出 满足  选取一个数中任一一个 树作为支点  两边的数分别乘以到中心的距离和 左和等于右和   的数有多少个 数位DP题 状态转移方程为dp[pos][x][state]=dp[ ...

  2. HDU - 3917(朴素LIS + 最大流)

    题意: 求出所有的最长上升子序列的个数且每个元素只能用一次 解析: 呵...呵...呵..呵..emm... 再见 我死了...wa了15发之后...原来不能用~  要用 != EOF 这题算水题吧. ...

  3. CodeForces 97 E. Leaders(点双连通分量 + 倍增)

    题意 给你一个有 \(n\) 个点 \(m\) 条边的无向图,有 \(q\) 次询问,每次询问两个点 \(u, v\) 之间是否存在长度为奇数的简单路径. \(1 \le n, m, q \le 10 ...

  4. python活用isdigit方法显示系统进程

    如何利用字符串的内置函数isdigit(),判断一个字符串是一个纯数字.如果是纯数字会返回True,否则返回fasle. 利用isdigit()方法编写一个python脚本显示所有系统进程pid.os ...

  5. 自学Python4.8-生成器(方式二:生成器表达式)

    自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...

  6. 【BZOJ4543】Hotel加强版(长链剖分)

    [BZOJ4543]Hotel加强版(长链剖分) 题面 BZOJ,没有题面 洛谷,只是普通版本 题解 原来我们的\(O(n^2)\)做法是设\(f[i][j]\)表示以\(i\)为根的子树中,距离\( ...

  7. [WC2008]游览计划 解题报告

    [WC2008]游览计划 斯坦纳树板子题,其实就是状压dp 令\(dp_{i,s}\)表示任意点\(i\)联通关键点集合\(s\)的最小代价 然后有转移 \[ dp_{i,S}=\min_{T\in ...

  8. 2018-2019 ACM-ICPC Pacific Northwest Regional Contest C Contest Setting(DP)

    比赛链接:Contest Setting C题 题意:$n$道题目,每道题目难度为$ai$,选择$k$道难度不同的题目,有多少种选择方案.$1<=k<=n<=1000,1<=a ...

  9. centos7安装Jenkins更改默认端口并配置Ldap服务器进行用户认证

    应用环境:Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作.   Jenkins官网:https://jenkins.io/ 测试环境:一台Centos ...

  10. Yii2 如何输出 sql 语句?

    可以用 $model->find()->createCommand()->getRawSql(); 不能带 all(). find() 它的 返回值类型是 yii\db\Active ...