当前位置: 首页 > news >正文

【大数据2025】Hadoop 万字讲解

文章目录

  • 一、大数据通识
      • 大数据诞生背景与基本概念
      • 大数据技术定义与特征
      • 大数据生态架构概述
      • 数据存储
      • 数据计算与易用性框架
      • 分布式协调服务和任务调度组件
      • 数仓架构
      • 流处理架构
  • 二、HDFS
  • HDFS 原理总结
    • 一、系统架构
    • 二、存储机制
    • 三、数据写入流程
    • 四、心跳机制与集群管理
  • 安全模式(Safe Mode)定义
  • Block
      • HDFS 存储单元 - block
      • block 副本放置策略
      • block 在本地磁盘的存储结构
  • 元数据
      • 磁盘存储机制
      • 元数据恢复与 edits 文件管理
      • 元数据合并操作
  • HDFS 文件写入操作
  • HDFS 文件读取操作
  • HDFS 高可用
      • HDFS 单管理节点问题
      • 联邦机制
      • 管理节点热备
      • 高可用架构组件
      • HDFS 操作命令
      • shell 命令
      • Rest API
      • HDFS 运维管理概述
      • 系统配置
      • 常见管理命令
      • 数据处理工具
      • 配额与快照
      • 监控页面

一、大数据通识

大数据诞生背景与基本概念

  • 传统数据处理架构
    • 可处理结构化、非结构化和半结构化数据。结构化数据存在数据库,有严格字段和数据类型限制;半结构化数据如日志、JSON,字段和类型不严格;非结构化数据如图片、视频、音频无结构,一般存于 NOSQL 数据库,但 NOSQL 通常只管存储不管计算,计算需编写并发程序读取数据处理。
  • 传统架构处理海量数据的瓶颈
    • 结构化数据方面:单机数据库存海量数据时面临存储和处理速度问题,即便组成 MPP 架构集群,扩展性也有限(如 Oracle 扩展到 30 台后难以再扩),还存在热点问题(热数据集中于某节点易致其压力过大而故障)。
    • 非结构化和半结构化数据方面:NOSQL 数据库存储性能好,但计算时跨网络拉取数据开销大、效率低。

在这里插入图片描述

大数据技术定义与特征

  • 定义:为满足海量数据存储与计算的技术或架构。
  • 4V 特征
    • 数据规模巨大(Volume):如达到 10PB、50PB 等海量规模。
    • 数据生成和处理速度快(Velocity):如鞋厂 2017 年每天数据增量 100TB,且需快速处理。
    • 数据多样性(Variety):涵盖结构化、非结构化和半结构化数据,互联网时代后两者占比更高。
    • 价值(Value):海量数据挖掘价值高,与人工智能结合潜力大,但价值密度低,因数据量庞大稀释了价值。满足这四个特征的场景即为大数据场景,也称大数据的 4V 特性。

中小规模数据与大数据技术

  • 不适用原因:中小规模数据采用传统数据处理架构即可满足需求,若盲目使用大数据技术,因其调度周期长等因素,效率反而会降低。
  • 效率对比示例:实际情况中,部分公司在数据量未达一定规模时引入大数据技术,结果不仅未提升效率,甚至出现效率减半的情况。

在这里插入图片描述

  • 核心区分依据:离线与实时处理场景的本质区别在于数据是有界还是无界。离线处理针对已存储且数据量固定的有界数据,如存储为 10GB 的数据在运算中不会增减;实时处理则是针对持续产生、无明显边界的无界数据。
  • 处理方式特点
    • 离线处理:适合批处理运算。先对整体数据进行第一阶段处理,得到最终结果后再送往下一阶段,在任意时间观察,所有数据处于同一阶段,且数据存储后可在断网情况下完成处理。
    • 实时处理:采用流处理方式。如同流水线工人,各阶段分别处理数据,处理完当前数据后立即将结果传递给下一阶段,并持续等待新数据,在任意时间观察,数据处于各个不同阶段。
  • 典型应用场景:数据仓库、搜索与检索、图计算、数据分析等属于离线批处理场景;实时流计算是典型的实时处理场景。

在这里插入图片描述

在这里插入图片描述

大数据生态架构概述

  • 数据源分类:包括结构化数据(如数据库中以二维表存储的数据)和非结构化/半结构化数据(如日志、JSON、图片、视频、音频等)。
  • 结构化数据抽取
    • 主流方式是通过 scoop 以 T+1 方式经 GDBC 连接数据库抽取到 HDFS,即当天数据次日导入。
    • 也可使用 CDC(开源)或 OGG(Oracle 特有)进行实时抽取,通过监控数据库日志实现,数据变动时先抽至卡夫卡再交大数据平台处理。
  • 非结构化/半结构化数据抽取:一般实时产生,常用 flume 或 log stach 抽取到卡夫卡消息队列缓冲抗压,再经大数据平台处理后存储,而非直接存入大数据平台。

数据存储

  • HDFS 是成熟的大数据存储平台,但因其是文件系统,使用不便。
  • 实际常将数据存于基于 HDFS 建立的分布式 NoSQL 数据库 HBASE,它易用性更好。

数据计算与易用性框架

  • 计算框架:有 MapReduce 和 Spark,MapReduce 计算较慢,Spark 相对较快。计算任务需移至数据节点运算,依靠分布式资源调度框架(如 YARN)分配管理 CPU、内存等计算资源,计算完成后回收资源。
  • 易用性框架
    • Hive 可将 SQL 转换为 MapReduce 或 Spark 计算任务。
    • Pig 通过其 API 转换为 MapReduce 计算任务(已停止维护)。
    • MLlib 用于机器学习,可将机器学习 API 转换为 MapReduce 任务。
    • 这些框架按转换计算任务类型,默认转换为 MapReduce 的属于 Hadoop 生态圈,部分也可运行于 Spark 之上。
    • Spark 自身生态圈还包括 Spark SQL、GraphX、Spark Streaming 等,其中 Spark Streaming 用于实时流计算,其结果一般存储于 HBASE 以避免 HDFS 存储小文件的问题。

