首页 > 其他分享 >分布式文件系统HDFS

分布式文件系统HDFS

时间:2024-12-17 15:11:33浏览次数:7  
标签:HDFS 存储 DataNode NameNode 分布式文件系统 数据 日志

  1. HDFS简介
    • HDFS(Hadoop Distributed File System)是一个分布式文件系统,是Hadoop生态系统的核心组件之一。它被设计用来在廉价的硬件设备上存储大规模的数据,并且能够提供高容错性和高吞吐量的数据访问。
    • 例如,在一个大型的互联网公司,每天会产生海量的用户行为数据,如浏览记录、购买记录等。这些数据的规模可能达到PB级别的大小,HDFS可以很好地存储和管理这些数据。
  2. HDFS的架构
    • NameNode
      • NameNode是HDFS的主节点,它管理着文件系统的命名空间(namespace)。命名空间包括了文件和目录的层次结构,就像一本书的目录一样,记录了每个文件的位置信息。
      • 例如,当用户想要访问一个文件时,首先会向NameNode询问该文件的位置,NameNode会返回文件块(block)存储在哪些DataNode上的信息。NameNode还负责处理文件系统的命名空间操作,如创建、删除和重命名文件或目录等操作。
    • DataNode
      • DataNode是HDFS的从节点,它们负责实际的数据存储。数据在HDFS中是以数据块(block)的形式存储的,默认的数据块大小是128MB(这个大小可以配置)。
      • 例如,一个1GB的文件会被分成8个数据块(假设数据块大小为128MB),这些数据块会被存储在不同的DataNode上。DataNode会定期向NameNode发送心跳(heartbeat)消息,报告自己的状态和存储的数据块信息,这样NameNode就能知道哪些DataNode是存活的,哪些数据块是可用的。
    • Secondary NameNode
      • Secondary NameNode并不是NameNode的备份,它主要的功能是定期合并NameNode的编辑日志(edit log)和镜像文件(fsimage)。
      • 例如,NameNode在运行过程中会不断地记录文件系统的更改操作,这些操作记录在编辑日志中。镜像文件则是文件系统的一个快照。随着时间的推移,编辑日志会变得很大,这会影响NameNode的性能。Secondary NameNode会定期将编辑日志和镜像文件合并成一个新的镜像文件,这样可以减少编辑日志的大小,提高NameNode的性能。
  3. HDFS的工作原理
    • 文件写入过程
      • 当客户端(client)想要向HDFS写入一个文件时,首先会向NameNode请求上传文件。NameNode会根据DataNode的状态(如可用空间、网络带宽等)选择一些DataNode来存储文件块。
      • 例如,假设要写入一个384MB的文件,在默认数据块大小为128MB的情况下,文件会被分成3个数据块。NameNode可能会选择DataNode1、DataNode2和DataNode3来存储这3个数据块。客户端会先将第一个数据块发送给DataNode1,DataNode1接收并存储这个数据块后,会将数据块复制一份发送给DataNode2(这是HDFS的数据冗余策略,默认是每个数据块有3个副本)。然后客户端再发送第二个数据块,以此类推,直到文件的所有数据块都被存储并复制完成。
    • 文件读取过程
      • 当客户端想要读取一个文件时,首先会向NameNode询问文件的位置信息。NameNode会返回存储文件块的DataNode列表。
      • 例如,客户端想要读取之前写入的384MB文件,NameNode会返回存储该文件3个数据块的DataNode列表。客户端会选择距离自己较近或者网络带宽较好的DataNode来读取数据块,比如先从DataNode1读取第一个数据块,从DataNode2读取第二个数据块等,最后将这些数据块组合成完整的文件内容。
  4. HDFS的优势
    • 高容错性
      • 由于数据块有多个副本,即使某个DataNode出现故障,数据仍然可以从其他副本所在的DataNode获取。例如,在一个包含10个DataNode的集群中,存储的数据块有3个副本,即使有3个DataNode同时出现故障,数据仍然可以正常访问。
    • 可扩展性
      • HDFS可以很容易地通过添加新的DataNode来扩展存储容量。当数据量增加时,只需要添加更多的硬件设备并将其配置为DataNode,就可以增加整个文件系统的存储容量。
    • 适合大数据处理
      • 它能够高效地处理大规模的数据,为数据密集型应用(如大数据分析、数据挖掘等)提供了良好的存储基础。例如,在进行大规模的数据分析时,Hadoop的Map - Reduce等计算框架可以直接从HDFS中读取数据进行计算。
  5. HDFS的应用场景
    • 数据仓库
      • 用于存储企业的数据仓库数据,如销售数据、客户数据等。这些数据可以用于企业的决策分析,如市场趋势分析、客户行为分析等。
    • 日志存储和分析
      • 存储服务器日志、应用程序日志等大量的日志数据。这些日志数据可以用于故障排查、性能分析等。例如,在一个大型网站中,每天会产生大量的访问日志,HDFS可以存储这些日志,并通过相关的日志分析工具进行分析,了解用户的访问行为和网站的性能情况。

