《Hadoop大数据开发实战》教学教案—03HDFS分布式文件系统

上传人:sat****105 文档编号:290121130 上传时间:2022-05-09 格式:DOCX 页数:4 大小:105.73KB
返回 下载 相关 举报
《Hadoop大数据开发实战》教学教案—03HDFS分布式文件系统_第1页
第1页 / 共4页
《Hadoop大数据开发实战》教学教案—03HDFS分布式文件系统_第2页
第2页 / 共4页
《Hadoop大数据开发实战》教学教案—03HDFS分布式文件系统_第3页
第3页 / 共4页
《Hadoop大数据开发实战》教学教案—03HDFS分布式文件系统_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《《Hadoop大数据开发实战》教学教案—03HDFS分布式文件系统》由会员分享,可在线阅读,更多相关《《Hadoop大数据开发实战》教学教案—03HDFS分布式文件系统(4页珍藏版)》请在金锄头文库上搜索。

1、Hadoop大数据开发实战教学设计课程名称:Hadoop大数据开发实战 授课年级: _ _ _授课学期: _ _ _ _ 教师姓名: _ _ 课程名称第3章 HDFS分布式文件系统计划学时4学时内容分析本章主要介绍HDFS简介、HDFS存储架构和数据读写流程、HDFS的Shell命令、Java程序操作HDFS、Hadoop序列化、Hadoop小文件处理、通信机制RPC教学目标与教学要求要求学生掌握HDFS的架构和原理、掌握HDFS的Shell和Java API操作方法、了解Hadoop序列化、了解Hadoop小文件处理方式教学重点HDFS存储架构和数据读写流程、HDFS的Shell命令、Jav

2、a程序操作HDFS、Hadoop序列化、Hadoop小文件处理、通信机制RPC教学难点HDFS存储架构和数据读写流程、HDFS的Shell命令、Java程序操作HDFS、Hadoop序列化、Hadoop小文件处理、通信机制RPC教学方式课堂讲解及ppt演示教学过程第一课时(HDFS简介、HDFS存储架构和数据读写流程、HDFS的Shell命令、Java程序操作HDFS)回顾内容,引出本课时主题1.回顾内容,引出本课时的主题上节学习了Hadoop集群搭建和使用,本节将学习HDFS分布式文件系统的相关知识。 Hadoop的核心是HDFS和MapReduce。HDFS由NDFS系统演变而来,主要解决

3、海量大数据存储的问题,也是目前分布式文件系统中应用比较广泛的一个。本章将带领大家深刻理解和运用HDFS系统。2.明确学习目标(1) 能够了解HDFS(2) 能够理解HDFS数据的存储和读取方式(3) 能够掌握HDFS的特点(4) 能够掌握HDFS的存储架构和数据读写流程(5) 能够掌握HDFS的Shell命令(6) 能够掌握Java程序操作HDFS知识讲解 HDFS的概念HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)是一种通过网络实现文件在多台主机上进行分布式存储的文件系统。分布式存储比普通存储方式节省时间。例如,现有10台计算机,每台计算

4、机上有1TB的硬盘。如果将Hadoop安装在这10台计算机上,可以使用HDFS进行分布式的文件存储。相当于登录到一台具有10 TB存储容量的大型机器。而用HDFS分布式的文件存储方式在10台计算机上存储,显然比用普通方式在1台计算机上存储更节省时间,这就如同3个人吃3个苹果比1个人吃3个苹果要快。1NameNodeNameNode(名称节点)管理文件系统的命名空间。它负责维护文件系统树及树内所有的文件和目录。这些信息以两个文件(命名空间镜像文件和编辑日志文件)的形式永久保存在本地磁盘上。同时NameNode也记录着每个文件中各个块所在的数据节点信息,但它并不永久保存块的位置信息,因为这些信息在

5、系统启动时由数据节点重建。 2DataNodeDataNode(数据节点)是HDFS实例中在单独机器上运行的软件,Hadoop集群包含一个NameNode和大量的DataNode。一般情况下DataNode以机架的形式组织,机架通过一个交换机把所有的系统连接起来。Hadoop的一个假设是:机架内部节点之间的传输速度要快于机架间的传输速度。DataNode响应来自HDFS 客户机的读写请求。它们还响应来自NameNode的创建、删除和复制块的命令。NameNode依赖来自每个DataNode的定期心跳(Heartbeat)消息。每条消息都包含一个块报告,NameNode 可以根据这个报告验证块映

6、射和其他文件系统元数据。如果 DataNode 不能发送心跳消息,NameNode 将采取修复措施,重新复制在该节点上丢失的块。 HDFS数据的存储和读取方式(1)对于大文件的存储,HDFS采用分割的方式。HDFS将大文件分割到既定的存储块(Block)中进行存储,并通过本地设定的任务节点进行预处理。(2)对于大量小文件的存储,HDFS采用普通的编程与压缩方式。在实际工作中,更多时候是产生并存储大量的小文件。(3)对于普通文件的读取操作,HDFS采用分批次读取。(4)对于大量数据的读取,HDFS采用集中式存储的方式,存储时的优化使得读取能够在一个连续的区域内进行,节省读取数据的时间。(5)对于

7、少量数据的随机读取,HDFS一般采用按序读取的方式,即先把少量的随机读取操作合并,后按顺序读取数据。 HDFS的特点1.HDFS的优点(1)成本低。HDFS可以部署在价格低廉的硬件上,成本较低。例如,只要有台式机或笔记本电脑,就可以部署HDFS。(2)高容错。HDFS运用众多服务器实现分布式存储,每个数据文件都有2个冗余备份,也就是每个数据文件被存储3次。如果存储数据的某个服务器发生了故障,数据还有2个备份,因此,HDFS具有高容错的特性,允许服务器发生故障。(3)高吞吐量。吞吐量是指单位时间内完成的工作量。HDFS实现了并行处理海量数据,大大缩短了处理时间,允许服务器发生故障。(4)存储数据