分布式协调服务和任务调度组件

  • Zookeeper:是重要的分布式协调服务,大数据产品多依赖它。在分布式环境中,能识别节点增减、进行管理节点选举等协调工作,如卡夫卡搭建前必须安装 Zookeeper。
  • 任务调度组件:oozie 和 Azkaban 用于管理和调度大数据集群中计算任务的先后顺序和定时执行。

数仓架构

  • 数据抽取与存储:通常使用 sqoop 将数据抽取到 HDFS,开源组件 HIVE 在数仓构建中应用较多,计算结果一般存储于 hive。同时,也可将数据置于 spark 生态圈(spark sql)利用相关技术处理表数据。
  • 数据清洗与计算:借助 spark 或 mapreduce 对抽取到的数据进行清洗和计算操作,以满足数据处理需求。
  • 任务调度:任务调度可选用 oozie 或阿兹卡班,确保数仓中各项任务有序执行,保障数据处理流程的顺畅运行。

流处理架构

  • 数据监控与缓存:运用 flume 或 log statch 监控非结构化和半结构化数据,利用 CDC\OGG 技术监控数据库日志,并将这些数据实时抽取到卡夫卡进行缓存,为后续处理做准备。
  • 数据处理与引擎:通过流引擎如内存型的 spark streaming 或较新的 FLINK 等对缓存数据进行处理,开发人员在此环节编写任务较为频繁,实现数据的实时处理与分析。
  • 结果存储:处理后的数据结果可存储在 Hbase 或 elastic search 中,这两种存储方式对小文件不太敏感。其中 h base 底层有处理小文件的机制,而 elastic search 文件直接存储在磁盘本地,进一步降低了对小文件的敏感度,更适合流处理结果的存储。

文章目录

  • 一、大数据通识
      • 大数据诞生背景与基本概念
      • 大数据技术定义与特征
      • 大数据生态架构概述
      • 数据存储
      • 数据计算与易用性框架
      • 分布式协调服务和任务调度组件
      • 数仓架构
      • 流处理架构
  • 二、HDFS
  • HDFS 原理总结
    • 一、系统架构
    • 二、存储机制
    • 三、数据写入流程
    • 四、心跳机制与集群管理
  • 安全模式(Safe Mode)定义
  • Block
      • HDFS 存储单元 - block
      • block 副本放置策略
      • block 在本地磁盘的存储结构
  • 元数据
      • 磁盘存储机制
      • 元数据恢复与 edits 文件管理
      • 元数据合并操作
  • HDFS 文件写入操作
  • HDFS 文件读取操作
  • HDFS 高可用
      • HDFS 单管理节点问题
      • 联邦机制
      • 管理节点热备
      • 高可用架构组件
      • HDFS 操作命令
      • shell 命令
      • Rest API
      • HDFS 运维管理概述
      • 系统配置
      • 常见管理命令
      • 数据处理工具
      • 配额与快照
      • 监控页面

二、HDFS

  • 简介与特性:HDFS 全称 Hadoop Distributed File System,基于谷歌 GFS 论文实现,是 Hadoop 核心子项目,在开源大数据技术体系地位重要。其优点众多,能存储海量数据,构建成本低,可搭建于廉价商用服务器,软件层面通过数据多备份(默认三份)实现容错与恢复机制,适合大规模离线批处理,还具备高容错、高可用、高扩展等特性;缺点是不适合低延迟数据访问、不支持并发写入、不适合大量小文件存储及文件随机修改。
  • 架构相关:由主节点管理并记录原数据(包括文件名、拆分份数及存储节点等信息)。
  • 应用与不适合场景:适合大规模离线批处理,因其能向计算框架暴露数据位置,便于任务分发;不适合场景包括对延迟要求高、需并发写入、大量小文件存储及需随机修改文件的情况,如大量小文件会使主节点内存被原数据占满、计算任务调度时间长,随机修改会致集群负载过大等,若需修改文件可先删后追加或选用如 HBASE 等支持随机修改的上层组件。

在这里插入图片描述

HDFS 原理总结

在这里插入图片描述

一、系统架构

  • 主从架构:HDFS 采用主从架构,主节点为 name node,从节点是 data node。主节点负责管理集群和接收客户端读写请求,从节点用于存储数据文件。
  • 高可用机制:name node 有 active 和 stand by 状态,active 主节点负责管理,stand by 作为备用。当 active 节点故障时,stand by 会切换为 active 接替管理,生产环境中可设置多台 stand by 提升可用性。

二、存储机制

  • 数据拆分与存储:文件按 128 兆为一块进行拆分,生成多个 block 块后存储在 data node 节点中,存储时会进行备份。
  • 数据备份:默认对每个 block 块进行三个副本的备份,存储在不同 data node 节点,保证数据安全性和可用性。如果文件本身小于数据库大小,则按照实际大小进行存储。

三、数据写入流程

在这里插入图片描述

  • 客户端发起文件上传请求,如上传 10G 的 FILE1 文件,会先按 128 兆一块拆分成多个 block 块(假设 80 个,从 block1 到 block80)。
  • 这些 block 块均匀存储到 data node 节点,并对每个 block 块默认备份三份。
  • name node 存储一份元数据,记录文件拆分的 block 块数量等信息,客户端可通过原数据寻址合并数据,但原数据中每个 block 块存储位置信息相对不重要,因为 data node 会通过心跳机制定期向 name node 上报,在内存中自动补全。

