初次接触分布式文件系统,有很多迷惑。通过参考网络文章,这里进行对比一下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系统文件系统 对比的更多相关文章

  1. 导览Linux系统文件系统类型

    虽然对于普通用户来说可能并不明显,但在过去十年左右的时间里,Linux 文件系统已经发生了显著的变化,这使它们能够更好对抗损坏和性能问题. 如今大多数 Linux 系统使用名为 ext4 的文件系统. ...

  2. Linux系统文件系统及文件基础篇

    学习Linux,重难点在于掌握不同类别的文件系统及其作用.通过对Linux系统的安装,我们首先来了解下Linux系统里各个目录文件夹下的大致功能:主要的目录树的有/./root./home./usr. ...

  3. linux系统文件系统重要知识介绍

    [root@Asterplus:~]$ls -lhitotal 48K3684713 -rw------- 1 root root 5.9K Jul 1 00:23 anaconda-ks.cfg36 ...

  4. Linux系统——文件系统与LVM 逻辑

    格式化命令 mkfs. mkswap mkfs格式化数据磁盘 # mkfs -t ext4 /dev/sdb1 # mkfs.ext4 /dev/sdb1 -t 指定格式化文件类型 -b 指定bloc ...

  5. linux分区,文件系统,目录结构概述

    1.Linux中如何表示硬盘,分区 Linux内核读取光驱,硬盘等资源时均通过“设备文件”的形式进行,因此在linux系统中,将硬 盘和分区表示为不同的文件.具体表述形式如下: 硬盘:对于IDE接口的 ...

  6. linux内核文件系统:proc、tmpfs、devfs、sysfs简要介绍

    linux内核文件系统:proc.tmpfs.devfs.sysfs proc:虚拟文件系统,在linux系统中被挂载与/proc目录下.里面的文件包含了很多系统信息,比如cpu负载. 内存.网络配置 ...

  7. Linux 的文件系统

    Linux 文件属性 文件属性示意图 第一栏代表这个文件的类型与权限(permission): FHS Filesystem Hierarchy Standard(文件系统层次化标准) 1. / (r ...

  8. 制作linux根文件系统

    转载地址:http://wenku.baidu.com/view/2cb1b4707fd5360cba1adb14.html 2011十一月 24 转 嵌入式根文件系统制作 (3985) (0) 转自 ...

  9. Linux系统添加硬盘设备(磁盘分区-格式化-挂载-使用)

    当全新安装了一块新的硬盘设备后,为了更充分.更安全的利用硬盘空间首先要进行磁盘的分区, 然后格式化,最后挂载使用. 实例:对新添加的硬盘设备进行分区.格式化并挂载到/newFS目录. 第一步:在vmw ...

随机推荐

  1. DataFrame基本操作

    这些操作在网上都可以百度得到,为了便于记忆自己再根据理解总结在一起.---------励志做一个优雅的网上搬运工 1.建立dataframe (1)Dict to Dataframe df = pd. ...

  2. Win10上安装Keras 和 TensorFlow(GPU版本)

    一. 安装环境 Windows 10 64bit  家庭版 GPU: GeForce GTX1070 Python: 3.5 CUDA: CUDA Toolkit 8.0 GA1 (Sept 2016 ...

  3. volatile 关键字了解与使用

    前言 不管是在面试还是实际开发中 volatile 都是一个应该掌握的技能. 首先来看看为什么会出现这个关键字. 内存可见性 由于 Java 内存模型(JMM)规定,所有的变量都存放在主内存中,而每个 ...

  4. 插入排序——Insertion Sort

    基本思想: 在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使得这n个数也是排好顺序的.如此反复循环,直到全部排好顺序. 过程: 平均时间复杂度:O(n2) jav ...

  5. mysql使其支持插入中文数据的办法

    1.找到安装的文件夹C:\Program Files (x86)\MySQL\MySQL Server 5.0 2.修改文件夹下的my.ini文件: 找到画黄线的这一字段 将后面改为utf8 这个过程 ...

  6. rfc2818 --- HTTP Over TLS

    协议链接 本协议描述了如何使用TLS来对Internet上的HTTP进行安全加固. 2.1. Connection Initiation(链接初始化) HTTP client同时也作为TLS clie ...

  7. nginx介绍(六) - 通过反向代理实现跨域访问

    前言 跨域访问问题, 相信很多人都遇到过, 并且都用不同的办法去解决过. 方法有很多种, 不一一叙述了. 这里主要使用nginx反向代理来解决跨域问题. 啥是跨域 假如你是百度开发人员, 在百度页面去 ...

  8. 常见注入手法第四讲,SetWindowsHookEx全局钩子注入.以及注入QQ32位实战.

    常见注入手法第四讲,SetWindowsHookEx全局钩子注入.以及注入QQ32位实战. PS:上面是操作.最后是原理 一丶需要了解的API 使用全局钩子注入.我们需要了解几个WindowsAPI. ...

  9. php使用memcached缓存总结

    1. 查询多行记录,以sql的md5值为key,缓存数组(个人觉得最好用的方法) $mem = new Memcache(); $mem->connect('127.0.0.1',11211); ...

  10. 通过webservice(System.Data.OracleClient)调试oracle

    环境:vs2008+webservice+net framework3.5+oracle10g 原因:在项目中运行web程序,默认是使用vs内置web服务器(develop server),而这个内置 ...