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

【Hadoop】核心组件深度剖析:HDFS、YARN与MapReduce的奥秘

🐇明明跟你说过:个人主页

🏅个人专栏:《大数据前沿:技术与应用并进》🏅

🔖行路有良友,便是天堂🔖

目录

一、引言

1、Hadoop简介

2、Hadoop生态系统概览

二、Hadoop Distributed File System (HDFS) 深度解析

1、HDFS核心概念

2、HDFS工作机制

3、HDFS的优势与局限

三、Yet Another Resource Negotiator (YARN) 架构剖析

1、YARN诞生背景与意义

2、YARN架构概览

3、YARN工作流程

4、YARN应用场景

四、MapReduce编程模型与实现机制

1、MapReduce基本概念

2、MapReduce 工作流程


一、引言

1、Hadoop简介

Hadoop 是一个开源的分布式计算框架,主要用于处理和存储大量数据。它由 Apache 软件基金会开发,基于 Google 的 MapReduce 和 Google 文件系统 (GFS) 的理念设计。Hadoop 提供了一种可扩展、容错的方式来处理大规模数据集,使得用户能够在廉价的硬件上进行分布式计算。

2、Hadoop生态系统概览

Hadoop 生态系统是围绕 Hadoop 分布式计算框架所建立的一系列工具和技术的集合。这些工具涵盖了数据存储、数据处理、数据管理、数据分析等多个方面,旨在帮助用户处理和分析大规模数据集。

1. 数据存储与管理

HDFS (Hadoop Distributed File System):

  • Hadoop 分布式文件系统,用于存储大规模数据,具备高容错性和高吞吐量。

HBase:

  • 一个基于列存储的分布式数据库,适合处理大规模结构化数据,支持实时读写。

Hive:

  • 一个数据仓库工具,可以将结构化数据映射为表,支持使用类似 SQL 的查询语言 HiveQL 进行查询。

HCatalog:

  • Hive 的元数据管理服务,帮助不同 Hadoop 工具(如 Pig、MapReduce)之间共享数据元数据。

HCFS (Hadoop Compatible File System):

  • 支持与 HDFS 兼容的第三方文件系统,如 Amazon S3。

2. 数据处理

MapReduce:

  • Hadoop 的核心分布式计算框架,负责大规模数据的并行处理。

YARN (Yet Another Resource Negotiator):

  • 资源管理框架,负责集群资源的分配和任务调度,支持多种计算模型。

Tez:

  • 一种基于 DAG(有向无环图)的计算框架,作为 MapReduce 的更高效替代方案。

Spark:

  • 一个内存计算框架,比 MapReduce 更快,支持实时数据处理和复杂计算任务。

Pig:

  • 一个数据流处理工具,使用 Pig Latin 语言编写数据分析任务,适合处理非结构化和半结构化数据。

Flink:

  • 一个分布式流处理框架,支持流式和批处理数据的实时计算。

3. 数据分析与查询

Hive:

  • 前面提到的 Hive 也属于数据分析工具,可以通过 SQL 查询大规模数据。

Impala:

  • 由 Cloudera 开发的一个分布式 SQL 查询引擎,提供快速的查询能力,适合交互式分析。

Drill:

  • 一个低延迟查询引擎,支持各种数据源(如 HDFS、HBase、NoSQL 等)的查询。

Phoenix:

  • 用于 HBase 的 SQL 查询引擎,支持低延迟的查询操作。

Kylin:

  • 一个分布式数据仓库引擎,支持多维分析和 OLAP 查询,适合大规模数据集的分析。

4. 数据流处理

Storm:

  • 实时流处理框架,适合低延迟处理和分布式计算任务。

Kafka:

  • 一个分布式消息队列系统,支持高吞吐量的消息发布与订阅,广泛用于实时数据流处理。

Flink:

  • 既支持流式处理又支持批处理的数据处理框架,提供低延迟的实时计算。

二、Hadoop Distributed File System (HDFS) 深度解析

1、HDFS核心概念