四、心跳机制与集群管理

  • data node 节点每隔三秒钟通过心跳机制向 name node 上报信息,包括存储的 block 块信息和自身健康状态(忙碌或空闲)。
  • 若 name node 发现某 data node 节点长时间(超过 10 分钟,默认三秒上报一次)未上报心跳,则认为该节点挂掉,会触发容灾操作,将该节点上的 block 块从其他节点拷贝并备份到其他正常节点,确保数据块始终保持三份副本。

安全模式(Safe Mode)定义

在这里插入图片描述

Hadoop的安全模式是一种特殊的维护模式,在该模式下,HDFS是只读的,即不允许对文件系统进行任何写操作,如修改文件、删除文件、添加新的文件等。此时,NameNode会拒绝所有对文件系统内容的修改请求,但客户端仍然可以读取文件系统中的数据。

  • 启用场景
  1. 系统启动时自动进入:当Hadoop集群启动时,NameNode会自动进入安全模式。这是为了在集群启动的初始阶段,确保文件系统的元数据能够完整加载并进行必要的检查,防止在元数据尚未完全准备好时就允许对文件系统进行写操作,从而避免数据损坏或不一致的情况发生。

  2. 手动进入:管理员也可以根据需要手动将Hadoop置于安全模式。例如,在进行文件系统的重大维护操作之前,如升级Hadoop版本、修改文件系统配置等,进入安全模式可以确保在维护过程中文件系统不会被意外修改,保障数据的安全和一致性。

  • 退出条件
  1. 自动退出:在系统启动时进入的安全模式,NameNode会在完成元数据的加载和检查后,自动退出安全模式。通常,当HDFS的块报告(Block Report)达到一定比例时,NameNode认为文件系统的状态已经稳定,便会自动退出安全模式,允许正常的读写操作。
  2. 手动退出:如果Hadoop是被管理员手动置于安全模式的,那么管理员也可以根据实际情况手动退出安全模式。在Hadoop的命令行界面中,可以使用hdfs dfsadmin -safemode leave命令来手动退出安全模式。
  • 作用
  1. 保护文件系统元数据:在安全模式下,由于不允许对文件系统进行写操作,这就避免了在元数据加载和检查过程中,因用户的写操作而导致元数据的损坏或不一致,从而保护了文件系统的完整性和稳定性。
  2. 进行文件系统检查和维护:利用安全模式,管理员可以对文件系统进行各种检查和维护操作,如检查文件系统的健康状况、修复损坏的文件、清理无用的数据等,而不用担心在维护过程中文件系统被用户修改,确保维护操作的顺利进行和文件系统的最终一致性。

在这里插入图片描述


Block

HDFS 存储单元 - block

  • HDFS 以 block 为最小存储单元存储文件,默认按 128 兆拆分文件。虽然 block 大小可调整,但企业中通常不建议调整。因为调小会产生过多小文件,调大则会增加每个任务处理 block 的时长,且每个 block 运行一个计算任务。例如 129 兆的文件会拆分为两个 block,第一个 128 兆,第二个 1 兆,这是基于 128 兆的固定拆分标准。

block 副本放置策略

  • 每个 block 默认保存三个副本,放置在不同节点保障数据安全。
  • 第一个副本优先选择距离客户端最近且最空闲的节点。若客户端在集群外,距离各节点相同时,则从所有节点中挑选最空闲的节点存储。
  • 第二个副本存放在其他机架的最空闲节点,避免与第一个副本在同一机架因电源或交换机故障导致整个机架不可用的风险。
  • 第三个副本放置在与第二个副本相同机架的最空闲节点,因为数据分布在两个机架已能保证安全,这样可快速存储第三个副本。

block 在本地磁盘的存储结构

在这里插入图片描述

  • block 文件存储在本地服务器的文件系统或磁盘中,其存储目录可在 HDFS 配置文件中配置。在存储目录下,每个 block 除数据文件外,还有 meta 文件。meta 文件存储 block 的版本、文件类型、校验值、权限等属性信息,且与原数据无关,仅用于描述对应 block 的属性。

在这里插入图片描述

元数据

  • 元数据最初存于 NameNode 内存,包含文件块拆分信息及块所在节点信息。但内存存储不安全,节点挂掉会致数据丢失,影响生产环境,所以需将部分关键原数据持久化到磁盘。

磁盘存储机制

  • 持久化到磁盘形成 fs image 和 edits 文件。fs image 是某时刻元数据快照,记录如文件块拆分等重要信息;edits 用于记录元数据动态变化。因内存元数据变动频繁,若直接修改磁盘 fs image 会给主节点带来巨大压力,故采用将变动以日志形式追加到 edits 文件的方式,顺序追加可减轻磁盘压力。

元数据恢复与 edits 文件管理

  • 元数据恢复依靠磁盘中的 fs image 和 edits 文件。先加载 fs image 到内存获取早期元数据,再执行 edits 中的记录更新为最新元数据。但 edits 文件不能过大,否则恢复耗时久,如 10G 的 edits 文件可能使 NameNode 假死一小时,所以需定期将 edits 合并到 fs image 以控制其大小。

在这里插入图片描述

元数据合并操作

在这里插入图片描述

  • 在非高可用集群中,由 secondary name node 负责合并元数据。它定期从 NameNode 拖取 fs image 和 edits 文件,合并后生成新的 fs image 推回 NameNode,拖取过程中会生成新文件记录元数据更改操作。

