分布式文件系统(HDFS)与 linux系统文件系统 对比
初次接触分布式文件系统,有很多迷惑。通过参考网络文章,这里进行对比一下Hadoop 分布式文件系统(HDFS)与 传统文件系统之间的关系:
| Linux 文件系统 | 分布式文件系统 | |
| 块 | 块对应物理磁盘的block | 块对应linux 文件 |
| 读写单位 | 一个磁盘块的大小是最小单位 | Linux 系统文件是最小读写单位(默认64mb) |
| 单个文件 | 多个数据块组成 | 多个文件组成 |
| 文件元数据信息 |
inode 记录文件存放的数据区的block指针 |
namenode 记录linux 数据文件所在的datanode |
每个磁盘都有默认的数据块大小,这是磁盘进行数据读/写的最小单位。而构建于单个磁盘之上的文件系统(linux文件系统)通过磁盘块来管理该文件系统中的块,该文件系统中的文件大小是磁盘块的整数倍。磁盘块的大小一般为512字节,其读写的最小单位是磁盘块的最小单位.文件占用的块由inode进行管理,记录该文件存放数据的N个block的物理地址,具体linux下文件系统的构成请参考我另一篇文章。
HDFS同样也有块的概念,HDFS文件系统中的块指的是linux文件,分布式文件就是有多个linux文件(块)组成。其最小块单位就是一个Linux文件的大小,默认为64MB,其分片成的linux文件的文件名有HDFS的namenode管理,该节点还管理了linux文件对应datanode节点的映射关系。假设有一个1G的大文件,在linux文件系统上就是一个文件,由1G/512b的block组成;在HDFS上需要1024MB/64MB=16块,即16个linux文件组成,所以相当于一个普通1G的文件分成了16个小文件,在HDFS上的namenode会记录1G文件名对应16个文件名映射关系和16个文件名在对应datanote节点上的映射关系(备份除外)。datanote节点上的16个小文件就是linux文件,在各自datanote节点上的inode里记录了16个文件对应物理磁盘的映射关系。简而言之:1G的分布式文件转换成16个linux文件,HDFS就是实现了拆分文件功能,当然由于考虑单点故障原因,它把每个文件复制了3份(默认), 不管哪个节点出故障可以合成完整的一个1G文件。
保持更新,转载请注明出处。如果对你有所帮助请点击右下角的推荐进行支持。
参考链接:
http://www.cnblogs.com/yyyyy5101/articles/1901842.html
https://blog.csdn.net/qq_32041579/article/details/77752733
分布式文件系统(HDFS)与 linux系统文件系统 对比的更多相关文章
- 导览Linux系统文件系统类型
虽然对于普通用户来说可能并不明显,但在过去十年左右的时间里,Linux 文件系统已经发生了显著的变化,这使它们能够更好对抗损坏和性能问题. 如今大多数 Linux 系统使用名为 ext4 的文件系统. ...
- Linux系统文件系统及文件基础篇
学习Linux,重难点在于掌握不同类别的文件系统及其作用.通过对Linux系统的安装,我们首先来了解下Linux系统里各个目录文件夹下的大致功能:主要的目录树的有/./root./home./usr. ...
- linux系统文件系统重要知识介绍
[root@Asterplus:~]$ls -lhitotal 48K3684713 -rw------- 1 root root 5.9K Jul 1 00:23 anaconda-ks.cfg36 ...
- Linux系统——文件系统与LVM 逻辑
格式化命令 mkfs. mkswap mkfs格式化数据磁盘 # mkfs -t ext4 /dev/sdb1 # mkfs.ext4 /dev/sdb1 -t 指定格式化文件类型 -b 指定bloc ...
- linux分区,文件系统,目录结构概述
1.Linux中如何表示硬盘,分区 Linux内核读取光驱,硬盘等资源时均通过“设备文件”的形式进行,因此在linux系统中,将硬 盘和分区表示为不同的文件.具体表述形式如下: 硬盘:对于IDE接口的 ...
- linux内核文件系统:proc、tmpfs、devfs、sysfs简要介绍
linux内核文件系统:proc.tmpfs.devfs.sysfs proc:虚拟文件系统,在linux系统中被挂载与/proc目录下.里面的文件包含了很多系统信息,比如cpu负载. 内存.网络配置 ...
- Linux 的文件系统
Linux 文件属性 文件属性示意图 第一栏代表这个文件的类型与权限(permission): FHS Filesystem Hierarchy Standard(文件系统层次化标准) 1. / (r ...
- 制作linux根文件系统
转载地址:http://wenku.baidu.com/view/2cb1b4707fd5360cba1adb14.html 2011十一月 24 转 嵌入式根文件系统制作 (3985) (0) 转自 ...
- Linux系统添加硬盘设备(磁盘分区-格式化-挂载-使用)
当全新安装了一块新的硬盘设备后,为了更充分.更安全的利用硬盘空间首先要进行磁盘的分区, 然后格式化,最后挂载使用. 实例:对新添加的硬盘设备进行分区.格式化并挂载到/newFS目录. 第一步:在vmw ...
随机推荐
- abstract、virtual、sealed、 interface、struct 基础知识整理
abstract abstract 修饰符指示被修改内容的实现已丢失或不完整. abstract 修饰符可用于类.方法.属性.索引和事件. 在类声明中使用 abstract修饰符以指示某个类仅旨在作为 ...
- ACM学习<3>
排序算法: 基本:冒泡,快速,选择,堆,插入,shell 多路并归: 1.冒泡排序: 思想:交换排序,通过相邻的交换来达到排序的目的. 流程: ...
- 如何将打包好的文件做成一个APP
本文主要是用来简短的对做成一个APP进行说明,内容可能不是多详细,但会给出具体思路.(仅供参考) 因为各种打包和生成APP的方式多样,今天这里仅仅对用Hbuilder打包进行说明. 1.首先当然需要一 ...
- Redis持久化存储与复制功能简述
一.分布式系统基础理论 分布式系统的两个基础理论: 1.CAP理论 如图: Consistency(强一致性):数据一致更新,所有数据变动都是同步的.Availability(可用性):好的响应性能. ...
- Docker入门之一Docker在Window下安装
最近这几年,各个大公司都在打造自己的云平台,什么阿里云,华为云,腾讯云等等云,以及各种的微服务架构,其实在这当中Docker容器技术算是一个很重要的角色. 一.下载 在下载之前首先检查一下自己的电脑是 ...
- Shell 示例:利用 $RANDOM 产生随机整数
代码如下: #!/bin/bash # $RANDOM 在每次调用的时候,返回一个不同的随机整数 # 指定的范围是: 0 - 32767 MAXCOUNT=10 count=1 echo echo & ...
- Jquery的ID选择器
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></scri ...
- angularjs学习第五天笔记(第二篇:表单验证升级篇)
您好,我是一名后端开发工程师,由于工作需要,现在系统的从0开始学习前端js框架之angular,每天把学习的一些心得分享出来,如果有什么说的不对的地方,请多多指正,多多包涵我这个前端菜鸟,欢迎大家的点 ...
- MVC架构介绍-事件机制
实例产品基于asp.net mvc 5.0框架,源码下载地址:http://www.jinhusns.com/Products/Download 在.net框架中,事件是将事件发送者(触发事件的对象) ...
- Swagger2限定接口范围
前面在使用Swagger2时遇到的坑中简单介绍了Swagger的使用. 不过默认情况下,Swagger2会把项目中的所有接口都展示在列表里,特别是你用了Springboot/SpringCloud之后 ...