创业做网站APP开发/腾讯nba新闻

创业做网站APP开发,腾讯nba新闻,帝国cms做淘宝客网站,企业加盟网站建设Hadoop 分布式文件系统(HDFS)被设计成适合运行在通用硬件上的分布式文件系统,它是一个高度容错性的系统,适合部署在廉价的机器上,能够提供高吞吐量的数据访问,非常适合大规模数据集上的应用。为了做到可靠性,HDFS创建了…

Hadoop 分布式文件系统(HDFS)被设计成适合运行在通用硬件上的分布式文件系统,它是一个高度容错性的系统,适合部署在廉价的机器上,能够提供高吞吐量的数据访问,非常适合大规模数据集上的应用。为了做到可靠性,HDFS创建了多份数据块的副本,并将它们放置在服务器群的计算节点中,MapReduce 可以在它们所在的节点上处理这些数据。

1. HDFS 的设计目标

  • 存储大规模数据:HDFS 可以存储并管理 PB 级甚至 EB 级的数据。
  • 高容错性:数据自动保存多个副本,副本丢失自动恢复
  • 高吞吐量:适合流式数据访问,支持高并发读写,一次写入,可多次读取,确保数据的一致性。
  • 低成本:可以在普通硬件上运行,降低存储成本。

2. HDFS 的设计思想和体系架构

HDFS采用主从架构。一个HDFS集群是由一个NameNode和一定数目的DataNodes 组成。其中 NameNode 是一个中心服务器,负责文件系统的名字空间(namespace)管理以及客户端对文件的访问。集群中的DataNode一般是一个节点一个,负责管理它所在节点上的存储。

HDFS设计思想

从内部看,一个文件其实被分成一个或多个数据块,这些块存储在一组DataNode(server)之上。NameNode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录,同时它也负责确定数据块到具体DataNode节点的映射。DataNode负责处理文件系统客户端的读写请求,在NameNode的统一调度下进行数据块的创建、删除和复制。

HDFS框架结构

 

HDFS使用Java语言开发,因此任何支持Java的机器都可以部署NameNode或DataNode。 由于采用了可移植性极强的Java语言,这就使得HDFS可以部署到几乎所有类型的机器上。

三.NameNode

1.NameNode的作用

  • 元数据管理:Namenode 是HDFS的元数据节点,负责文件系统的名字空间(Namespace)管理以及客户端对文件的访问。
  • 文件元数据操作:NameNode 负责文件元数据的操作,如创建、删除、重命名文件或目录。
  • 数据块管理:NameNode 决定数据块的副本存放在哪些 DataNode 上。读取文件时,NameNode 会尽量让用户先读取最近的副本(通过网络拓扑距离来衡量),以降低带宽消耗和读取时延。
  • 心跳机制:NameNode 周期性地从每个 DataNode 接收心跳信号和块状态报告。心跳信号表示 DataNode 工作正常,块状态报告包含 DataNode 上所有数据块的信息列表。

2. NameNode 的目录结构

NameNode 的元数据存储在本地文件系统的以下目录中:${dfs.name.dir}/current/

包含以下文件:

  • VERSION:是Java properties 文件,保存 HDFS 的版本信息
  • edits:修改日志(Edit Log),记录对文件系统元数据的修改。存储在本地文件系统中。
  • fsimage:命名空间镜像文件,保存整个文件系统的命名空间包括数据块映射信息,文件属性等等。存储在本地文件系统中。
  • fstime:记录最后一次检查点(checkpoint)的时间。

3. NameNode 的启动与检查点

NameNode 在内存中保存着整个文件系统的命名空间和文件数据块映射的映像,这个关键的元数据结构设计得非常紧凑,因而一个有4G内存的NameNode就足以支撑巨大量的文件和目录。

(1)启动过程

  • NameNode 从硬盘读取 FsImage 和 Edit Log。
  • 将 Edit Log 中的事务应用到内存中的 FsImage。
  • 将更新后的 FsImage 保存到本地磁盘,并删除旧的 Edit Log。

(2)检查点(Checkpoint)

  • 定期将内存中的元数据保存到 FsImage,并清理 Edit Log。
  • 由 Secondary NameNode 辅助完成。

4. Secondary NameNode 的作用

(1)辅助 NameNode

  • Secondary NameNode 不是 NameNode 的备用节点,而是辅助 NameNode 完成检查点。
  • 主要功能是定期合并 FsImage 和 Edit Log,防止 Edit Log 过大。

(2)检查点过程

  1. Secondary NameNode 通知 NameNode 生成新的 Edit Log。
  2. 从 NameNode 获取 FsImage 和旧的 Edit Log。
  3. 将 FsImage 加载到内存,并应用 Edit Log 中的事务,生成新的 FsImage。
  4. 将新的 FsImage 传回 NameNode。
  5. NameNode 更新 FsImage 和 Edit Log,并记录检查点时间。

