彻底理解大数据 HDFS 分布式文件系统,这篇就够了 |
您所在的位置:网站首页 › hdfs特点描述正确的是 › 彻底理解大数据 HDFS 分布式文件系统,这篇就够了 |
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析作业调度中间件 Elastic-Job 源码解析分布式事务中间件 TCC-Transaction 源码解析Eureka 和 Hystrix 源码解析Java 并发源码来源:www.cnblogs.com/cainiao- chuanqi/p/11420490.html 文件系统的基本概述HDFS的概述HDFS的优点和缺点流式数据访问HDFS的架构HDFS的关键特性HDFS联邦(Federation)数据副本机制配置HDFS数据存储策略Colocation同分布HDFS数据完整性保障HDFS架构其他关键设计要点说明思考题文件系统的基本概述文件系统定义:文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易。文件名:在文件系统中,文件名是用于定位存储位置。元数据(Metadata):保存文件属性的数据,如文件名,文件长度,文件所属用户组,文件存储位置等。数据块(Block):存储文件的最小单元。对存储介质划分了固定的区域,使用时按这些区域分配使用。“推荐下自己做的 Spring Boot 的实战项目: https://github.com/YunaiV/ruoyi-vue-pro HDFS的概述“HDFS(Hadoop Distributed File System)基于Google发布的GFS论文设计开发。HDFS是Hadoop技术框架中的分布式文件系统,对部署在多台独立物理机器上的文件进行管理。 ![]() 可用于多种场景,如:网站用户行为数据存储。生态系统数据存储。气象数据存储。 “推荐下自己做的 Spring Cloud 的实战项目: https://github.com/YunaiV/onemall HDFS的优点和缺点其除具备其它分布式文件系统相同特性外,还有自己特有的特性: 高容错性:认为硬件总是不可靠的。高吞吐量:为大量数据访问的应用提供高吞吐量支持。大文件存储:支持存储TB-PB级别的数据。不适用场景低时间延迟数据访问的应用,例如几十毫秒范围。原因:HDFS是为高数据吞吐量应用优化的,这样就会造成以高时间延迟为代价。大量小文件 。原因:NameNode启动时,将文件系统的元数据加载到内存,因此文件系统所能存储的文件总数受限于NameNode内存容量。,那么需要的内存空间将是非常大的。多用户写入,任意修改文件。原因:现在HDFS文件只有一个writer,而且写操作总是写在文件的末尾。流式数据访问流式数据访问:在数据集生成后,长时间在此数据集上进行各种分析。每次分析都将涉及该数据集的大部分数据甚至全部数据,因此读取整个数据集的时间延迟比读取第一条记录的时间延迟更重要。与流数据访问对应的是随机数据访问:它要求定位、查询或修改数据的延迟较小,比较适合于创建数据后再多次读写的情况,传统关系型数据库很符合这一点。HDFS的架构HDFS架构包含三个部分:NameNode,DataNode,Client。 NameNode:NameNode用于存储、生成文件系统的元数据。运行一个实例。DataNode:DataNode用于存储实际的数据,将自己管理的数据块上报给NameNode ,运行多个实例。Client:支持业务访问HDFS,从NameNode ,DataNode获取数据返回给业务。多个实例,和业务一起运行。HDFS数据的写入流程![]() ![]() ![]() ![]() ![]() 如果写请求方所在机器是其中一个DataNode,则直接存放在本地,否则随机在集群中选择一个DataNode。 Rack1:表示机架1。D1:表示DataNode节点1。B1:表示节点上的block块1。配置HDFS数据存储策略默认情况下,HDFS NameNode自动选择DataNode保存数据的副本。在实际业务中,存在以下场景: DataNode上存在的不同的存储设备,数据需要选择一个合适的存储设备分级存储数据。DataNode不同目录中的数据重要程度不同,数据需要根据目录标签选择一个合适的DataNode节点保存。DataNode集群使用了异构服务器,关键数据需要保存在具有高度可靠性的节点组中。配置HDFS数据存储策略--分级存储配置DataNode使用分级存储![]() ![]() 支持用户将数据块的各个副本存放在指定具有不同标签的节点,如某个文件的数据块的2个副本放置在标签L1对应节点中,该数据块的其他副本放置在标签L2对应的节点中。支持选择节点失败情况下的策略,如随机从全部节点中选一个。简单的说:给DataNode设置标签,被存储的数据也有标签。当存储数据时,数据就会存储到标签相同的DataNode中。 配置HDFS数据存储策略--节点组存储配置DataNode使用节点组存储:![]() 关键数据根据实际业务需要保存在具有高度可靠性的节点中,通过修改DataNode的存储策略,系统可以将数据强制保存在指定的节点组中。 使用约束: 第一份副本将从强制机架组(机架组2)中选出,如果在强制机架组中没有可用节点,则写入失败。第二份副本将从本地客户端机器或机架组中的随机节点中(当客户端机器机架组不为强制机架组时)选出。第三份副本将从其他机架组中选出。各副本应存放在不同的机架组中。如果所需副本的数量大于可用的机架组数量,则会将多出的副本存放在随机机架组中。由于副本数量的增加或数据块受损导致再次备份时,如果有一份以上的副本缺失或无法存放至强制机架组,将不会进行再次备份。系统将会继续尝试进行重新备份,直至强制组中有正常节点恢复可用状态。简单的说:就是强制某些关键数据存储到指定服务器中。Colocation同分布同分布(Colocation)的定义:将存在关联关系的数据或可能要进行关联操作的数据存储在相同的存储节点上。按照下图存放,假设要将文件A和文件D进行关联操作,此时不可避免地要进行大量的数据搬迁,整个集群将由于数据传输占据大量网络带宽,严重影响大数据的处理速度与系统性能。![]() ![]() HDFS主要目的是保证存储数据完整性,对于各组件的失效,做了可靠性处理。 重建失效数据盘的副本数据DataNode向NameNode周期上报失败时,NameNode发起副本重建动作以恢复丢失副本。集群数据均衡HDFS架构设计了数据均衡机制,此机制保证数据在各个DataNode上分布是平均的。元数据可靠性保证采用日志机制操作元数据,同时元数据存放在主备NameNode上。快照机制实现了文件系统常见的快照机制,保证数据误操作时,能及时恢复。安全模式HDFS提供独有安全模式机制,在数据节点故障,硬盘故障时,能防止故障扩散。重建失效数据盘的副本数据DataNode与NameNode之间通过心跳周期汇报数据状态,NameNode管理数据块是否上报完整,如果DataNode因硬盘损坏未上报数据块,NameNode将发起副本重建动作以恢复丢失的副本。安全模式防止故障扩散当节点硬盘故障时,进入安全模式,HDFS只支持访问元数据,此时HDFS 上的数据是只读的,其他的操作如创建、删除文件等操作都会导致失败。待硬盘问题解决、数据恢复后,再退出安全模式。HDFS架构其他关键设计要点说明统一的文件系统HDFS对外仅呈现一个统一的文件系统。空间回收机制支持回收站机制,以及副本数的动态设置机制。数据组织数据存储以数据块为单位,存储在操作系统的HDFS文件系统上。访问方式提供JAVA API,HTTP方式,SHELL方式访问HDFS数据。磁盘使用率比如磁盘100G,用了30G,使用率30%。负载均衡避免了节点间数据分布不均匀,导致热点节点问题。 思考题HDFS是什么,适合于做什么?运行在通用硬件上的分布式文件系统。适合于大文件存储与访问、流式数据访问。HDFS包含那些角色?NameNode、DataNode、Client。请简述HDFS的读写流。读取:Client联系NameNode,获取文件信息。Client根据从NameNode获取到的信息,联系DataNode,获取相应的数据块;数据读取完成后,业务调用close关闭连接。写入:Client联系NameNode,NameNode在元数据中创建文件节点;Client联系DataNode并建立流水线,完成后,客户端再通过自有协议写入数据到 DataNode1,再由DataNode1复制到DataNode2,DataNode3;业务调用close关 闭连接;Client联系NameNode,确认数据写完成。欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢: ![]() 已在知识星球更新源码解析如下: ![]() ![]() ![]() ![]() 最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。 提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。 获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。 代码语言:javascript复制文章有帮助的话,在看,转发吧。谢谢支持哟 (*^__^*) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |