博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop 的文件系统
阅读量:6292 次
发布时间:2019-06-22

本文共 796 字,大约阅读时间需要 2 分钟。

hot3.png

申明:文中大部分的图表都来自于《Hadoop技术内幕:深入解析Hadoop Common 和HDFS架构设计与实现原理》,如果有侵权行为欢迎通知本文作者进行删除。

一、Java 文件系统

  • 当前Java中的文件系统

143415_zdVD_260264.png

  • Java中的输入、输出流

143701_IlpJ_260264.png

  • Java中输入流的详细情况

143850_oDdn_260264.png

二、Hadoop 抽象文件系统

  • Hadoop中当前抽象文件系统

(更多关于FileSystem的细节,请查看 Hadoop 关于文件系统的源码)

144539_4L95_260264.png

  • Hadoop中的输入、输出流

Hadoop 中的输入流主要有 FSInputStream,FSDataInputStream

145810_9Gvn_260264.png

145836_ghaL_260264.png

Hadoop 中的输出流主要有 FSOutputSummer,FSDataOutputStream

150302_NDAt_260264.png

该类提供了,文件内容校验的功能,详细了解请看源码

150353_Kmhv_260264.png

  • Hadoop 中和文件系统相关的,权限模块

Hadoop的权限系统和Linux的权限系统非常相似,详细请参考源码

151258_I5iE_260264.png

三、Hadoop 具体文件系统

  • FileSystem 层次结构

151759_v16n_260264.png

在 Hadoop 中有很对文件系统都对 FileSystem 提供了实现

其中的 ChecksumFileSystem: 用于在原始文件系统上添加校验功能

RawInMemoryFileSystem: 实现了基于内存的文件系统。我们重点看下ChecksumFileSystem

  • ChecksumFileSystem 的实现

152958_nbaO_260264.png

ChecksumFileSystem 对每个文件都会新建一个校验文件以“.”开头以“crc”结尾

ChecksumFileSystem 还包含了一个输入流和一个输出流

153411_Nccg_260264.png

153451_OMGV_260264.png

对输入流的大部分关于校验的操作都在  FSInputChecker 中实现

153601_j8KS_260264.png

想对细节有了解的,建议去看源代码,其中还是有些非常优美的实现。

转载于:https://my.oschina.net/u/260264/blog/823733

你可能感兴趣的文章
js数组的操作
查看>>
springmvc Could not write content: No serializer
查看>>
Python系语言发展综述
查看>>
新手 开博
查看>>
借助开源工具高效完成Java应用的运行分析
查看>>
163 yum
查看>>
第三章:Shiro的配置——深入浅出学Shiro细粒度权限开发框架
查看>>
80后创业的经验谈(转,朴实但实用!推荐)
查看>>
让Windows图片查看器和windows资源管理器显示WebP格式
查看>>
我的友情链接
查看>>
vim使用点滴
查看>>
embedded linux学习中几个需要明确的概念
查看>>
mysql常用语法
查看>>
Morris ajax
查看>>
【Docker学习笔记(四)】通过Nginx镜像快速搭建静态网站
查看>>
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
查看>>
<转>云主机配置OpenStack使用spice的方法
查看>>
java jvm GC 各个区内存参数设置
查看>>
[使用帮助] PHPCMS V9内容模块PC标签调用说明
查看>>
关于FreeBSD的CVSROOT的配置
查看>>