1. 分布式架构:

  • HDFS 是一个主从(master-slave)架构,由一个NameNode(主节点)和多个DataNode(数据节点)组成。
  • NameNode 负责管理文件系统的元数据,包括文件的路径、块(block)的位置等。
  • DataNode 负责存储实际的数据块,并定期向 NameNode 报告其存储的块信息。

2. 块存储(Block Storage):

  • 在 HDFS 中,文件被划分为多个块(默认大小为 128 MB),并将这些块分布式地存储在不同的 DataNode 上。
  • 每个块会被复制多个副本(默认是 3 份)并存储在不同的 DataNode 上,以提供容错能力。

3. 高容错性:

  • HDFS 通过数据块的多副本机制来提供容错能力。当一个 DataNode 发生故障时,系统可以从其他副本中恢复数据,确保数据的高可用性。
  • NameNode 持有文件系统的元数据,并将其存储在本地磁盘和定期保存的镜像文件中,以防止数据丢失。

4. 高吞吐量:

  • HDFS 优化了大规模数据的顺序读写操作,适合大数据量的批处理任务,如 MapReduce。
  • 通过将数据分布在多个 DataNode 上,并行地进行数据读写操作,提高了系统的整体吞吐量。

5. 数据本地性:

  • HDFS 充分利用了数据本地性原则,即将计算任务尽量安排到存储目标数据的节点上,以减少网络带宽的消耗,提高处理效率。

6. 流式数据访问(Streaming Data Access):

  • HDFS 适用于一次写入、多次读取的场景。数据写入后一般不会被修改(append-only 模式),支持数据的流式访问,这与传统的文件系统有所不同。

2、HDFS工作机制

1. 文件写入过程:

  • 当一个文件被写入 HDFS 时,它会被切分成多个块。
  • NameNode 会为这些块指定存储位置,并将位置信息记录到元数据中。
  • 客户端将数据块顺序写入到指定的 DataNode,并根据复制策略将块的副本存储到不同的 DataNode 上。


2. 文件读取过程:

  • 客户端向 NameNode 请求读取文件时,NameNode 会返回文件块的位置列表。
  • 客户端根据这个列表并行地从多个 DataNode 读取数据块,从而提高读取速度。


3. 数据再平衡(Data Rebalancing):

  • HDFS 通过 DataNode 的自动再平衡机制,确保数据块均匀分布在集群的所有节点上,以提高系统的存储利用率和性能。


4. 故障恢复:

  • 当一个 DataNode 发生故障时,NameNode 会检测到并安排在其他健康的 DataNode 上复制丢失的块,从而恢复数据的完整性。

3、HDFS的优势与局限

优势:

  1. 容错性:通过数据块的多副本机制,HDFS 提供了较高的容错能力。
  2. 可扩展性:HDFS 可以轻松地扩展,支持成千上万的节点和数 PB 级的数据存储。
  3. 高吞吐量:适合大规模数据处理任务,优化了顺序读写操作。

局限:

  1.  低延迟访问:HDFS 主要设计用于高吞吐量的大规模批处理场景,不适合低延迟的数据访问需求。
  2. 小文件问题:HDFS 不擅长处理大量小文件,因为 NameNode 的内存中存储着文件系统的元数据,大量的小文件会占用过多的元数据存储空间。 

   

三、Yet Another Resource Negotiator (YARN) 架构剖析

1、YARN诞生背景与意义

YARN(Yet Another Resource Negotiator)是 Hadoop 生态系统中的一个关键组件,其主要目的是为 Hadoop 集群中的资源管理和任务调度提供支持。

1. MapReduce 的局限性:

  • Hadoop 最初是以 MapReduce 为核心的计算框架,这种设计虽然适合处理批量数据,但在处理其他类型的计算任务(如实时处理、图计算、机器学习等)时存在局限性。
  • MapReduce 模型的硬编码限制了它的灵活性,使得其在面对不同的计算需求时难以扩展和优化。