在这里插入图片描述

  • 在高可用集群中,edits 文件不能存于 NameNode 本地,因其节点挂掉后无法获取,会导致数据不一致。edits 文件存于奇数台组成的 journal node 集群,保证可靠性。Active NameNode 随时将 edits 信息写入 journal node,Standby NameNode 同步 edits 到本地并与内存元数据合并,保持与 Active NameNode 一致,之后将内存元数据写磁盘形成 fs image 上传替换 Active NameNode 的 fs image,Active NameNode 再新开 edits 文件。

HDFS 文件写入操作

在这里插入图片描述

  • 客户端请求与权限检查:客户端发起上传文件请求(如 300 兆文件)至 Name Node,Name Node 检查目标目录是否存在及客户端权限,有权限则允许上传。
  • 文件拆分:客户端将文件按 128 兆为单位拆分,300 兆文件拆分为两个 128 兆和一个 44 兆的 block,拆分在客户端完成,减轻 HDFS 压力。
  • 分配 Data Node 与建立连接:上传每个 block 时,客户端向 Name Node 请求分配 Data Node。Name Node 依副本分配策略(第一个副本找最近节点,无则找最空闲节点;第二个副本找其他机架最空闲节点;第三个副本找与第二个副本相同机架最空闲节点)确定三个 Data Node 并返回。客户端与这三个 Data Node 以 pipeline 形式建立连接。
  • 数据发送与确认:客户端通过 pipeline 通道以数据包形式发送数据。数据先到第一个 Data Node,内存接收后写入磁盘,同时转发至第二个 Data Node,第二个 Data Node 重复此操作至第三个 Data Node。第三个 Data Node 写入磁盘成功后,依次向上返回成功信息,最终第一个 Data Node 向客户端汇报写入成功且副本备份好。后续 block 按相同规则上传,全部上传完成后客户端向 Name Node 汇报,Name Node 记录原数据(文件拆分的 block 信息及存储节点等)。

HDFS 文件读取操作

在这里插入图片描述

  • 权限检查与原数据返回:客户端发起读文件请求,Name Node 接收后检查权限,若有权限则返回文件原数据,原数据包含文件拆分的 block 数量及每个 block 所在节点,并按与客户端网络拓扑距离排序(最近节点排在前)。
  • 读取与合并文件:客户端获取原数据后,与每个 block 所在的最近节点建立连接读取数据,读取完成后合并 block 成最终文件并返回。

HDFS 高可用

HDFS 单管理节点问题

  • 内存上限问题:单个管理节点(如服务器内存为 128G)存放元数据,可能出现内存不足情况。一旦内存放满,管理端将无法处理请求,进而导致整个集群不可用。
  • 单节点故障问题:若管理节点(name node)单点故障,整个集群会陷入不可用状态,影响系统正常运行。

联邦机制

  • 原理:针对单节点内存受限问题,采用多台 name node 共同管理集群的方式。例如,可根据集群目录数量分配管理任务,若有 30 个目录,可安排 3 台节点各管理 10 个数据目录,实现管理负载均衡。
  • 优势:通过多节点协作,降低了单个 name node 内存占满的概率,提升了系统稳定性和扩展性,有效解决了内存受限难题。

管理节点热备

  • 节点设置:管理节点分为 active 节点(正在管理集群的节点)和 standby 节点(备用节点),在实际生产环境中可设置多个 standby 节点,以增强备用能力。
  • 数据同步:active name node 将原数据文件(如 edits 文件)托管到 journal 集群(JNLOAD 集群)。standby 节点实时与 journal 集群同步数据,并将同步后的元数据存储在本地内存中,确保其与 active 节点的元数据保持一致,以便在 active 节点故障时能迅速接替工作。

在这里插入图片描述

高可用架构组件

  • Journal 集群:主要负责元数据同步功能。它接收 active 节点托管的原数据文件,并为 standby 节点提供数据同步服务,保证集群元数据的一致性和完整性。
  • Zookeeper 集群:作为分布式协调服务组件,在高可用架构中发挥关键作用。它通过启动多个进程(如 fover controller)监控 active 和 standby 节点状态。这些进程利用心跳机制定期向 Zookeeper 汇报节点状态。当 active 节点出现故障时,Zookeeper 能及时发现通信中断情况,将故障节点的状态从 active 切换为 standby,并从 standby 节点中选举出一个新的 active 节点,确保集群持续稳定运行。

HDFS 操作命令

shell 命令

  1. 文件系统查看命令
    • hdfs dfs -ls:查看指定目录下文件和子目录信息。
    • hdfs dfs -du:显示目录或文件磁盘使用情况。
    • hdfs dfs -count:统计文件数量、目录数量和文件总大小。
  2. 文件操作命令
    • hdfs dfs -puthdfs dfs -copyFromLocal:将本地文件复制到HDFS。
    • hdfs dfs -gethdfs dfs -copyToLocal:将HDFS文件复制到本地。
    • hdfs dfs -cat:查看HDFS文件内容。
    • hdfs dfs -rm:删除HDFS文件,删目录加-r
  3. 目录操作命令
    • hdfs dfs -mkdir:在HDFS创建目录。
    • hdfs dfs -rmdir:删除HDFS空目录,非空目录用-r参数删除。

Rest API

  • 原理与优势:将 HDFS 操作命令转换为 HTTP 形式,因其兼容性好,各种编程语言均可通过发送网络请求调用,所以通用性强。
  • 操作示例
    • 文件上传:先以 URL 形式用“put”方法指定 HDFS NameNode 的 IP 与端口、“webhdfs/v1”及目标目录,执行后获取 3 个 DataNode 地址,再用“put”将本地文件上传至 DataNode 的指定目录。
    • 文件下载:指定节点位置和操作路径,用“open”操作将文件下载到本地。
    • 文件删除:用“delete”指定 HDFS 基本地址和目录进行删除操作。