Secondary NameNode并不是NameNode出现问题时候的备用节点,它和NameNode负责不同的事情。其主要功能就是周期性地将NameNode的命名空间镜像文件和修改日志合并,以防日志文件过大。合并过后的命名空间镜像文件也在Secondary NameNode保存了一份,以防止在 NameNode失败的时候,可以安全恢复。Secondary NameNode 通常在一个独立的机器上运行,它的内存要求和主 NameNode 是一样的。Secondary NameNode在配置后通过 start-dfs.sh 启动。

四.DateNode

1.DataNode的作用

  • 数据存储:DataNode是文件系统中真正存储数据的地方,一个数据块在DataNode磁盘存储时,会存储数据块本身,以及元数据包括数据块的长度、块数据的校验和、以及时间戳。
  • 数据块管理:DataNode是HDFS文件系统的工作节点,DataNode会按照客户端或者是NameNode的调度来存储和检索数据,并定期向NameNode发送它所存储的数据块列表。
  • 与 NameNode 通信:DataNode启动后向NameNode注册,注册成功后,周期性每小时向NameNode上报所有的块信息,心跳频率每3秒一次,心跳返回结果带有 NameNode 给该 DataNode 的命令,如复制块数据到另一台机器,或删除某个数据块等等。
  • 节点状态:如果 NameNode超过10分钟没有收到某个DataNode的心跳,则认为该节点不可用。集群在运行中可以安全地加入或剔除状态异常的机器。

2. DataNode 的目录结构

DataNode 的数据存储目录结构如下:${dfs.data.dir}/current/

包含以下内容:

  • VERSION:存储 DataNode 的版本信息。
  • blk_<id>存储数据块的二进制数据。
  • blk_<id>.meta存储数据块的元数据,包括校验和、长度和时间戳。

五 .HDFS数据块

1.数据块大小:默认情况下,HDFS 的数据块大小为 128MB(Hadoop 2.x 及以上版本)或 64MB(Hadoop 1.x 版本)。用户可以根据需要调整块大小。

2.数据块分布:HDFS 通过数据块副本机制实现高容错性。默认情况下,每个数据块会被复制到 3 个不同的 DataNode 上。

而在传统的块存储介质中,块是读写的最小数据单位(扇区),传统文件系统是基于存储块进行操作 的,为了节省文件分配表空间,一般会对物理存储块进行整合,通常为 4KB 或 64KB。

那为什么HDFS 的块远远大于传统文件系统的块?

  • 块大小较小,文件会被分割成更多的数据块,导致元数据量大幅增加,占用大量 NameNode 内存。较大的块大小可以减少元数据量,降低 NameNode 的内存压力。NameNode 的元数据管理更加高效。
  • 减少寻址开销:在传统文件系统中,较小的块大小会导致更多的磁盘寻址操作,增加 I/O 开销。HDFS 的较大块大小可以减少寻址次数,提高数据访问效率
  • HDFS 设计用于处理大规模数据,适合流式数据访问(即顺序读取大文件)。较大的块大小可以减少数据块的切换频率提高数据读取的吞吐量

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/71707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 批量下载市场高标解读/配置喵/wangdizhe 雪球帖子/文章导出excel和pdf

之前分享过文章2025 批量下载雪球和东方财富文章导出excel和pdf &#xff0c;今天整理分享下我下载过的一些雪球文章。 第1个号市场高标解读 抓取下载的所有帖子excel数据包含文章日期&#xff0c;文章标题&#xff0c;文章链接&#xff0c;文章简介&#xff0c;点赞数&#…

从运动手环到医疗贴片,精密校平机正在重塑柔性电子器件的工业化生产标准

在柔性电子器件的制造领域&#xff0c;从运动手环到医疗贴片&#xff0c;精密校平机的应用正引领一场生产标准的变革。传统的柔性电子器件生产过程中&#xff0c;材料的平整度控制往往不够精确&#xff0c;导致产品质量参差不齐。然而&#xff0c;随着精密校平机的引入&#xf…

掌握Kubernetes Network Policy,构建安全的容器网络

在 Kubernetes 集群中&#xff0c;默认情况下&#xff0c;所有 Pod 之间都是可以相互通信的&#xff0c;这在某些场景下可能会带来安全隐患。为了实现更精细的网络访问控制&#xff0c;Kubernetes 提供了 Network Policy 机制。Network Policy 允许我们定义一组规则&#xff0c…

VS2022C#windows窗体应用程序调用DeepSeek API

目录 一、创建DeepSeek API Key 二、创建窗体应用程序 三、设计窗体 1、控件拖放布局‌‌ 2、主窗体【Form1】设计 3、多行文本框【tbContent】 4、提交按钮【btnSubmit】 5、单行文字框 四、撰写程序 五、完整代码 六、运行效果 七、其它 一、创建DeepSeek API Ke…

如何在WPS中接入DeepSeek并使用OfficeAI助手(超细!成功版本)