2. 资源管理的挑战:

  • 早期的 Hadoop 版本(如 Hadoop 1.x)将资源管理和任务调度与计算模型(MapReduce)紧密耦合在一起,导致资源管理不够灵活且难以扩展。
  • 集群中的资源管理和任务调度通常由单一的 JobTracker 负责,这种集中式的管理方式限制了集群的可扩展性和可靠性。


3. 需求变化:

  • 随着大数据技术的发展,企业和研究机构对集群资源的管理需求变得越来越复杂,需要支持多种计算框架(如 Spark、Tez、HBase、Storm 等),而不仅仅是 MapReduce。
  • 对于大规模数据处理的需求不断增长,需要一种更为灵活和可扩展的资源管理解决方案来适应不同的应用场景。

2、YARN架构概览

1. ResourceManager(RM):

职责: 负责整个集群的资源管理和调度。ResourceManager 主要包括两个部分:

  • Scheduler: 负责将资源分配给不同的应用程序。Scheduler 按照资源请求、队列优先级和其他调度策略进行资源分配。常见的调度策略包括容量调度器(Capacity Scheduler)和公平调度器(Fair Scheduler)。
  • ResourceManager Core: 管理集群的整体资源,跟踪每个节点的资源使用情况,处理来自 ApplicationMaster 的资源请求。


2. NodeManager(NM):

职责: 负责单个节点的资源管理和任务监控。NodeManager 主要包括两个部分:

  • ResourceManager Client: 向 ResourceManager 注册节点的资源信息,并处理从 ResourceManager 收到的任务请求。
  • Container Management: 启动和管理在本地节点上运行的容器,并监控容器的资源使用情况。


3. ApplicationMaster(AM):

职责: 每个应用程序(如 MapReduce、Spark 作业等)有一个独立的 ApplicationMaster 负责管理其生命周期。ApplicationMaster 负责:

  • 向 ResourceManager 请求资源。
  • 跟踪应用程序的任务进度,协调任务的执行。
  • 处理应用程序的失败恢复和重新调度。

独立性: ApplicationMaster 是应用程序级别的,并且可以根据实际需要动态请求资源和调度任务。 


4. Container:

  • 职责: 是在节点上运行的资源单位。每个容器分配了一定的 CPU、内存和磁盘资源,用于执行任务。容器的管理由 NodeManager 负责,包括启动、监控和资源回收。

   

3、YARN工作流程

1. 应用程序提交

应用程序提交:

  • 用户提交应用程序(如 MapReduce、Spark 作业)到集群。
  • 提交过程通常包括定义作业的需求(资源、执行环境等)和作业的配置参数。

启动 ApplicationMaster:

  • 提交的应用程序包含一个 ApplicationMaster 的实例,该实例负责管理应用程序的整个生命周期。
  • 提交请求被传递给 ResourceManager。

2. 资源申请与分配

ResourceManager 资源管理:

  • ResourceManager 负责集群资源的全局管理,包括资源的分配和调度策略。
  • ResourceManager 接收来自 ApplicationMaster 的资源请求,并决定是否满足这些请求。

Scheduler 调度:

  • ResourceManager 的 Scheduler 根据调度策略(如容量调度器或公平调度器)来决定资源的分配。
  • Scheduler 考虑资源的可用性、队列优先级和其他调度策略来分配资源。

分配容器:

  • ResourceManager 将资源分配给 ApplicationMaster,通常以容器的形式分配给应用程序。
  • 每个容器包括 CPU、内存和磁盘资源,并在 NodeManager 上启动。

   

3. 任务执行

启动容器:

  • NodeManager 接收到 ResourceManager 的指令,在本地节点上启动分配的容器。
  • ApplicationMaster 在容器中启动任务并执行作业的计算。

任务管理:

  • ApplicationMaster 负责管理任务的执行,协调多个任务之间的工作,处理任务失败和恢复。
  • ApplicationMaster 跟踪每个任务的状态,并根据需要调整资源请求。

任务监控:

  • NodeManager 负责监控容器的资源使用情况,并将状态报告返回给 ResourceManager 和 ApplicationMaster。
  • 监控信息包括容器的资源使用、健康状况等。

