1 / 25

Hadoop 分布式文件系统

Hadoop 分布式文件系统. by余磊. 分布式文件系统. 分布式文件系统 当数据及大小超过一台独立计算机存储能力,就有必要对其进行分区并存储到若干单独的计算机上。 挑战 容忍节点故障不丢失数据. HDFS设计 1.流式数据访问模式 一次写入多次读取效率最高 2.商用硬件 可运行在普通硬件的集群上 3.低延迟数据访问 可能会以高时间延迟为代价 4.大量小文件 文件总数受限于namenode的内存容量 5.多用户写入,任意修改文件 写操作将数据添加在文件末尾,不支持多个写入者和文件任意位置修改. HDFS概念 . “.

dustin-cote
Télécharger la présentation

Hadoop 分布式文件系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hadoop 分布式文件系统 by余磊

  2. 分布式文件系统 分布式文件系统 当数据及大小超过一台独立计算机存储能力,就有必要对其进行分区并存储到若干单独的计算机上。 挑战 容忍节点故障不丢失数据 HDFS设计 1.流式数据访问模式 一次写入多次读取效率最高 2.商用硬件 可运行在普通硬件的集群上 3.低延迟数据访问 可能会以高时间延迟为代价 4.大量小文件 文件总数受限于namenode的内存容量 5.多用户写入,任意修改文件 写操作将数据添加在文件末尾,不支持多个写入者和文件任意位置修改

  3. HDFS概念 “ “ 数据块 磁盘进行数据读写的最小单位 HDFS块 默认为64MB,HDFS中小与一个块大小的文件不会占据整个块 HDFS块为什么这么大 目的:最小化寻址开销 块设置足够大,从磁盘传输数据时间可以明显大于定位块开始位置所需时间 不宜过大,任务数太少会减缓mapreduce中的map任务运行速度

  4. HDFS块抽象设计的优点 1.一个文件大小可以大于网络中任意一个磁盘的容量 文件的所有块不需要存储在同一磁盘上 2.使用块作为存储单元大大简化了存储子系统的设计 简化存储管理 消除了元数据的顾虑 3.块适合用于数据备份提供数据容错力和可用性 将块复制到少数几个独立机器上,在发生磁盘故障时不丢失数据

  5. HDFS集群两类节点:namenode和datanode 管理者-工作者运行模式 namenode(管理者)管理文件系统的命名空间 维护文件系统树和所有文件目录,以命名镜像文件和编辑日志文件形式永久保存在本地磁盘 datanode(工作节点)根据需要存储并检索数据快,定期向namenode发送所需存储块的列表 Hadoop namenode容错机制 没有namenode文件系统无法使用!!运行namenode服务的机器损坏则所有文件丢失 容错机制: 1.备份组成文件系统元数据持久状态的文件 2.运行一个辅助namenode,定期通过编辑日志合并命名空间镜像。但保存状态滞后于主节点,主节点全失效会丢失部分数据。

  6. Hadoop文件访问权限 1.只读权限 2.写入权限 3.可执行权限 每个文件和目录都有所属用户、组别和模式 超级用户 对于超级用户,系统不会执行任何权限检查

  7. HDFS命令行接口 伪分布模式 Hadoop进程运行在本地机器上模拟小规模集群 fs.default.name设置默认文件系统,设置namenode主机和端口 值:“hdfs://localhost/” dfs.replication 不会按照默认将文件块备份 值:“1” 基本文件操作 将本地系统文件复制到HDFS -copyFromlocal 命令 本地文件被复制到HDFS实例 将文件复制回本地(MD5)校验

  8. HDFS JAVA抽象类接口 org.apache.hadoop.fs.FileSystem Hadoop是java写的,通过java api可以调用所有hadoop文件系统的交互操作。其他非java程序调用hadoop比较麻烦 Thrift API 弥补以上不足,把Hadoop文件系统包装成Apache Thrift服务,包含其他语言远程调用的接口

  9. java接口 FileSystem类 与Hadoop某一文件系统交互的API

  10. FileSystem

  11. FSDataInputStream

  12. 写入数据 FileSystem创建文件方法:指定path,返回写入数据输出流public FsDatatOutputStream creat(Path f) throws IOExceptoion 使用apppend()方法在已有文件末尾增加数据public FsDatatOutputStream append(Path f) throws IOExceptoion

  13. FsDatatOutputStream对象

  14. 文件模式 在一个表达式中使用通配符来匹配多个文件是比较方便的

  15. 通配符 通配符并不总是精确表达我们想要访问的文件集,FileSystem提供了PathFilter对象

  16. 删除数据

  17. 数据流

  18. 网络拓补

  19. 文件写入

  20. 副本的布局

  21. 一致模型 文件一致模型描述了对文件读写的可见性(在创建一个文件后希望能在文件系统的命名空间中立即可见,但写入文件的内容并不一定能保证立即可见) HDFS强制所有缓存与数据节点同步,调用FSDataOutputSystem Sync()方法

  22. distcp并行复制 并行处理文件,在两个集群间传输大量数据 distcp作为mapreduce作业来实现,通过集群中并行的map完成,每个文件通过单一map复制,并为每个map分配大致相等数据块

  23. hadoop存档 文件按块存储,元数据存储在namenode内存,小文件效率低 HAR Hadoop存档文件,将文件存入HDFS块,减少namnode内存使用,允许对文件透明访问,可用作mapreduce输入 archieve指令

  24. HAR不足之处 1.创建存档文件会创建原始文件副本,需要多余内存空间 2.一旦创建存档文件不能被修改 3.HAR可被作为mapreduce输入但InputFormat类不知道文件存档。

  25. 在此输入标题 “ “ 输入文字 在此录入上述图表的综合分析结论 在此录入上述图表的综合分析结论 在此录入上述图表的综合分析结论 在此录入上述图表的综合分析结论 谢谢您的耐心阅读!

More Related