版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Hadoop大数据项目开发——HDFS简介目录content0201HDFS简介HDFS实现目标和自身局限性HDFS简介HDFS是Hadoop两大核心组件之一。分布式存储:HDFS分布式处理:MapReduceHDFS就是为了解决海量数据的分布式存储问题。HadoopDistributedFileSystemHDFS简介--集群在大数据时代,数据量非常大,单个节点一台计算机是无论如何完成不了海量数据的存储,我们需要借助计算机集群存储海量数据。单机无法存储集群分布式存储HDFS简介--集群每个竖排代表一个机架,每个机架上摆放了好多机器,每个机器称为一个节点,在企业一个机架可以摆放30-40个节点,机架和机架之间是通过光纤交换机来完成彼此之间的网络互联。在这个集群中,HDFS把整个文件分布的存储在这些机器里。HDFS简介分布式文件系统解决了大数据存储问题,是横跨在多台计算机上的存储系统;分布式文件系统在大数据时代有着广泛的应用前景,为存储和处理超大规模数据提供扩展能力;分布式文件系统适用于一次写入,多次读出的场景,且不支持文件的修改,适合用来做数据分析。HDFS的实现目标成本低流式数据访问适合处理大数据高容错性大文件存储成本低HDFS集群可构建在廉价计算机上,通过多副本机制,提高可靠性。个人计算机搭建大数据集群HDFS的实现目标适合流式数据访问HDFS的数据处理规模比较大,应用程序一次需要访问大量的数据,HDFS的设计目标就是全部数据全部读写,它不适合访问整个文件中的一个子集。HDFS是为满足海量数据的批量处理而设计的。HDFS的实现目标适合处理大数据HDFS可横向扩展,其存储的数据规模:能够处理数据规模达到PB级别的数据;文件规模:能够处理百万规模以上的文件数量;节点规模:能够处理10K节点的规模。HDFS的实现目标高容错性数据保存多个副本,副本丢失后自动恢复;构建在廉价的计算机上,容易实现线性扩展,当集群增加新节点之后,名称节点(NameNode)也可以感知,进行负载均衡,将数据分发和备份数据均衡到新的节点上。HDFS的实现目标适合大文件存储HDFS采用数据块的方式存储数据,将数据物理切分成多个小的数据块;当用户读取时,重新将多个小数据块拼接起来。HDFS的实现目标0203不适合低延迟数据访问无法高效存储大量小文件不支持多用户写入及文件随机修改01HDFS自身的局限性不适合低延迟数据访问HDFS不适合低延迟数据访问,比如毫秒级以内读取数据或者存储数据,HDFS是很难做到的。HDFS自身的局限性无法高效的对大量小文件进行存储文件存储会占用名称节点的内存来存储文件目录和块信息,存储大量小文件就会耗费大量的内存,名称节点的内存总是有限的。HDFS自身的局限性HDFS自身的局限性HDFS不支持多用户写入和文件随机修改HDFS目前不支持并发多用户的写操作和文件的随机修改,写操作只能在文件末尾追加数据,一个文件只能有一个写,不允许多个线程同时写。本章小结本节我们了解到HDFS是hadoop兼容最好的标准级分布式文件系统,主要是对数据进行分布式储存和读取,探讨了HDFS的实现目标和自身的局限性。Hadoop大数据项目开发——HDFS体系结构目录content02数据节点块0405第二名称节点01HDFS体系结构03名称节点HDFS体系结构HDFS的核心组件是名称节点(NameNode)和数据节点(DataNode)。它是一个主/从(master/slave)架构的系统,即一个HDFS集群由一个NameNode和若干DataNode组成。其中,名称节点为主节点,数据节点为从节点。HDFS的体系结构块的概述Hadoop2.X版本默认的块大小为128M。块是HDFS中的最小存储单位,并且可以自定义大小。块按实际大小存储。拆分出来的块会有它相应的副本。块的优势可以存储任意大小的数据文件,不用再受单个节点磁盘容量大小的限制。简化了文件存储子系统的设计,将元数据信息和文件数据信息分开存储。有利于实现负载均衡并提高集群可靠性。有利于实现分布式文件系统的容错性。名称节点概述名称节点是整个HDFS集群的管家,名称节点上存储的元数据信息包括:数据块到数据节点的映射信息。每个文件由哪些数据块组成。文件目录的所有者及其权限。文件名、目录名及其层级关系。名称节点的数据结构元数据信息可被持久化到本地磁盘的两个文件中,分别是元数据镜像文件(fsimage)和事务日志文件(edits)。fsimage存储着文件系统的所有命名空间信息。edits存储着HDFS数据的事务操作日志。名称节点的数据结构所谓的持久化,就是指把数据保存到可永久保存存储设备(如磁盘)中。数据节点概述每个数据节点中的数据会被保存在各自节点的本地Linux文件系统中。负责为客户端或名称节点提供数据的检索和读写服务,并通过“心跳”定期向名称节点发送自己的块列表信息。存储着HDFS文件的真实数据,负责数据的存储和读取第二名称节点因为事务日志文件(edits)开始比较小,但随着对数据的不断修改,事务日志文件(edits)会不断增大,大到一定程度的时候,又会影响整个系统的功能,由此引入第二名称节点。1.对元数据镜像文件(fsimage)和事务日志文件(edits)定期合并,缩短名称节点(NameNode)的重启时间,提高系统性能。2.是名称节点的冷备份,因为名称节点有可能发生故障。为什么又引入第二名称节点?第二名称节点的功能:本节小结负责管理整个文件系统元数据。名称节点负责管理具体文件数据块存储。数据节点协助名称节点进行元数据的备份。第二名称节点Hadoop大数据项目开发——HDFS运行机制05目录content02高可用机制心跳机制06安全模式01副本机制03副本放置策略07垃圾回收机制联邦机制04副本机制底层缺陷冗余数据保存不断地出故障为了保证集群的容错性和可用性,HDFS采用了数据冗余存储方式,即一个数据可以保存多个副本。副本机制01020304冗余保存副本数也可以进行个性化设置默认冗余副本数:3010203优点01加快数据传输速度02很容易检查数据错误03保证数据可靠性心跳机制名称节点数据节点数据节点启动后,会主动连接名称节点,并在一定间隔(默认为3s)主动向名称节点发送一个“心跳”,报告自己的状态信息。心跳心跳名称节点通过这个“心跳”向数据节点下达命令是一种形象化描述,指的是不间断地发送一个自定义结构体(“心跳包”或“心跳帧”)来证明自己节点的有效性。心跳?心跳机制出现故障名称节点名称节点长时间未收到某个数据节点的“心跳”;名称节点名称节点判定该数据节点为宕机;备份副本名称节点检查该数据节点上的块副本数据并备份到其他的数据节点上。硬件故障或网络问题;副本怎么恢复呢?HDFS是如何探测副本出现故障?心跳机制第一副本放到上传文件的节点(机器)上第二副本放到和第一副本不同机架的任意节点上第三副本放到和第一副本相同机架的任意节点上副本放置策略这么多机器这么多的块,副本是怎么存放的呢?如果还有副本,可以放到其它节点上,全部随机。副本放置策略01第一副本放到上传文件的节点上,可以较快地读取,保证数据较好的本地性;02第二个副本及更多的block副本放置在其他机架,当整个结点失效时,HDFS将自动通过远端机架上的数据将副本恢复到标准水平。03Hadoop的副本放置策略在可靠性和带宽中做了一个很好的平衡。高可用(HA)机制Hadoop1.XHadoop2.XHDFS框架只有一个名称节点HDFS框架主备两个名称节点单点故障双NameNode架构HA机制高可用(HA)机制ActiveNameNodeStandbyNameNode负责HDFS的所有操作ZooKeeper确保主从名称节点的状态一致性主名称节点的热备份互为备份联邦机制TWITTERYOUTUBESKYPEFACEBOOK在联邦机制中,每个名称节点分别管理文件系统命名空间的一部分;命名空间卷存放元数据和数据块的块池。
在Hadoop1.0,HDFS只有一个NameNode,计算机的内存就成了NameNode的瓶颈;
各命名空间卷是相互独立的,互不影响且互不通信
在Hadoop2.x引入了HDFS联邦机制,即通过横向扩展的方式增加NameNode的数量;
1234安全模式只读模式,不能对命名空间进行修改,也不能创建、复制、追加和删除数据;在HDFS启动时,首先会进入安全模式,当达到规定的要求时,会退出安全模式;当集群中某些数据节点出现故障,或者因为某些原因造成文件系统处于不稳定状态时,NameNode会自动进入安全模式。HDFS的一种保护模式,保证数据块的安全性;该模式下,可以查看目录及文件、下载文件等操作。垃圾回收机制当用户或应用程序删除某个文件时,文件并不会立即从HDFS中删除,而是被移到了一个类似回收站的地方。当文件的删除时间超过一定期限,名称节点就会自动将该文件从命名空间中删除,该文件相关的数据块即被释放。在HDFS集群中,如果一个文件被删除,那么与该文件相关的数据块自然也就成了垃圾。本节小结本节介绍了HDFS的副本机制、心跳机制、副本放置策略、高可用机制等,大家进一步了解了HDFS,为后续HDFS操作奠定基础。Hadoop大数据项目开发——HDFS命令行操作目录content0201HDFS命令简介HDFS常用命令HDFS命令简介HDFS分布式文件系统中的基本操作与其他文件系统类似,包括目录创建、目录删除、查看子目录、文件创建、文件剪切、文件复制、文件重命名、文件删除、文件上传、文件下载等操作。HDFS的文件操作命令包括hadoopfs、hadoopdfs和hdfsdfs三种。fsdfs文件系统FileSystem分布式文件系统DistributedFileSystem分布式环境下,fs与dfs无区别(2)本地环境中,fs就是本地文件,dfs就不能用了(3)fs>dfs:fs的使用范围更大HDFS命令简介hadoopfs命令是Hadoop通用文件系统的命令接口,可以操作HDFS文件系统,也可以操作其他支持的文件系统如本地文件系统、S3文件系统等。hdfsdfs命令是HDFS文件系统特定的命令接口,只可以操作HDFS文件系统,不支持其他文件系统。HDFS文件系统建议使用hdfsdfs命令;通用文件系统使用hadoopfs命令。HDFS命令简介HDFS命令:文件或目录一定使用绝对路径,“/”01本地Linux:文件或目录可以是相对路径也可以是绝对路径02命令包括:目录命令、文件命令、文件上传下载等
03HDFS命令简介HDFS常用命令操作1.-help:查看HDFS文件系统支持的命令HDFS常用命令操作2.-ls:查看HDFS文件系统中根目录下的文件和目录HDFS常用命令操作3.-mkdir:在HDFS文件系统中创建目录HDFS常用命令操作创建级联目录命令,需要使用参数-pHDFS常用命令操作4.-put:将本地Linux操作系统中的文件上传到HDFS上hadoopfs-put./jdk.tar.gz/bigdata如果HDFS上已经存在要上传的文件,想覆盖掉源文件,则需要使用参数-f。HDFS常用命令操作5.-rm:删除HDFS文件系统上的文件或目录hadoopfs-rm/jdk-8u211-linux-x64.tar.gztHDFS常用命令操作-rm:删除目录,则需要加上参数“-r”hadoopfs-rm-r/bigdata/bigdata1HDFS常用命令操作6.-get:将HDFS上的文件下载到本地(Linux操作系统)HDFS常用命令操作7.-cat:查看HDFS文件系统上的文件内容hadoopfs-cat/test.txt查看HDFS文件系统上的文件内容的前3行HDFS常用命令操作8.-ls:查看HDFS文件系统中根目录下的文件和目录HDFS常用命令操作9.-cp:复制HDFS文件系统上的文件HDFS常用命令操作10.-mv:移动HDFS文件系统上的文件HDFS常用命令操作使用-mv也可以实现重命名功能hadoopfs-mv/bigdata/test.txt/bigdata/bigdata1/test2.txt本章小结本节介绍了使用HDFS命令行进行文件创建、文件下载、文件重命名、文件删除、目录创建等操作,相信大家对HDFS命令有了一定理解,为我们后续学校HDFSJavaAPI打下了基础。Hadoop大数据项目开发——HDFS命令行操作目录content0201Hadoop集群部署方式Hadoop集群搭建HDFS文件操作命令HDFS的文件操作命令包括:hadoopfs使用范围最广,可以操作各种文件系统,如本地文件、HDFS文件、HFTP文件、S3文件等。hadoopdfs针对HDFS文件系统的操作命令。hdfsdfs与hadoopdfs类似,针对HDFS文件系统的操作。Hadoop集群的部署方式HDFS分布式文件系统中的基本操作与其他文件系统类似,包括文件创建、文件下载、文件重命名、文件删除、目录创建等操作。HDFS中的文件或者目录一定使用绝对路径,HDFS路径从“/”开始。HDFS常用命令操作创建目录命令HDFS常用命令操作创建级联目录命令HDFS常用命令操作两个命令的区别hadoopfs-mkdir-p./bigdatahadoopfs-mkdir-p/bigdataHDFS常用命令操作上传文件到HDFS上课外扩展传到HDFS上的数据,最终在哪里?HDFS常用命令操作删除HDFS上的文件HDFS常用命令操作下载HDFS上的文件HDFS常用命令操作移动文件HDFS常用命令操作查看HDFS文件系统上的文件内容的前3行查看HDFS文件系统中根目录下的文件和目录HDFS常用命令操作复制文件HDFS常用命令操作复制文件HDFS常用命令操作删除HDFS上文件或目录本章小结本节介绍了使用HDFS命令行进行文件创建、文件下载、文件重命名、文件删除、目录创建等操作,相信大家对HDFS命令有了一定理解,为我们后续学校HDFSJavaAPI打下了基础。Hadoop大数据项目开发——HDFSAPI操作05目录content02删除文件引入依赖06移动或重命名文件01搭建客户端环境03上传文件下载文件04搭建HDFS客户端环境步骤1:将Windows操作系统下的Hadoop压缩包解压到E盘,文件夹名为hadoop。步骤2:配置HADOOP_HOME环境变量,如下所示:搭建HDFS客户端环境步骤3:配置Path环境变量,如下所示:搭建HDFS客户端环境步骤4:创建一个Maven工程,创建Maven工程过程如下所示,输入所建Maven工程的名称。搭建HDFS客户端环境HDFSAPI准备环境完成之后,编写Java代码,实现HDFS功能。引入依赖在编写代码之前,需要引入开发HDFSAPI客户端相应的依赖,如下所示:<dependencies><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.9.2</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.9.2</version></dependency></dependencies>HDFS文件上传将Windows系统上本地E盘下面report.txt文件上传到HDFS集群,源代码如下所示:该参数为:副本数和文件块大小;(默认副本数量为3,块大小为128M)Fi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东广州番禺区第二人民医院高层次人才招聘6人备考题库附参考答案详解(预热题)
- 2026济南能源集团春季校园招聘11人备考题库带答案详解(黄金题型)
- 2026年4月西南医科大学附属中医医院招聘23人备考题库(四川)附参考答案详解(完整版)
- 2026广东清远私立学校2026年教师招聘37人备考题库附答案详解(完整版)
- 2026湖北武汉市第三医院眼科招聘备考题库附参考答案详解(预热题)
- 2026北京大学工学院(本科生学院)招聘1名劳动合同制人员备考题库带答案详解(达标题)
- 2026四川自贡市中医医院编外人员招聘10人备考题库及答案详解【典优】
- 2026湖北武汉市三级医院招聘14人备考题库附答案详解
- 脑性盐耗综合征(CSWS)总结2026
- 2026重庆奉节县教育事业单位招聘25人备考题库带答案详解
- 2026中国商用飞机公司招聘面试题库
- 4.1《致敬劳动者》课件 统编版道德与法治三年级下册
- 中考总复习数学100道基础题三大专题
- OpenClaw专题学习培训
- 安徽省合肥市一六八中学2026届高三3月份规范训练 语文试卷(含答案详解)
- 第一章 三角形的证明及其应用 单元测试(含答案)2025-2026学年数学北师大版八年级下册
- 2026年迎接国家义务教育质量监测工作实施细则方案及应急预案
- 危大巡视检查记录表(深基坑)
- 材料调差自动计算表EXCEL
- 第五章---挤出成型
- 加油站安全教育培训内容
评论
0/150
提交评论