4. 资源释放与回收

任务完成:

  • 当任务完成时,容器释放其占用的资源。
  • NodeManager 将完成的信息报告给 ResourceManager。

资源回收:

  • ResourceManager 更新资源的可用状态,将释放的资源重新纳入集群资源池。
  • 这些资源可以被其他应用程序请求和使用。

5. 应用程序完成

完成报告:

  • ApplicationMaster 在任务完成后向 ResourceManager 报告作业的最终状态,包括成功、失败或其他状态。
  • ApplicationMaster 处理应用程序的最终清理和资源释放。

结果存储:

  • 应用程序的结果可以被存储在 HDFS 或其他存储系统中,以供后续使用。

结束生命周期:

  • ApplicationMaster 完成其生命周期,释放所占用的资源,清理相关的运行状态。

   

4、YARN应用场景

YARN(Yet Another Resource Negotiator)作为 Hadoop 的资源管理和调度平台,为各种计算框架和应用程序提供了高效的资源管理。

1. 大数据处理

MapReduce

  • 应用场景: 传统的 MapReduce 作业仍然是 YARN 的核心应用之一。适用于批处理、数据挖掘和数据分析。
  • 示例: ETL(提取、转换、加载)作业、日志分析、数据统计等。

Spark

  • 应用场景: Spark 是一个通用的数据处理引擎,支持批处理、流处理、机器学习和图计算。
  • 示例: 实时数据分析、图计算任务、机器学习训练等。

2. 实时数据处理

Apache Storm

  • 应用场景: 处理实时流数据,适用于需要低延迟的应用场景。
  • 示例: 实时数据监控、实时日志分析、点击流分析等。

Apache Flink

  • 应用场景: 提供强大的流处理能力,支持有状态流处理和事件时间处理。
  • 示例: 实时数据分析、实时指标计算、流数据的复杂事件处理等。

3. 交互式查询

Apache Hive

  • 应用场景: 为 Hadoop 提供 SQL 查询能力,适用于需要交互式数据查询和分析的场景。
  • 示例:数据仓库查询、业务智能分析、数据报表生成等。

Apache Impala

  • 应用场景: 提供低延迟的 SQL 查询能力,适用于对数据进行快速查询的应用。
  • 示例: 实时数据分析、OLAP 查询等。

   

四、MapReduce编程模型与实现机制

1、MapReduce基本概念

1. Map 阶段:

  • 任务:在 Map 阶段,数据被分割成若干块(通常是文件的分块),然后由多个 Map 任务并行处理。每个 Map 任务将输入数据(键-值对)处理成中间结果(键-值对)。
  • 输入:原始数据通常以键-值对的形式提供给 Map 任务。例如,输入数据可以是一个文本文件,其中每一行是一个键值对(如行号和行内容)。
  • 处理:Map 函数会遍历这些键值对,并生成一组中间键值对。这些中间键值对会被整理(通过 Shuffle 和 Sort 过程)以准备进入 Reduce 阶段。

2. Shuffle 和 Sort:

  • 任务:在 Map 和 Reduce 之间,MapReduce 框架会进行一个 Shuffle 和 Sort 过程。这个过程将 Map 输出的中间结果根据键进行分组和排序,以便将相同键的中间结果传递到同一个 Reduce 任务。
  • 目的:确保每个 Reduce 任务只处理一种键的数据,从而有效地进行聚合操作。

3. Reduce 阶段:

  • 任务:Reduce 阶段将处理 Shuffle 和 Sort 阶段输出的中间结果。Reduce 任务接收一组键以及与之对应的一系列值,然后对这些值进行聚合操作。
  • 输出:Reduce 函数将这些聚合的结果(通常也是键-值对)写入最终的输出文件中。

   

2、MapReduce 工作流程

1. 数据切分:

  • 输入数据被切分成多个块(Splits),每个块由一个 Map 任务处理。