HDFS 运维管理概述

  • 主要讲述 HDFS 运维管理中命令的应用场景,而非逐字讲解命令。涉及系统配置、常见管理命令、数据处理操作、工具使用、配额与快照以及监控页面等方面内容,旨在为程序员、软件架构师和工程师提供 HDFS 运维的关键知识。

系统配置

在这里插入图片描述

  • 核心配置文件:HDFS 有 core-site.xml 和 hdfs-site.xml 两个核心配置文件。core-site.xml 是 HDFS 的全局配置文件,用于配置 HDFS、map reduce 等组件;hdfs-site.xml 针对 HDFS 进行局部配置,其格式为在 configuration 标签下,每个配置放在 property 标签中,通过 name 和 value 设置参数。
  • 启动前配置:启动 HDFS 前需配置 hadobe env.sh 文件,将本地 JDK 引入 java home 并填写到该文件中,使 Hadoop 能在 Java 环境运行。启动后一般只需更改配置文件。配置文件可设置 name node 存储位置(如 fs image、edits 文件等)、block size(默认 128 兆)、副本数(默认三副本,通常不建议修改)等参数。

常见管理命令

  • 格式化:首次启动 HDFS 时,需对 name node 执行格式化操作(hdfs namenode -format)。此操作会在 name node 生成 name node id 并分发给 data node,使 data node 确定主节点,实现认主。
  • 查看文件系统信息:启动后可用 hdfs dfs -report 命令查看文件系统基本信息,如已用空间、剩余空间及占比等;
  • fsck 命令可检查文件系统健康状况,能查看指定目录下的 block 数、丢失副本数、坏块等信息,发现坏块需排查修复,应定期执行该检查。

在这里插入图片描述

  • 安全模式:可通过 hdfs dfsadmin 命令手动进入或退出安全模式,但一般不建议手动操作。若因系统异常进入安全模式,不建议手动强退,以免引发问题。进行集群维护时,可让系统自动进入只读安全模式,之后再手动退出。
    在这里插入图片描述

  • 主备切换与集群扩缩容:使用 HA 命令可进行主备节点切换,查看节点状态并按需转换;在集群扩容和缩容时,分别使用服役和退役操作对集群进行调整。
    在这里插入图片描述
    在这里插入图片描述

  • 数据重分布:数据倾斜(集群节点数据量分布不均)时,执行 hdfs dfs balancer 命令进行数据重分布,将数据多的节点数据拷贝到数据少的节点,使各节点数据均匀。默认带宽为 1 兆每秒,集群空闲时(如凌晨),可用 balancer band width 提升带宽(如设为 100 兆或更高)以加快重分布速度。
    在这里插入图片描述

数据处理工具

在这里插入图片描述

  • Distcp:主要用于 HDFS 集群之间的数据拷贝,可将单线程拷贝任务转换为分布式并发的 mr 任务,性能更高。集群内部拷贝也可使用,且性能优于单线程 CP,但主要应用于集群间拷贝。

配额与快照

在这里插入图片描述

  • 配额限制:quota 可对目录进行空间和文件数量限制。例如创建 name quarter 和 space quarter 目录后,可分别设置其文件数量上限(如 name quarter 设为 100 个文件)和最大空间(如 space quarter 设为 10G)。
    在这里插入图片描述

  • 快照功能:可给目录打快照以便数据恢复。创建快照时会在目录下生成隐藏文件夹.snapshot,其中存放快照数据。如对 tap 目录创建快照后删除该目录下数据,可从.snapshot 文件夹中拷出数据进行恢复。

监控页面

  • 开源 HDFS 的 50070 端口有自带监控页,在该页面可查看集群基本信息,如安全模式状态等,还可通过其他 label 进行集群监控和管理。

相关文章:

【大数据2025】Hadoop 万字讲解

文章目录 一、大数据通识大数据诞生背景与基本概念大数据技术定义与特征大数据生态架构概述数据存储数据计算与易用性框架分布式协调服务和任务调度组件数仓架构流处理架构 二、HDFSHDFS 原理总结一、系统架构二、存储机制三、数据写入流程四、心跳机制与集群管理 安全模式&…...

HTML语言的计算机基础

HTML语言的计算机基础 引言 在当今信息技术迅猛发展的时代,网页设计和开发已成为计算机科学中不可或缺的一部分。而HTML(超文本标记语言)作为构建网页的基础语言,承载着网页上所有内容的结构,帮助开发者创建和展示信…...

Cannot resolve symbol ‘XXX‘ Maven 依赖问题的解决过程

一、问题描述 在使用 Maven 管理项目依赖时,遇到了一个棘手的问题。具体表现为:在 pom.xml 文件中导入了所需的依赖,并且在 IDE 中导入语句没有显示为红色(表示 IDE 没有提示依赖缺失),但是在实际使用这些依…...

Swift语言的函数实现

Swift语言函数实现详解 引言 Swift是一种强类型、泛型编程的现代编程语言,广泛应用于iOS和macOS开发。函数是Swift编程中的基本构建块之一,通过函数可以将代码进行模块化,实现重用性和可读性。本篇文章将系统地介绍Swift中的函数&#xff0…...

除了基本的事件绑定,鸿蒙的ArkUI

鸿蒙操作系统(HarmonyOS)是由华为技术有限公司开发的分布式操作系统,旨在为多种智能设备提供一个统一的操作平台。它不仅适用于智能手机,还适用于平板电脑、智能手表、智能电视等物联网设备。为了使开发者能够更加便捷地创建跨设备…...