标签:HDFS,存储,DataNode,NameNode,分布式文件系统,数据,日志
From: https://www.cnblogs.com/java-note/p/18612511

相关文章

  • 【Hadoop框架】 生态组件之分布式文件系统 HDFS 常用命令
    一、HDFS集群的启动停止1.1单服务启动停止方式1.1.1单服务启动1.1.2单服务停止1.2多服务启动停止方式1.2.1多服务启动1.2.2多服务停止二、获取HDFS集群信息三、HDFS常用命令3.1查看HDFS帮助命令3.1.1查......
  • 在 Windows Server 上,你可以通过 PowerShell 来开启和配置 Active Directory(AD)、分布
    在WindowsServer上,你可以通过PowerShell来开启和配置ActiveDirectory(AD)、分布式文件系统(DFS)、卷影复制(VolumeShadowCopy)和重复数据删除(DataDeduplication)。以下是详细的PowerShell配置脚本,涵盖了这些功能的启用和管理。1.配置ActiveDirectory(AD)要配置Active......
  • java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
    @目录java实现下载hdfs文件及文件夹说明:java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下1.下载xxx文件2.下载xx文件夹java实现下载hdfs文件及文件夹说明:java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下<!......
  • 【大数据技术基础 | 实验三】HDFS实验:部署HDFS
    文章目录一、实验目的二、实验要求三、实验原理(一)分布式文件系统(二)HDFS(三)HDFS基本命令(四)HDFS适用场景四、实验环境五、实验内容和步骤(一)在master服务器上确定存在hadoop安装目录(二)配置集群服务器之间SSH免密登录(三)修改HDFS配置文件(四)启动HDFS(五)通过查看进程的方式验证H......
  • hdfs小文件分析
    导出namenode的元数据文件,并将数据转成csv格式,逗号分割字段hdfsdfsadmin-fetchImage ./#将文件拉到本地hdfsoiv-ifsimage_0000000000243832876-ofsimage.csv-pDelimited -delimiter","  -Xmx30720m  #使用hdfs工具本地解析文件,我的镜像是30G,我就用了30的堆......
  • Spark的前瞻--- 数据处理方式,HDFS读写流程,MR计算原理,YRAN资源调度原理,分布式计算
    目录一,数据处理的方式1,单机数据处理2,集群数据储存1,HDFS的读写流程 4,分布式资源调度YRAN1,YRAN原理图二,分布式计算框架1,MapReduce分布式计算2,Spark分布式计算spark的部署方式1,spark资源调度yran模式三,Spark的开发方式1,交互式开发2,脚本式开发......
  • 基于zookeeper安装部署下,配置 HDFS-HA 自动故障转移
    (1)访问 hdfs-site.xml:vi/erport/ha/hadoop/etc/hadoop/hdfs-site.xml在hdfs-site.xml中增加:<!--开启失败故障自动转移--><property><name>dfs.ha.automatic-failover.enabled</name><value>true</value></propert......
  • HDFS数据(跨集群)迁移
    一、数据迁移使用场景1.冷热集群数据同步、分类存储2.整体数据整体搬迁3.数据准实时同步(备份)二、考量因素1.网络传输带宽及时间,是否会影响现有业务2.性能,单机?多线程?分布式?3.是否正常增量同步4.数据迁移的同步性(同步单位时间数据超过单位时间)三、DistCp工具使用3.1简介dis......
  • HDFS数据安全与隐私保护
    一、HDFSTrash垃圾桶1.文件系统垃圾桶背景HDFS本身也是一个文件系统,那么就会涉及到文件数据的删除操作。默认情况下,HDFS中是没有回收站垃圾桶概念的,删除操作的数据将会被直接删除,没有后悔药。2.功能概述1.HDFSTrash机制,叫做回收站或者垃圾桶。Trash就像Windows操作系统中的回收......
  • HDFS NameNode元数据管理
    一、什么是元数据在HDFS中,元数据主要指的是文件相关的元数据,由NameNode管理维护。从广义的角度来说,因为NameNode还需要管理众多DataNode节点,因此DataNode的位置和健康状态信息也属于元数据。二、元数据管理概述1.文件相关元数据类型在HDFS中,文件相关元数据具有两种类型:文件自身属性......