2. Map 任务:

  • 每个 Map 任务将输入块处理为一组中间的键-值对,并将这些中间结果写入到本地磁盘上。


3. Shuffle 和 Sort:

  • Map 任务的中间结果被读取并根据键进行排序。相同的键会被分配到同一个 Reduce 任务进行处理。


4. Reduce 任务:

  • 每个 Reduce 任务从 Shuffle 和 Sort 阶段读取中间结果,对其进行聚合处理,并将最终结果写入输出文件。

💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些关于大数据的文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺

🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!!  

相关文章:

【Hadoop】核心组件深度剖析:HDFS、YARN与MapReduce的奥秘

🐇明明跟你说过:个人主页 🏅个人专栏:《大数据前沿:技术与应用并进》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、Hadoop简介 2、Hadoop生态系统概览 二、Hadoo…...

Docker Swarm部署SpringCloud Alibaba微服务踩坑记录

为了方便部署和维护微服务项目,还是得上集群部署方案,决定采用Docker的swarm,为什么不是k8s,因为部署骑来又是个新的工具,之前就一直用的docker,自带了类k8s的工具,索性就直接使用swarm了&#…...

深入理解Spring Boot中的AOP应用:从基础组件到高级功能的实现

深入理解Spring Boot中的AOP应用:从基础组件到高级功能的实现 在现代Java开发中,Spring Boot因其简洁性和强大的功能而被广泛采用。而AOP(面向切面编程)作为Spring框架的核心特性之一,为开发者提供了在不修改业务代码的…...

《区块链与监管合规:在创新与规范之间寻求平衡》

区块链技术作为近年来最具创新性和颠覆性的技术之一,已经在金融、供应链、医疗、物联网等多个领域展现出巨大的潜力。然而,随着其应用的不断拓展,如何应对监管和合规性要求成为了区块链发展道路上一个至关重要的问题。 区块链的去中心化、匿…...

Nuxt3【服务器】server 详解

server 文件夹中的内容&#xff0c;会被自动注册为API和服务器处理程序。 服务器 API 对应路径 server/api server/api/hello.ts export default defineEventHandler((event) > {return {hello: world} })页面中使用 <script setup lang"ts"> const { da…...

防火墙技术原理与应用

防火墙概述 防火墙概念 防火墙:通过一种网络安全设备,控制安全区域间的通信,隔离有害通信,进而阻断网络攻击。一般安装在不同安全区域边界处,用于网络通信安全控制,由专用硬件或软件系统组成。 根据网络安全信任程度和需保护的对象,划分安全区域 公共外部网络:Inter…...

【BUU】[NewStarCTF 2023 公开赛道]Final -CP读取文件内容

漏洞检测 访问首页发现是ThinkPHP5 的站点 用工具扫描一下,发现存在ThinkPHP5.0.23 RCE漏洞 访问验证,写入shell 成功写入shell. 根目录发现flag,但是权限不足 提权获取flag 准备提权,这里一开始尝试了find,但是find权限不足 尝试采用cp命令,移动到web目录,发现访问还是…...

火绒安全:一款强大且高效的国产杀毒软件

火绒安全&#xff08;Huorong Security&#xff09;是一款国产的杀毒软件&#xff0c;以其轻量、高效和对系统资源占用低的特点受到广泛欢迎。与许多其他杀毒软件不同&#xff0c;火绒注重低调实用&#xff0c;旨在为用户提供无干扰且稳定的系统保护。 火绒安全的主要特点&…...

Oracle 的DBA有哪些权限

Oracle数据库的**DBA&#xff08;数据库管理员&#xff09;**拥有全部特权&#xff0c;是Oracle数据库系统最高权限的用户。DBA的权限包括但不限于&#xff1a; 1.创建和管理数据库结构&#xff1a; DBA可以创建、修改和删除数据库中的所有对象&#xff0c;如表、索引、视图等&…...

在navicat上运行sql文件