数据分析及应用:经营分析中的综合指标解析与应用

目录 1. 市场份额(Market Share) 2. 客户获取成本(Customer Acquisition Cost, CAC) 3. 客户生命周期价值(Customer Lifetime Value, CLV) 4. 客户留存率(Customer Retention Rate, CRR) 5. 净推荐值(Net Promoter Score, NPS) 6. 转化率(Conversion Rate) …...

Mac开启任何来源安装配置环境变量

目录 开启任何来源配置环境变量退出保存时如果没有权限修改文件权限拓展——.bash_profile和.zshrc 开启任何来源 sudo spctl --master-disable#打开软件时提示文件损坏 sudo xattr -r -d com.apple.quarantine 进入访达应用程序拖拽应用到终端配置环境变量 cd ~ vi ~/.bash…...

UI自动化设计模式--POM

在自动化测试中,Page Object Model(POM)设计方式是一种常用的设计模式,它将页面元素和操作封装成独立的类,提高了测试代码的可读性、可维护性和可复用性。以下是关于POM设计方式的详细介绍: 基本概念 POM…...

(三)线性代数之二阶和三阶行列式详解

在前端开发中,尤其是在WebGL、图形渲染、或是与地图、模型计算相关的应用场景里,行列式的概念常常在计算变换矩阵、进行坐标变换或进行图形学算法时被使用。理解二阶和三阶行列式对于理解矩阵运算、旋转、平移等操作至关重要。下面,我将结合具…...

postman接口测试工具详解

一、前言 Postman是一款广泛使用的API测试工具,适用于开发人员和测试人员。它提供了直观的用户界面,能够方便地进行API请求、响应验证、自动化测试等操作。本文将详细介绍Postman的功能和用法,帮助用户高效地进行API测试。 二、Postman的主…...

Golang 中强大的重试机制,解决瞬态错误

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...

【C语言系列】深入理解指针(2)

一、数组名的理解 上一篇文章中我们写过一个这样的代码: int arr[10] {1,2,3,4,5,6,7,8,9,10}; int *p &arr[0];这里使用&arr[0] 的方式拿到了数组第⼀个元素的地址,但是其实数组名本来就是地址,而且是数组首元素的地址&#xff…...

【网络原理】万字详解 HTTP 协议

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. HTTP 前置知识1.1 HTTP 是什么1.2 HTPP 协议应用场景1.3 HTTP 协议工作过程 2. HTTP 协议格式2.1 fiddler…...

WIFI连接与通信

ESP32-S3 支持 2.4 GHz 的 Wi-Fi 4(802.11n)标准,提供高达 150 Mbps 的数据传输速率。它支持 STA(Station)模式、AP(Access Point)模式和 Wi-Fi 直连(Wi-Fi Direct)模式&…...

Elixir语言的数据库编程

Elixir语言的数据库编程 介绍 Elixir是一种基于Erlang虚拟机(BEAM)的函数式编程语言,特别适用于构建可扩展和可维护的系统。它结合了Erlang的卓越并发特性和Ruby的易用性,因此在Web开发和实时应用中越来越受到欢迎。伴随着Elixi…...

python中Mako用法

Mako 是一个轻量级的 Python 模板库,它以其高效的代码生成和灵活的表达能力著称,常用于 Web 开发和静态文件生成。以下是对 Mako 的核心 API介绍。 1. 安装 Mako 首先安装 Mako: pip install mako2. 基本用法 Mako 的核心在于 Template 类…...

SMS4J - 一个聚合各种短信API商的工具

众所周知,在我们日常的项目开发中,短信验证码发送是一个必不可少的环节。 特别是如今手机互联网时代,基本所有东西都跟手机强绑定,所有的安全验证都离不开验证码这一环节。 所以对于一个系统来说,发送短信验证码成为…...

BEVFusion论文阅读

1. 简介 融合激光雷达和相机的信息已经变成了3D目标检测的一个标准,当前的方法依赖于激光雷达传感器的点云作为查询,以利用图像空间的特征。然而,人们发现,这种基本假设使得当前的融合框架无法在发生 LiDAR 故障时做出任何预测&a…...

【总结盘点类】2024,一场关于海量数据治理以及合理建模的系列写作

目录 1.今年的创作路线 2.先说第一条线 2.1.由日志引出的海量文本数据存储和分析问题 2.2.监控以及监控的可视化 2.3.数据量级再往上走牵扯出了大数据 2.4.由大数据牵扯出的JAVA线程高级内容 3.第二条线,也是2025要继续的主线 1.今年的创作路线 今年的写作内…...

【25考研】考清华的软件工程专业的研究生需要准备什么?

清华软件复试竞争一样很激烈!建议同学认真复习! 关于项目的注意事项先来一些总结: 千万别照抄开源项目 开源项目是一个很好的参考,但直接搬过来就没啥意义啦。我们可以根据开源项目学习它的技术架构和关键点,然后结…...

网络编程-UDP套接字

文章目录 UDP/TCP协议简介两种协议的联系与区别Socket是什么 UDP的SocketAPIDatagramSocketDatagramPacket 使用UDP模拟通信服务器端客户端测试 完整测试代码 UDP/TCP协议简介 两种协议的联系与区别 TCP和UDP其实是传输层的两个协议的内容, 差别非常大, 对于我们的Java来说, …...

EXCEL的一些用法记录

按某个分隔符进行拆分多列 【数据】- 【分列】 多列调整成多行 复制 - 粘贴 - 选择【转置】 部分内容替换 SUBSTITUTE()函数 ,固定内容 加“”...

