hadoop 分布式文件系统
DESCRIPTION
Hadoop 分布式文件系统. by余磊. 分布式文件系统. 分布式文件系统 当数据及大小超过一台独立计算机存储能力,就有必要对其进行分区并存储到若干单独的计算机上。 挑战 容忍节点故障不丢失数据. HDFS设计 1.流式数据访问模式 一次写入多次读取效率最高 2.商用硬件 可运行在普通硬件的集群上 3.低延迟数据访问 可能会以高时间延迟为代价 4.大量小文件 文件总数受限于namenode的内存容量 5.多用户写入,任意修改文件 写操作将数据添加在文件末尾,不支持多个写入者和文件任意位置修改. HDFS概念. “. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/1.jpg)
Hadoop 分布式文件系统by 余磊
![Page 2: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/2.jpg)
分布式文件系统
分布式文件系统当数据及大小超过一台独立计算机存储能力,就有必要对其进行分区并存
储到若干单独的计算机上。
挑战容忍节点故障不丢失数据
HDFS 设计1. 流式数据访问模式 一次写入多次读取效率最高2. 商用硬件 可运行在普通硬件的集群上3. 低延迟数据访问 可能会以高时间延迟为代价4. 大量小文件 文件总数受限于 namenode 的内存容量5. 多用户写入,任意修改文件 写操作将数据添加在文件末尾,不支持多个写入者和文件任意位置修改
![Page 3: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/3.jpg)
HDFS 概念
数据块磁盘进行数据读写的最小单位
HDFS块默认为 64MB , HDFS 中小与一个块大小的文件不会占据整个块
““HDFS 块为什么这么大
目的:最小化寻址开销
块设置足够大,从磁盘传输数据时间可以明显大于定位块开始位置所需时间
不宜过大,任务数太少会减缓 mapreduce 中的 map 任务运行速度
![Page 4: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/4.jpg)
HDFS 块抽象设计的优点
1.一个文件大小可以大于网络中任意一个磁盘的容量 文件的所有块不需要存储在同一磁盘上
2.使用块作为存储单元大大简化了存储子系统的设计 简化存储管理 消除了元数据的顾虑
3.块适合用于数据备份提供数据容错力和可用性 将块复制到少数几个独立机器上,在发生磁盘故障时不丢失数据
![Page 5: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/5.jpg)
HDFS 集群两类节点: namenode 和 datanode
管理者 - 工作者运行模式namenode (管理者)管理文件系统的命名空间维护文件系统树和所有文件目录,以命名镜像文件和编辑日志文件形式永久保存在本地磁盘
datanode (工作节点)根据需要存储并检索数据快,定期向 namenode 发送所需存储块的列表
Hadoop namenode 容错机制没有 namenode 文件系统无法使用!!运行 namenode 服务的机器损坏则所有文件丢失
容错机制:1. 备份组成文件系统元数据持久状态的文件
2. 运行一个辅助 namenode ,定期通过编辑日志合并命名空间镜像。但保存状态滞后于主节点,主节点全失效会丢失部分数据。
![Page 6: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/6.jpg)
Hadoop 文件访问权限
1. 只读权限2.写入权限3.可执行权限
每个文件和目录都有所属用户、组别和模式
超级用户对于超级用户,系统不会执行任何权限检查
![Page 7: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/7.jpg)
HDFS 命令行接口
伪分布模式Hadoop 进程运行在本地机器上模拟小规模集群
fs.default.name 设置默认文件系统,设置 namenode 主机和端口 值:“ hdfs://localhost/”dfs.replication 不会按照默认将文件块备份 值:“ 1”
基本文件操作将本地系统文件复制到 HDFS-copyFromlocal 命令 本地文件被复制到 HDFS 实例
将文件复制回本地( MD5 )校验
![Page 8: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/8.jpg)
HDFS JAVA 抽象类接口
org.apache.hadoop.fs.FileSystem
Hadoop 是 java 写的,通过 java api 可以调用所有 hadoop文件系统的交互操作。其他非java 程序调用 hadoop 比较麻烦
Thrift API 弥补以上不足,把Hadoop 文件系统包装成 Apache Thrift 服务,包含其他语言远程调用的接口
![Page 9: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/9.jpg)
java 接口
FileSystem 类与 Hadoop 某一文件系统交互的 API
![Page 10: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/10.jpg)
FileSystem
![Page 11: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/11.jpg)
FSDataInputStream
![Page 12: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/12.jpg)
写入数据
FileSystem 创建文件方法:
指定 path ,返回写入数据输出流public FsDatatOutputStream creat ( Path f ) throws IOExceptoion
使用 apppend ()方法在已有文件末尾增加数据public FsDatatOutputStream append ( Path f ) throws IOExceptoion
![Page 13: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/13.jpg)
FsDatatOutputStream 对象
![Page 14: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/14.jpg)
文件模式
在一个表达式中使用通配符来匹配多个文件是比较方便的
![Page 15: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/15.jpg)
通配符
通配符并不总是精确表达我们想要访问的文件集, FileSystem 提供了 PathFilter 对象
![Page 16: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/16.jpg)
删除数据
![Page 17: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/17.jpg)
数据流
![Page 18: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/18.jpg)
网络拓补
![Page 19: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/19.jpg)
文件写入
![Page 20: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/20.jpg)
副本的布局
![Page 21: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/21.jpg)
一致模型
文件一致模型描述了对文件读写的可见性(在创建一个文件后希望能在文件系统的命名空间中立即可见,但写入文件的内容并不一定能保证立即可见)
HDFS 强制所有缓存与数据节点同步,调用 FSDataOutputSystem Sync ()方法
![Page 22: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/22.jpg)
distcp 并行复制
并行处理文件,在两个集群间传输大量数据
distcp 作为 mapreduce 作业来实现,通过集群中并行的 map 完成,每个文件通过单一 map 复制,并为每个 map 分配大致相等数据块
![Page 23: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/23.jpg)
hadoop 存档
文件按块存储,元数据存储在 namenode 内存,小文件效率低
HAR Hadoop 存档文件,将文件存入 HDFS 块,减少 namnode 内存使用,允许对文件透明访问,可用作 mapreduce 输入
archieve 指令
![Page 24: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/24.jpg)
HAR 不足之处
1. 创建存档文件会创建原始文件副本,需要多余内存空间
2. 一旦创建存档文件不能被修改
3.HAR 可被作为 mapreduce 输入但 InputFormat 类不知道文件存档。
![Page 25: Hadoop 分布式文件系统](https://reader033.vdocuments.mx/reader033/viewer/2022061614/56812c27550346895d909896/html5/thumbnails/25.jpg)
在此输入标题
输入文字在此录入上述图表的综合分析结论在此录入上述图表的综合分析结论在此录入上述图表的综合分析结论在此录入上述图表的综合分析结论
““谢谢您的耐心阅读!