前言 本文简单介绍在navicat上运行sql文件 第一步&#xff1a; 打开navicat&#xff0c;点击连接->mysql 第二步&#xff1a; 输入连接名&#xff0c;可以随便取 然后点击确定 第三步&#xff1a; 双击连接名&#xff0c;颜色变化代表连接上了 第四步&#xff1…...

STM32裸机和RTOS中的线程安全问题及STM32cubeMX中的线程安全策略

STM32线程安全问题 术语“线程” 和“多线程” 适用于裸机和基于RTOS的应用程序&#xff0c;线程安全问题并不只存在于基于RTOS的应用程序中&#xff1b;裸机应用程序中也存在这个问题&#xff0c;在裸机应用程序中&#xff0c;中断服务程序允许调用C库函数。线程安全问题可能…...

图的遍历

一、深度优先遍历(DFS) 二、广度优先遍历&#xff08;BFS&#xff09;...

CUDA-MODE课程笔记 第8课: CUDA性能检查清单

我的课程笔记&#xff0c;欢迎关注&#xff1a;https://github.com/BBuf/how-to-optim-algorithm-in-cuda/tree/master/cuda-mode CUDA-MODE课程笔记 第8课: CUDA性能检查清单 课程笔记 这节课实际上算是CUDA-MODE 课程笔记 第一课: 如何在 PyTorch 中 profile CUDA kernels 这…...

【备战蓝桥杯青少组】第二天 奇特的砖墙

真题 第十四届省赛 编程题 第5题 工人砌了一面奇特的砖墙&#xff0c;该墙由N列砖组成&#xff08;1≤N≤1e6&#xff09;&#xff0c;且每列砖的数量为Ki&#xff08;1≤Ki≤1e4&#xff0c;相邻砖块之间无缝隙&#xff09;&#xff0c;每块砖的长宽高都为1。小蓝为了美化这面…...

图像处理 -- 仿射变换之Affine Transformation

仿射变换&#xff08;Affine Transformation&#xff09; 仿射变换是图像处理中的一种基本操作&#xff0c;通过线性变换和平移实现图像的几何变换。仿射变换包括旋转、缩放、平移、翻转、错切&#xff08;shear&#xff09;等操作。 1. 仿射变换的作用 旋转&#xff1a;将图…...

Nuxt3【项目配置】nuxt.config.ts