不使用 JS 纯 CSS 获取屏幕宽高

前言 在现代前端开发中,获取屏幕的宽度和高度通常依赖于 JavaScript。然而现代 CSS 也可以获取到屏幕的宽高,通过自定义属性(CSS Variables)和一些数学函数来实现这一目标。本文将详细解析如何使用 CSS 的 property 规则和一些数…...

Node.js 完全教程:从入门到精通

Node.js 完全教程:从入门到精通 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,允许开发者在服务器端使用 JavaScript。它的非阻塞 I/O 和事件驱动架构使得 Node.js 非常适合于构建高性能的网络应用。本文将详细介绍 Node.js 的安装、基本语…...

可替代CentOS 7的Linux操作系统选型

可替代CentOS 7的其他Linux操作系统选型 一、背景介绍二、主流操作系统调研2.1 企业级产品:Red Hat Enterprise Linux/CentOS Stream2.1.1 Red Hat Enterprise Linux2.1.2 CentOS Stream2.2 其他发行版:Debian/Ubuntu2.3 开源产品:AlmaLinux / RockyLinux2.3.1 AlmaLinux2.3…...

【ESP32】ESP32连接JY61P并通过WIFI发送给电脑

前言 手头上有个ESP32&#xff0c;发现有wifi功能&#xff0c;希望连接JY61P并通过WIFI把姿态数据发送给电脑 1.采用Arduino IDE编译器&#xff1b;需要安装ESP32的开发板管理器&#xff1b; 2.电脑接受数据是基于python的&#xff1b; 1. ESP32 连接手机WIFI #include <…...

【JSqlParser】Java使用JSqlParser解析SQL语句总结

简述 Java解析SQL语句有很多工具都可以做到&#xff0c;比如Mybatis、Druid、目前用来用去最全面的仍然是Jsqlparser&#xff0c;它是一个Github上的开源项目&#xff0c;JSqlParser是一个用于解析SQL语句的Java库&#xff0c;它可以帮助开发者分析和操作SQL语句的结构。无论是…...

TCP断开通信前的四次挥手(为啥不是三次?)

1.四次握手的过程 客户端A发送 FIN&#xff08;终止连接请求&#xff09; A&#xff1a;我要断开连接了&#xff08;FIN&#xff09;。A进入FIN_WAIT_1状态&#xff0c;表示请求断开&#xff0c;等待对方确认。 服务器B回复 ACK&#xff08;确认断开请求&#xff0c;但还未准备…...

解决用 rm 报bash: /usr/bin/rm: Argument list too long错

但目录里面文件过多用 rm 报bash: /usr/bin/rm: Argument list too long错时怎么办&#xff1a; 看看以下操作记录 rootmcu:/# cd /tmp rootmcu:/tmp# rm -f /tmp/chunk* bash: /usr/bin/rm: Argument list too long rootmcu:/tmp# rm -rf /tmp/chunk* bash: /usr/bin/rm: Arg…...

AI News(1/21/2025):OpenAI 安全疏忽:ChatGPT漏洞引发DDoS风险/OpenAI 代理工具即将发布

1、OpenAI 的安全疏忽&#xff1a;ChatGPT API 漏洞引发DDoS风险 德国安全研究员 Benjamin Flesch 发现了一个严重的安全漏洞&#xff1a;攻击者可以通过向 ChatGPT API 发送一个 HTTP 请求&#xff0c;利用 ChatGPT 的爬虫对目标网站发起 DDoS 攻击。该漏洞源于 OpenAI 在处理…...

从零到上线:Node.js 项目的完整部署流程(包含 Docker 和 CICD)

从零到上线&#xff1a;Node.js 项目的完整部署流程&#xff08;包含 Docker 和 CI/CD&#xff09; 目录 项目初始化&#xff1a;构建一个简单的 Node.js 应用设置 Docker 环境&#xff1a;容器化你的应用配置 CI/CD&#xff1a;自动化构建与部署上线前的最后检查&#xff1a;…...

哈希桶(开散列)

文章目录 前言实现插入put方法实现get方法实现泛型类哈希桶 前言 哈希桶用来解决哈希冲突&#xff0c;牺牲空间换取时间。 通过数组和链表来实现哈希桶 public class Node{public int key;public int value;public Node next;public Node(int key,int value){this.keykey;this…...

DEBERTA:具有解耦注意力机制的解码增强型BERT

摘要 近年来&#xff0c;预训练神经语言模型的进展显著提升了许多自然语言处理&#xff08;NLP&#xff09;任务的性能。本文提出了一种新的模型架构DeBERTa&#xff08;具有解耦注意力机制的解码增强型BERT&#xff09;&#xff0c;通过两种新技术改进了BERT和RoBERTa模型。第…...

WWW2025 多模态对话系统意图识别挑战赛方案总结

WWW2025 多模态对话系统意图识别挑战赛方案 代码实现&#xff1a;https://github.com/klayc-gzl/incent_internvl_2.5_8b 最终成绩&#xff1a; 大赛背景 互联网已成为提供客户服务的主要沟通渠道。网络客户服务面临的一个关键挑战是服务对话中多模态意图的高效识别。通过利…...

渗透测试--攻击常见的Web应用

本文章咱主要讨论&#xff0c;常见Web应用的攻击手法&#xff0c;其中并不完全&#xff0c;因为Web应用是在太多无法囊括全部&#xff0c;但其中的手法思想却值得我们借鉴&#xff0c;所以俺在此做了记录&#xff0c;希望对大家有帮助&#xff01;主要有以下内容&#xff1a; 1…...