目录 第一步&#xff1a;下载并安装OfficeAI助手 第二步&#xff1a;申请API Key 第三步:两种方式导入WPS 第一种:本地大模型Ollama 第二种APIKey接入 第四步&#xff1a;探索OfficeAI的创作功能 工作进展汇报 PPT大纲设计 第五步&#xff1a;我的使用体验(体验建议) …

Spring Boot集成Minio笔记

一、首先配置MinIO 1、MinIO新建Bucket&#xff0c;访问控制台如图 创建访问密钥(就是账号和密码) 二、集成mino添加Minio客户端依赖 1.maven构建方式在pom.xml引入jar <dependency><groupId>io.minio</groupId><artifactId>minio</artifactI…

Web网页开发——水果忍者

1.介绍 复刻经典小游戏——水果忍者 2.预览 3.代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&…

如何在unity中完整录制一段动画

在动画制作中&#xff0c;需要对接音频部门进行音效的制作。通常需要完整且无多余帧数的动画视频作为时间和帧数对帧参考&#xff0c;这时候手动录屏就会显得不够精确&#xff0c;这里分享一个插件录制方法&#xff0c;可以自定义录制起始位置&#xff0c;0帧起手完整录制。 录…

Jetson Orin 安装 onnxruntime

Jetson Orin 安装 onnxruntime onnxruntime在Jetson上安装只需注意三件事&#xff1a; 版本&#xff01; 版本&#xff01; 还是TMD版本&#xff01; 本机环境 Jectpack : 5.1.2CUDA : 11.4cuDNN &#xff1a;8.6.0 版本说明 关于onnxruntime的版本适配不同的官方有不同的…

Manus AI : Agent 元年开启.pdf

Manus AI : Agent 元年开启.pdf 是由华泰证券出品的一份调研报告&#xff0c;共计23页。报告详细介绍了Manus AI 及 Agent&#xff0c;主要包括Manus AI 的功能、优势、技术能力&#xff0c;Agent 的概念、架构、应用场景&#xff0c;以及 AI Agent 的类型和相关案例&#xff0…

【为什么会有 map、weakmap 类型?】

为什么会有 map、weakmap 类型? 传统对象的局限性催生 Map‌1. 键类型单一性‌2. 有序性与迭代支持‌3. 性能优化场景‌ 内存管理需求催生 WeakMap‌1.弱引用机制‌2. 私有数据存储‌3. 规避循环引用问题‌ 总结 传统对象的局限性催生 Map‌ 1. 键类型单一性‌ 传统对象&…

SpringSecurity认证授权完整流程

SpringSecurity认证流程&#xff1a;loadUserByUsername&#xff08;&#xff09;方法内部实现。 实现步骤&#xff1a; 构建一个自定义的service接口&#xff0c;实现SpringSecurity的UserDetailService接口。建一个service实现类&#xff0c;实现此loadUserByUsername方法。…

本地部署DeepSeek R1大数据模型知识库

DeepSeek-V3 的综合能力 DeepSeek-V3 在推理速度上相较历史模型有了大幅提升。在目前大模型主流榜单中&#xff0c;DeepSeek-V3 在开源模型中位列榜首&#xff0c;与世界上最先进OpenAI 闭源模型不分伯仲。 1、下载Ollama运行大数据库 Ollama支持 Llama 3.3, DeepSeek-R1, Phi-…

【javaEE】多线程(基础)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

一周学会Flask3 Python Web开发-WTForms表单验证

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 我们可以通过WTForms表单类属性的validators属性来实现表单验证。 常用的WTForms验证器 验证器说明DataRequired(messageNo…

STM32标准库代码详解之GPIO

GPIO的初始化代码如下&#xff1a; /*开启时钟*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //开启GPIOA的时钟&#xff0c;使用外设必须开启/*GPIO初始化*/ GPIO_InitTypeDef GPIO_InitStructure; //定义结构体变量 GPIO_InitStructure.GPIO_Mode GPIO_Mo…

第六课:数据库集成:MongoDB与Mongoose技术应用

本文详细介绍了如何在Node.js应用程序中集成MongoDB数据库&#xff0c;并使用Mongoose库进行数据操作。我们将涵盖MongoDB在Ubuntu 20系统中的安装、Bash命令的CRUD操作、Mongoose数据建模&#xff08;Schema/Model&#xff09;、关联查询与聚合管道&#xff0c;以及实战案例—…

大数据学习(56)-Impala

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91…

【C#】async与await介绍

1. 实例1 1.1 代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ConsoleApp1 {class Program{static void Main(string[] args){Method1();Method2();Console.ReadKey();}public static…

【大模型基础_毛玉仁】1.1 基于统计方法的语言模型

【大模型基础_毛玉仁】1.1 基于统计方法的语言模型 1.语言模型基础1.1 基于统计方法的语言模型1.1.1 n-grams 语言模型1.1.2 n-grams 的统计学原理 1.语言模型基础 语言是概率的。语言模型&#xff08;LanguageModels, LMs&#xff09;旨在准确预测语言符号的概率。 将按照语…