按环境添加配置 export default defineNuxtConfig({// 生产环境的配置$production: {routeRules: {/**: { isr: true }}},// 开发环境的配置$development: {//} })运行时的配置 runtimeConfig export default defineNuxtConfig({runtimeConfig: {// 只在服务器端可用的私有键ap…...

中智讯“2024高校人工智能边缘应用项目实战师资培训班”圆满举办

7月24日——7月28日&#xff0c;中智讯“2024高校人工智能&边缘应用项目实战师资培训班”在昆明理工大学成功举办。本次培训由昆明理工大学人工智能产业学院主办&#xff0c;中智讯&#xff08;武汉&#xff09;科技有限公司承办。来自昆明理工大学、西南林业大学、云南民族…...

IIS发布打包后文件

1.打开IIS软件 2 添加网站&#xff0c; 自定义网站名称-选择要放置的资源路径-选择IP地址 3.打开放置的资源目录放置打包后文件 4.选择浏览 搜索不到IIS可进行一下操作 控制面板-程序和功能-启用或关闭windows功能-勾选IIS...

四个自定义 SHAP 图

超越 Python 包&#xff0c;创建 SHAP 值的定制可视化 SHAP 值是了解模型如何进行预测的绝佳工具。SHAP 包提供了许多可视化效果&#xff0c;使这个过程更加简单。话虽如此&#xff0c;我们不必完全依赖这个包。我们可以通过创建自己的 SHAP 图来进一步了解模型的工作原理。在本…...

为什么使用HTTPS?

HTTPS现在是所有Web活动的首选协议&#xff0c;因为它是用户保护敏感信息的最安全方式。 HTTPS不仅对请求用户信息的网站至关重要。除了用户直接发送的信息外&#xff0c;攻击者还可以从不安全的连接中跟踪行为和身份数据。 HTTP为网站所有者带来的好处除了数据安全之外&…...

软件设计-系统架构师(五十五)

1在网络规划中&#xff0c;政府内外网之间应该部署网络安全防护设备。在下图部署的设备A是&#xff08;&#xff09;&#xff0c;对设备A作用描述错误的是&#xff08;&#xff09;。 问题1 A IDS B 防火墙 C 网闸 D UTM 问题2 A 双主机系统&#xff0c;即使外网被黑客攻击…...

三分钟学会线缆电流估算

今天带你用三分钟的时间,学会电源线承受电流估算,不浪费时间,直接开始吧。 工作温度30℃,长期连续90%负载下的载流量 1.5平方毫米――14A  2.5平方毫米――26A   4平方毫米――32A   6平方毫米――47A    16平方毫米――92A   25平方毫米――120A   3…...

Snipaste 的一款替代工具 PixPin,支持 gif 截图、长截图和 OCR 文字识别,功能不是一点点强!

Snipaste 的一款替代工具 PixPin&#xff0c;支持 gif 截图、长截图和 OCR 文字识别&#xff0c;功能不是一点点强&#xff01; PixPin 的名字来源于“Pixel Pin”&#xff0c;简单来说是一个截图、贴图的工具&#xff0c;但是 PixPin 以截图和贴图两大功能为核心做了大量的优…...

Oracle基础教程

体系结构 数据库 一个操作系统仅有一个数据库 实例 拥有一系列后台进程和存储结构&#xff0c;一个数据库可拥有一个或多个实例&#xff0c;一般只有1个实例 数据文件&#xff08;.dbf/.ora&#xff09; 数据文件是数据库的物理存储单元&#xff0c;一个表空间由一个或多…...

电脑如何录屏?三款电脑录屏工具分享

电脑如何录屏&#xff1f;作为一个经常需要录制电脑屏幕大职场人&#xff0c;不是为了制作教程、记录会议&#xff0c;就是偶尔想自己做个游戏解说视频。市面上的录屏软件琳琅满目&#xff0c;经过一番尝试和比较&#xff0c;我选出了三款我个人认为表现不错的软件&#xff0c;…...

idea2024建立maven web项目servlet 6.0

(1) 下载好tomcat 10.1.28 打开tomcat.apache.org官网下载 &#xff08;2&#xff09;配置好maven &#xff08;3&#xff09;idea 2024打开&#xff0c;建立项目 选择maven java项目 &#xff08;4&#xff09;在项目src/main/下 建立webapp/WEB-INF目录&#xff0c;在…...

游戏开放式新手引导框架设计

强制性引导&#xff1a;只能点某个按钮 优&#xff1a;程序简单 缺&#xff1a; 玩家体验差 开放式引导&#xff1a;不强制点 优&#xff1a;玩家体验好 缺&#xff1a; 程序复杂 需求分析&#xff1a; 1.开放式引导&#xff0c;引导是到达某个条件后进行一系列行为&#xff08…...

【Hot100】LeetCode—189. 轮转数组

目录 1- 思路自定义 reverse 翻转函数 2- 实现⭐189. 轮转数组——题解思路 3- ACM 实现 原题链接&#xff1a;189. 轮转数组 1- 思路 自定义 reverse 翻转函数 2- 实现 ⭐189. 轮转数组——题解思路 class Solution {public void rotate(int[] nums, int k) {k % nums.lengt…...

javaweb学习之HTML(一)

推荐学习使用网站 w3school 在线教程 认识HTML HTML&#xff08;HyperText Markup Language&#xff09;是超文本标记语言&#xff0c;它是一个用于创建网页和网页应用程序的标准标记语言。HTML文档由一系列的元素&#xff08;elements&#xff09;组成&#xff0c;这些元素通…...

项目实战:Qt+Opencv相机标定工具v1.3.0(支持打开摄像头、视频文件和网络地址,支持标定过程查看、删除和动态评价误差率,支持追加标定等等)

若该文为原创文章&#xff0c;转载请注明出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/141334834 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、Op…...