w173疫苗发布和接种预约系统

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…...

常用的跨域方案有哪些?

在前端开发中&#xff0c;跨域&#xff08;Cross-Origin&#xff09;是一个常见问题&#xff0c;通常是由于浏览器的同源策略&#xff08;Same-Origin Policy&#xff09;限制导致的。为了解决跨域问题&#xff0c;前端开发者可以采用多种方案。 1. CORS&#xff08;跨域资源共…...

JS通过ASCII码值实现随机字符串的生成(可指定长度以及解决首位不出现数值)

在之前写过一篇“JS实现随机生成字符串&#xff08;可指定长度&#xff09;”&#xff0c;当时写的过于简单和传统&#xff0c;比较粗放。此次针对此问题&#xff0c;对随机生成字符串的功能进行优化处理&#xff0c;对随机取到的字符都通过程序自动来完成。 在写之前&#xff…...

IoTDB 1.2 升级 1.3 后 Pipe 插件失效

问题现象 客户使用 Pipe 功能将数据从 IoTDB 系统传输至 Kafka 集群&#xff0c;以便进行后续的数据处理与分析。在从企业版 1.2.5 升级至企业版 1.3.3.6 后&#xff0c;客户反馈 Kafka 的 consumer 无法接收到数据。经检查日志&#xff0c;发现存在以下报错&#xff1a; 问题…...

基于STM32的智能门锁安防系统(开源)

目录 项目演示 项目概述 硬件组成&#xff1a; 功能实现 1. 开锁模式 1.1 按键密码开锁 1.2 门禁卡开锁 1.3 指纹开锁 2. 功能备注 3. 硬件模块工作流程 3.1 步进电机控制 3.2 蜂鸣器提示 3.3 OLED显示 3.4 指纹与卡片管理 项目源代码分析 1. 主程序流程 (main…...

浅谈云端编辑器,分析其亮点与不足

浅谈云端编辑器&#xff0c;分析其亮点与不足 这个云端编辑器界面可以分为左侧题目筛选栏、中间题目描述与代码编辑区域、右侧AI提示功能三部分。以下是详细的分析&#xff1a; 1. 左侧题目筛选栏 层次结构清晰&#xff1a;左侧栏展示了一个层级结构&#xff0c;题目按主题分…...

Python字符串引号的嵌套问题

目录 1、使用不同类型的引号 2、使用转义字符 3、使用三重引号 4、嵌套三重引号 5、注意事项 在Python中&#xff0c;字符串可以使用单引号 () 或双引号 (") 来定义&#xff0c;但是如果我们要定义的字符串内也包含引号&#xff0c;字符串界定符的不正确使用会导致语法…...

latex如何让目录后面有点

使用前效果 在导言区引入以下代码 \usepackage[subfigure]{tocloft} \usepackage{subfigure} % 设置目录中 section 条目前导符号为连续点 \renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}}编译后的效果...

【力扣系列题目】不同路径 组合总和 最大连续1个数 打家劫舍{持续更新中...}

文章目录 不同路径不同路径[不同路径 II](https://leetcode.cn/problems/unique-paths-ii/)[不同路径 III](https://leetcode.cn/problems/unique-paths-iii/) 组合总和组合总和 【无重复数字无限制选择次数】[组合总和 II](https://leetcode.cn/problems/combination-sum-ii/)…...

方法建议ChatGPT提示词分享

方法建议 ChatGPT能够根据您的具体需求提供针对性的建议&#xff0c;帮助您选择最合适的研究方法。通过清晰的提示&#xff0c;ChatGPT可以精准地为您提供最契合的研究方案。此外&#xff0c;它还能协助您将这些方法灵活地应用于新的研究环境&#xff0c;提出创新的技术解决方案…...

Cursor的详细使用指南

以下是一份关于 Cursor 的详细使用指南&#xff1a; 一、安装与设置 下载与安装&#xff1a; 首先&#xff0c;访问 Cursor 的官方网站&#xff0c;根据你的操作系统&#xff08;Windows、Mac 或 Linux&#xff09;下载相应的安装程序。运行安装程序&#xff0c;按照屏幕上的提…...

Python----Python高级(正则表达式:语法规则,re库)

一、正则表达式 1.1、概念 正则表达式&#xff0c;又称规则表达式,&#xff08;Regular Expression&#xff0c;在代码中常简写为regex、 regexp或RE&#xff09;&#xff0c;是一种文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之间的字母&#xff0…...

电脑如何访问手机文件?

手机和电脑已经深深融入了我们的日常生活&#xff0c;无时无刻不在为我们提供服务。除了电脑远程操控电脑外&#xff0c;我们还可以在电脑上轻松地访问Android或iPhone手机上的文件。那么&#xff0c;如何使用电脑远程访问手机上的文件呢&#xff1f; 如何使用电脑访问手机文件…...

计算最接近的数

计算最接近的数 真题目录: 点击去查看 E B卷 100分题型 题目描述 给定一个数组X和正整数K&#xff0c;请找出使表达式&#xff1a; X[i] - X[i 1] - … - X[i K - 1] 结果最接近于数组中位数的下标 i &#xff0c;如果有多个 i 满足条件&#xff0c;请返回最大的 i. 其中&…...

Ubuntu离线docker compose安装DataEase 2.10.4版本笔记

1、先准备一个可以正常上网的相同版本的Ubuntu系统&#xff0c;可以使用虚拟机。Ubuntu系统需要安装好docker compose或docker-compose 2、下载dataease-online-installer-v2.10.4-ce.tar在线安装包&#xff0c;解压并执行install.sh进行安装和启动 3、导出docker镜像 sudo d…...