8、种类多。HDFS可以存储任何类型的数据,如结构化的数据、非结构化的数据、半结构化的数据。(5)可移植。HDFS可以实现不同平台之间的移植。2. HDFS的缺点(1)高延时。HDFS不适用于低时间延迟的数据访问。(2)不适合小文件存取场景。对于 Hadoop 系统而言,小文件通常指远小于 HDFS 的数据块大小(128MB)的文件, 由于每个文件都会产生各自的元数据,Hadoop 通过 NameNode 来存储这些信息,若小文件过多,容易导致NameNode存储出现瓶颈。(3)不适合并发写入。HDFS 目前不支持并发多用户的写操作,写操作只能在文件末尾追加数据。 HDFS存储架构对于HDFS 架

9、构来说,一个HDFS基本集群的节点主要包括NameNode、DataNode、SecondaryNameNode。HDFS采用的主/从模式架构,如图所示。1.HDFS的Client、NameNode、DataNode在图中,Client是客户端,NameNode是名称节点,SecondaryNamenode是辅助名称节点,DataNode是数据节点。下面分别介绍各部分的功能。(1)Client。Client主要负责切分文件,与各节点进行交互。(2)NameNode。NameNode是HDFS架构中的主节点(或称Master节点)。在HDFS架构中只有一个NameNode。NameNode主要负

10、责管理HDFS的元数据,配置副本的放置策略,处理Client请求。(3)DataNode。DataNode是HDFS架构中的从节点(Slave)。DataNode负责存储client发来的数据块,执行数据块的读写操作,汇报存储信息给NameNode。(4)fsimage和edits。fsimage(镜像文件)和edits(日志文件)是NameNode中两个很重要的文件。fsimage是元数据镜像文件,内容是NameNode启动时对整个文件系统的快照(即备份)。edits是元数据操作日志,内容是每次保存fsimage之后至下次保存fsimage之前进行的所有HDFS操作。(5)Secondary

11、 NameNode。SecondaryNameNode主要用来进行镜像备份,对NameNode中的edits文件与fsimage文件进行定期合并。镜像备份是指备份fsimage文件。随着HDFS操作的次数越来越多,edits文件也会越来越多,所占存储空间越来越大。如果NameNode出现故障,NameNode重启时,会先把fsimage文件加载到内存中,然后合并edits文件,edits文件占空间大会导致NameNode重启很耗时。对于实际操作来说,这是一个比较麻烦的问题。SecondaryNameNode对Namenode中的edits文件与fsimage文件进行定期合并,很好地解决了这一问

12、题,这也是HDFS高容错特点的一个表现。合并edits文件和fsimage文件,SecondaryNameNode每隔1小时执行1次,可能会出现数据丢失问题。目前大部分企业采用Hadoop的HA(High Available,高可用)模式下备用的NameNode,对Namenode中的edits文件与fsimage文件进行实时合并。2.HDFS数据损坏的处理在HDFS架构使用过程中,可能会出现数据损坏的情况。这种情况发生时HDFS处理步骤如下。(1)DataNode读取Block时,会计算Checksum(校验和)。(2)如果计算后的Checksum,与Block创建时值不一样,说明该Bloc

13、k已经损坏。(3)Client读取其他DataNode上的Block。(4)NameNode标记该块已经损坏,然后复制Block达到预期先置的文件副本数。(5)DataNode在新文件创建三周后验证其Checksum。 HDFS的数据读写流程HDFS的数据读取流程,如图所示。这一过程具体详解参见教材3.2.2节内容。HDFS的数据写入流程,如图所示。这一过程的具体讲解参见教材3.2.2节内容。 HDFS的Shell命令HDFS提供了Shell命令来操作HDFS,这些Shell命令和对应的Linux Shell命令相似,这样设计有利于使用者快速学会操作HDFS。在使用Shell命令操作HDFS之

14、前,需要先启动Hadoop。rootqf01 # start-dfs.shHDFS Shell命令的一般格式如下。hdfs dfs -cmd 参数HDFS常见的Shell命令如下。1.put(1)put命令可以上传本地(CentOS系统)文件或本地目录到HDFS目录,使用方法如下。hdfs dfs -put 本地文件或本地目录 HDFS目录(2)通过示例演示其用法,具体如下。1)新建本地文件1.txt,并写入内容hello。rootqf01 # echo hello 1.txt2)把本地文件1.txt上传到HDFS的根目录下。rootqf01 # hdfs dfs -put 1.txt /3)

15、新建本地目录data,把目录data上传到HDFS的根目录下。rootqf01 # mkdir datarootqf01 # hdfs dfs -put data /2.ls(1)ls命令可以列出HDFS文件或目录,使用方法如下。hdfs dfs -ls HDFS文件/HDFS目录(2)通过示例演示其用法,具体如下。 rootqf01 # hdfs dfs -ls /-rw-r-r- 3 root supergroup 6 2018-07-17 11:50 /1.txtdrwxr-xr-x - root supergroup 0 2018-07-17 12:00 /data3.cat(1)cat命令可以查看HDFS文件的内容,使用方法如下。hdfs dfs -cat HDFS文件(2)通过示例演示其用法,具体如下。rootqf01 # hdfs dfs -cat

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号