四、Hadoop 2.X vs 3.X:特性、架构与性能全解析
Hadoop 2.X 与 Hadoop 3.X 深度对比:版本特性、架构与性能剖析
在大数据处理的浪潮中,Hadoop 凭借其分布式存储与计算的强大能力,成为了业界的核心框架之一。随着技术的不断演进,Hadoop 也经历了多个重要版本的迭代。其中,Hadoop 2.X 和 Hadoop 3.X 无疑是两个具有里程碑意义的代表。本文将深入对比这两个主要版本在核心特性、架构设计以及性能表现上的差异,并结合相关架构图和性能对比图进行直观的辅助说明。
一、版本核心特性:演进与革新
Hadoop 的每一次大版本升级,都伴随着一系列关键特性的引入和优化,旨在提升其易用性、可靠性、性能和可扩展性。
(一) Hadoop 2.X:奠定现代 Hadoop 基石
Hadoop 2.X 版本是Hadoop 发展史上的一个重要转折点,它引入了诸多革命性的特性:
- YARN (Yet Another Resource Negotiator):这无疑是 Hadoop 2.X 最核心的变革。YARN 将资源管理 (ResourceManager) 和作业调度/监控 (ApplicationMaster) 彻底分离,使得 Hadoop 不再仅仅是 MapReduce 的专属平台。它演变为一个通用的资源管理系统,能够支持如 Spark、Flink、Tez 等多种计算框架在同一个集群上高效运行,极大地提升了集群的资源利用率和灵活性。
-
HDFS NameNode 高可用 (High Availability):针对 Hadoop 1.X 中 NameNode 的单点故障问题,Hadoop 2.X 引入了Active-Standby NameNode 架构。通过共享存储 (如 QJM - Quorum Journal Manager 或 NFS) 同步元数据,当Active NameNode 发生故障时,Standby NameNode 能够快速接管,保证了 HDFS 服务的连续性和高可用性。
-
HDFS 快照 (Snapshots):提供了对文件系统特定时间点的只读镜像创建功能。快照可以用于数据备份、灾难恢复以及防止用户误操作导致的数据丢失。
-
支持多种计算模型并存:得益于 YARN,Hadoop 2.X 生态得以蓬勃发展,除了传统的 MapReduce,更高效的DAG 执行引擎 Tez、内存计算框架 Spark 等都能在 YARN 上良好运行,满足了日益多样化的数据处理需求。
(二) Hadoop 3.X:全面优化与特性增强
Hadoop 3.X 在继承 Hadoop 2.X 优秀特性的基础上,进行了更深层次的优化和功能增强:
- HDFS 纠删码 (Erasure Coding):这是 Hadoop 3.X 最具吸引力的存储特性之一。相比传统的3副本策略,纠删码可以在保证同等数据可靠性 (甚至更高) 的前提下,显著降低存储开销 (通常可节省约 50% 的存储空间)。例如,采用 (6,3) 策略 (6个数据块,3个校验块) 存储数据,其存储冗余度远低于3副本。
-
更强的 NameNode 高可用性:Hadoop 3.X 支持多个 Standby NameNode (例如,一个 Active,两个 Standby),进一步提升了 NameNode 故障切换的可靠性和容错能力。
-
YARN Timeline Service v2 (ATSv2):对应用程序历史信息的存储和查询服务进行了重构和增强。ATSv2 提供了更好的可扩展性、可靠性和性能,使用可插拔的存储后端 (如 HBase),能够更有效地管理大量应用程序的历史元数据。
-
MapReduce 性能优化:针对Shuffle密集型作业,MapReduce 的map output collector (包括 Spill, Sort, IFile 等) 可以切换到C/C++ 实现,据称可带来高达30% 的性能提升。同时,MapReduce 任务的内存参数可以自动推断,简化了配置并避免了资源浪费。
-
精简内核与依赖管理:Hadoop 3.X 移除了过时的 API 和实现,优化了默认组件。引入了Classpath Isolation机制,有效避免了不同版本 JAR 包 (如 Guava) 之间的冲突问题,增强了生态组件的兼容性。
-
Shell 脚本重构与默认端口变更:对管理脚本进行了重构,修复了bug并增加了新特性。多个服务的默认端口被移出了Linux 临时端口范围,减少了端口冲突的可能性。
二、核心架构差异:存储与资源管理
Hadoop 2.X 和 3.X 在底层架构层面也存在一些显著差异,主要体现在存储机制和资源管理服务的演进上。
(一) 存储架构的进化:从副本到纠删码
- Hadoop 2.X 存储:依赖于经典的三副本策略来保证数据可靠性。这意味着每份数据在集群中存储三份,存储开销高达 200%。虽然可靠性高,但存储成本也相应较高。
- Hadoop 3.X 存储:引入了HDFS 纠删码 (Erasure Coding)。通过数学编码的方式,可以用更少的冗余数据 (校验块) 来实现同等甚至更高的数据容错能力。这使得存储开销可以大幅降低 (例如,从 200% 降至 50% 左右),对于大规模冷数据存储尤其具有吸引力。
(二) 资源管理与历史服务的升级
-
Hadoop 2.X 资源管理:YARN 虽然带来了革命性的资源统一管理,但其早期的Timeline Service v1 (ATSv1) 在可扩展性和可靠性方面存在一些不足,尤其是在超大规模集群和大量应用的场景下可能成为瓶颈。
-
Hadoop 3.X 资源管理:全面采用了YARN Timeline Service v2 (ATSv2)。ATSv2 经过重新设计,显著提升了写入和读取应用程序历史数据的性能和可扩展性,并支持更灵活的数据存储后端,更好地服务于集群的监控和诊断。
三、性能表现对比:效率与扩展的提升
性能是衡量大数据框架优劣的关键指标。Hadoop 3.X 在多个方面都展现出相较于 2.X 的性能优势。
(一) 存储效率与开销
- Hadoop 2.X:三副本策略导致存储利用率低 (仅约 33%),网络带宽消耗也较大 (写入一份数据需要传输三份)。
- Hadoop 3.X:纠删码的引入大幅提高了存储利用率 (例如,(6,3) 策略下利用率可达 66%),显著减少了存储成本和网络I/O。
(二) 计算性能 (以 MapReduce 为例)
- Hadoop 2.X:MapReduce 在Shuffle阶段的性能以及内存管理方面存在优化空间。
- Hadoop 3.X:通过可选的 C/C++ 实现的 map output collector 和自动推断的内存参数,MapReduce 作业 (尤其是 Shuffle 密集型) 的执行效率得到了明显提升。
(三) 集群可扩展性
- Hadoop 2.X:理论上,YARN 支持上万节点的集群,但 NameNode 的元数据管理能力 (尤其是内存限制) 和 ATSv1 的扩展性可能成为实际瓶颈。
- Hadoop 3.X:通过多 Standby NameNode、ATSv2 的改进以及其他优化,Hadoop 3.X 能够更好地支持和管理更大规模的集群 (官方宣称可支持超过 10000 个节点,并持续优化中)。
四、组件信息概览 (简要对比)
核心关注点 | Hadoop 2.X | Hadoop 3.X |
---|---|---|
HDFS 可靠性 | 双 NameNode (Active/Standby), 3副本 | 多 Standby NameNode, 纠删码 + 副本可选 |
HDFS 存储成本 | 高 (200% 冗余) | 低 (纠删码下约 50% 冗余) |
YARN 核心服务 | ResourceManager, NodeManager, ATSv1 | ResourceManager, NodeManager, ATSv2 (更优) |
MapReduce 性能 | Java 实现 Shuffle, 手动内存配置 | 可选 C/C++ 实现 Shuffle, 自动内存推断 |
依赖冲突 | 可能存在 (如 Guava 版本) | Classpath Isolation 机制缓解 |
集群规模支持 | 良好,但可能受 NameNode/ATSv1 限制 | 更优,设计上支持更大规模 |
五、总结与选择建议
毋庸置疑,Hadoop 3.X 在存储效率、计算性能、可扩展性、可靠性以及易用性等多个维度都对 Hadoop 2.X 进行了显著的优化和增强。对于新建的大数据平台,或者对存储成本、性能有较高要求的现有集群,升级或选择 Hadoop 3.X 无疑是更具前瞻性的决策。
然而,版本升级并非轻而易举,企业在决策时仍需综合考量:
- 现有系统兼容性:评估上层应用和生态组件与 Hadoop 3.X 的兼容情况。
- 升级成本与风险:包括人力投入、时间成本、数据迁移以及潜在的稳定性风险。
- 团队技术栈与运维能力:新特性可能需要团队学习新的知识和积累运维经验。
如果现有 Hadoop 2.X 集群运行稳定,且当前性能和存储成本仍在可接受范围内,维持现状或分阶段、小范围试点升级可能是更稳妥的策略。但长远来看,Hadoop 3.X 代表了更先进的技术方向和更优的综合效益。
相关文章:
四、Hadoop 2.X vs 3.X:特性、架构与性能全解析
Hadoop 2.X 与 Hadoop 3.X 深度对比:版本特性、架构与性能剖析 在大数据处理的浪潮中,Hadoop 凭借其分布式存储与计算的强大能力,成为了业界的核心框架之一。随着技术的不断演进,Hadoop 也经历了多个重要版本的迭代。其中&#x…...
【Linux】FreeRTOS与Linux:实时与通用的终极对比
文章目录 FreeRTOS & Linux1 本质区别2 应用场景3 架构差异4 为什么容易混淆?5 合作与共存总结 FreeRTOS & Linux FreeRTOS 和Linux是两种完全不同的操作系统,设计目标和应用场景有显著区别。 1 本质区别 特性FreeRTOSLinux类型实时操作系统&…...
关于vue-office在vue3工程中的引用报错问题
在vue3项目工程中,根据vue-office文档在vue2中的引用: //引入VueOfficeDocx组件 相关样式import VueOfficeDocx from vue-office/docx;import vue-office/docx/lib/index.css; 报错信息: [plugin:vite:import-analysis] Failed to resolve …...
【NLP 71、常见大模型的模型结构对比】
三到五年的深耕,足够让你成为一个你想成为的人 —— 25.5.8 模型名称位置编码Transformer结构多头机制Feed Forward层设计归一化层设计线性层偏置项激活函数训练数据规模及来源参数量应用场景侧重GPT-5 (OpenAI)RoPE动态相对编码混合专家架构(MoE&#…...
Java详解LeetCode 热题 100(13):LeetCode 53:最大子数组和(Maximum Subarray)详解
文章目录 1. 题目描述2. 理解题目3. 解题思路3.1 暴力法3.1.1 O(n) 暴力解法3.1.2 O(n) 优化的暴力解法3.2 分治法3.3 动态规划(Kadane算法)3.3.1 动态规划基本思路3.3.2 Kadane算法(空间优化版本)3.4 前缀和方法4. 具体实例解析5. 代码优化与技巧5.1 处理空数组和边界情况…...
数字化驱动下的智慧物流与零售创新:全流程无人仓与定制开发开源AI智能名片S2B2C商城小程序的协同实践
摘要:本文以京东"全球首个全流程无人仓"为技术载体,结合"定制开发开源AI智能名片S2B2C商城小程序"的零售创新实践,探讨数字化技术如何重构物流与零售场景。研究揭示,京东通过全流程无人仓实现仓储效率提升4倍…...
从“工地砌砖”到“工厂造房”:模块化集成建筑(MiC建筑)如何重塑建筑业
在城市化进程加速与资源环境约束加剧的双重挑战下,建筑业正经历着一场深刻变革。模块化集成建筑(Modular Integrated Construction,简称MiC)以“工厂造楼”为核心理念,通过将建筑拆解为标准化模块并在工厂完成全流程预…...
idea出现tomcat不能正确部署的问题--解决方案
启动tomcat 报如下错误:(是因为已经在其他tomcat的中使用了这两个端口) 改成新端口 注意:不管是新增了页面,还是修改了页面,都需要重新部署项目,方法就是点击下面的绿色图标。否则新的页面操作不…...
编专利或委托他人编专利属于学术不端行为吗?
原文链接:编专利或委托他人编专利属于学术不端行为吗? 自己编专利或委托他人编专利属于学术不端吗? 5月4日,一篇题为《针对性护理干预在子宫肌瘤围手术期的情绪和生活质量临床应用效果》的论文,受到网友的广泛议论。…...
IEEE PRMVAI Workshop 17 | 智能医疗数据分析与应用
科研小伙伴们看过来!2025 年 IEEE 第三届模式识别、机器视觉和人工智能国际会议旗下的 Workshop 17——“Intelligent Health Monitoring and Inspection of Infrastructure(智能医疗数据分析与应用)” 超值得关注! 📅…...
网工实验——OSPF配置
网络拓扑图 配置 1.为每个路由器配置接口(略)(详细见RIP实验) 2.配置OSPF AR1 [AR1]ospf [AR1-ospf-1]area 1 [AR1-ospf-1-area-0.0.0.1]network 172.16.1.1 0.0.0.0 #精确配置网络,也可以像下面那条命令那样配置 …...
图灵码上爬第5题:屠龙刀--爬虫逆向
别问我,问我就是小菜鸡记录下学习成果,哈哈哈哈 第五题其实跟第四题的逻辑差不多,只不过加了点简单混淆的代码 题目: 请求参数经过特殊处理,适合JavaScript逆向入门练习 思路: 首先打开开发者工具&…...
Linux网络编程day7 线程池
线程池 typedef struct{void*(*function)(void*); //函数指针,回调函数void*arg; //上面函数的参数 }threadpool_task_t; //各子线程任务的结构体/*描述线程池相关信息*/struct threadpool_t{pthread_mutex_t lock; …...
【SpringMVC】详解cookie,session及实战
目录 1.前言 2.正文 2.1cookie与session概念 2.2返回cookie参数 2.3设置session 3.小结 1.前言 哈喽大家好吖,今天继续来给大家来分享SpringMVC的学习,今天主要带来的是cookie与session的讲解以及通过postman和fiddler来实战,废话不多…...
《Vuejs 设计与实现》第 4 章(响应式系统)( 上 )
目录 4.1 响应式数据和副作用函数 4.2 基本响应式数据实现 4.3 设计完善响应系统 4.4 分支切换与清理 4.5 嵌套的 effect 与 effect 栈 4.1 响应式数据和副作用函数 副作用函数是指那些产生副作用的函数 function effect() {document.body.innerText = hello vue3 }执行 …...
《社交应用架构生存战:React Native与Flutter的部署容灾决胜法则》
React Native和Flutter作为当下热门的跨平台开发框架,在社交应用开发领域各显神通。今天,我们深入探索它们在高可用架构中的部署与容灾策略。 React Native凭借其独特优势,在社交应用开发中拥有一席之地。它基于JavaScript和React࿰…...
K8s网络从0到1
K8s网络从0到1 前言 K8s是一个强大的平台,但它的网络比较复杂,涉及很多概念,例如Pod网络,Service网络,Cluster IPs,NodePort,LoadBalancer和Ingress等等。为了帮助大家理解,模仿TC…...
React Native基础环境配置
React Native基础环境配置 1.引言2.React-Native简介3.项目基础环境搭建1.引言 感觉自己掌握的知识面还是有点太窄了,于是决定看看移动端的框架,搞个react搭一个后端管理项目,然后拿react-native写个小的软件,试着找个三方上架一下应用市场玩玩。毕竟不可能一直在简历上挂一…...
k8s术语之DaemonSet
DaemonSet确保全部(或者一些)Node上运行一个Pod的副本。当有Node加入集群时,也会为它们新增一个Pod。当有Node从集群移除时,这些Pod也会被回收。删除DaemonSet将会删除它创建的所有Pod 使用DaemonSet的一些典型用法: …...
接口自动化测试框架详解(pytest+allure+aiohttp+ 用例自动生成)
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 近期准备优先做接口测试的覆盖,为此需要开发一个测试框架,经过思考,这次依然想做点儿不一样的东西。 接口测试是比较讲究效…...
Go:简洁高效,构建现代应用的利器
Go,又称 Golang,是由 Google 开发的一种开源编程语言。它以其简洁的语法、高效的性能以及强大的并发特性,在云计算、微服务、DevOps 等领域迅速崛起,成为构建现代应用的利器。本文将带你了解 Go 的魅力,探讨其核心特性…...
Minor GC与Full GC分别在什么时候发生?
一、Minor GC 触发条件 1.Eden区空间不足 • 核心机制:新对象优先分配在Eden区,当Eden区无法满足新对象分配时触发Minor GC。 示例: // 循环创建对象填满Eden区 for (int i 0; i < 1000000; i) {byte[] data new byte[1 * 1024]; // 持…...
Crawl4AI:高效的开源 Python 网页爬取与数据提取库
Crawl4AI:高效的开源 Python 网页爬取与数据提取库 在数据驱动的时代,网页爬取和数据提取是众多 AI 项目及语言模型性能提升的关键环节。Crawl4AI 作为一款开源的 Python 库,凭借强大且灵活的功能,致力于简化这一复杂工作流程。其全异步设计不仅大幅提升了处理速度,还增强…...
【目标检测标签转换工具】YOLO 格式与 Pascal VOC XML 格式的互转详解(含完整代码)
一、写在前面:为什么需要标签格式转换? 在目标检测任务中,不同的模型和标注工具使用的标签格式常常不同: YOLO 系列(YOLOv5/v8) 使用的是 .txt 格式,每行为一个目标,记录相对归一化…...
Redis最新入门教程
文章目录 Redis最新入门教程1.安装Redis2.连接Redis3.Redis环境变量配置4.入门Redis4.1 Redis的数据结构4.2 Redis的Key4.3 Redis-String4.4 Redis-Hash4.5 Redis-List4.6 Redis-Set4.7 Redis-Zset 5.在Java中使用Redis6.缓存雪崩、击穿、穿透6.1 缓存雪崩6.2 缓冲击穿6.3 缓冲…...
2025年渗透测试面试题总结-某步在线面试(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 一、操作系统相关问题总结与分析及扩展回答 1. Linux命令熟悉度 2. 查看进程的命令 3. 查看网络进程…...
网络化:DevOps 工程的必要基础(Networking: The Essential Foundation for DevOps Engineering)
李升伟 编译 理解网络化基础知识 你是否曾想过是什么真正让卓越的DevOps工程师与众人区别开来?答案是网络化。是的,对网络的基本理解不仅仅是有帮助的——它是绝对必要的。在当今以微服务、容器和分布式系统为主宰的互联互通世界中,对网络原…...
<template>标签的用法
一、原生的template标签的用法 <template> 是 HTML5 引入的一个标签,用于声明 HTML 片段,这些片段在页面加载时不会被渲染,但可以在运行时通过 JavaScript 实例化和使用。 基本用法 <template id"myTemplate"> <…...
【数据结构】——链表OJ(下)
前面我们已经刷了几道单链表的题目,下面我们继续看几道题目。 一、相交链表 这道题题目的要求是很好理解的,就是现在我们有两个链表,然后我们就相办法进行判断,这两个链表是否是相交的,那么链表的相交其实就是有没有共…...
笔试专题(十六)
文章目录 相差不超过k的最多数题解代码 最长公共子序列(一)题解代码 小红的口罩题解代码 春游题解代码 相差不超过k的最多数 题目链接 题解 1. 排序 滑动窗口 2. 为什么使用滑动窗口? 因为max-min < k,求这个区间内的数最…...
云原生应用全生命周期管理实战:从开发、部署到运维的一体化方案
📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、前言:应用交付正在被“云原生”重塑 随着企业IT架构从单体转向微服务,再到全面拥抱容器化与Kubernetes,应用的构建、部署、配置、监控、弹性与治理也正经历一场全方位的变革。传统的开发运维…...
图表制作-带背景色的柱状图
首先登录自己的账号,没有账号的可以注册一个。 登录之后,在左侧菜单栏找到图表制作-统计图。 点击新建统计图,点击柱状图-带背景色的柱状图。 初始会有一些演示数据,可以根据自己的需要进行修改。 如果觉得手动修改太麻烦…...
【Pandas】pandas DataFrame ewm
Pandas2.2 DataFrame Function application, GroupBy & window 方法描述DataFrame.apply(func[, axis, raw, …])用于沿 DataFrame 的轴(行或列)应用一个函数DataFrame.map(func[, na_action])用于对 DataFrame 的每个元素应用一个函数DataFrame.a…...
V 型球阀:多材质多驱动,精准适配复杂严苛工况-耀圣
V 型球阀:多材质多驱动,精准适配复杂严苛工况 在化工、矿业、环保等工业领域,带颗粒介质、料浆以及高腐蚀性介质的输送与控制一直是行业难题。普通阀门在这些复杂工况下,易出现磨损、腐蚀、控制失灵等问题,而 V 型球阀…...
使用C# ASP.NET创建一个可以由服务端推送信息至客户端的WEB应用(2)
接上文 使用C# ASP.NET创建一个可以由服务端推送信息至客户端的WEB应用(1) https://blog.csdn.net/coldwind811201/article/details/147607641 1. 更新NuGet包 升级NuGet包后,注意相应修改前面页面上的JS引用为相应新版本的jquery JS脚本 …...
Java响应实体【R】
R响应实体 响应实体R(Response Entity)具体作用说明?1、用与数据传输2、用于状态反馈3、指令与控制 普通响应实体优化后的R:高级响应实体类 响应实体R(Response Entity)具体作用说明? 1、用与数据传输 传输请求结果 :当客户端向…...
短视频矩阵系统批量剪辑模式开发详解,支持OEM
在短视频行业竞争激烈的当下,短视频矩阵系统通过批量剪辑功能实现高效内容生产,成为众多运营者的利器。本文将深入探讨短视频矩阵系统中几种常见批量剪辑模式的开发思路与实现方法,助力开发者构建功能强大的批量剪辑模块。 一、批量剪辑模式概…...
顺丰科技:从 Presto 到 Doris 湖仓构架升级,提速 3 倍,降本 48%
导读:顺丰科技引入 Doris 替换 Presto,在内部可视化数据自助分析工具丰景台场景广泛应用。目前,顺丰临时查询业务、丰景台报表业务的 Presto 场景已经 100% 切换到 Doris 集群中,日均查询量 100W。并实现 P95 性能提升近 3 倍&…...
使用 Cesium 构建 3D 地图应用的实践
CesiumJS 是一个功能强大的开源 JavaScript 库,能够帮助开发者快速构建高性能、高精度的 3D 地球和地图应用 。本文将介绍如何使用 Cesium 构建一个基本的 3D 地图应用,并加载自定义的 3D Tiles 模型。 初始化 Cesium Viewer 首先,在 Vue 的…...
公链钱包开发:技术逻辑与产品设计实践
公链钱包开发:技术逻辑与产品设计实践 ——2025年数字资产管理的范式革命与用户价值重构 一、公链钱包的核心理解:技术逻辑与用户价值的耦合 公链钱包不仅是存储数字资产的工具,更是用户与区块链生态交互的“超级入口”。其核心价值体现在三…...
mobile自动化测试-appium webdriverio
WebdriverIO是一款支持mobile app和mobile web自动化测试框架,与appium集成,完成对mobile应用测试。支持ios 和android两种平台,且功能丰富,是mobile app自动化测试首选框架。且官方还提供了mobile 应用测试example代码࿰…...
【Python开源】深度解析:一款高效音频封面批量删除工具的设计与实现
🎵 【Python开源】深度解析:一款高效音频封面批量删除工具的设计与实现 🌈 个人主页:创客白泽 - CSDN博客 🔥 系列专栏:🐍《Python开源项目实战》 💡 热爱不止于代码,热情…...
飞算 用到妙处 AI辅助编程 - 双击方法名,自动识别到上下文中很方便
1. 双击findtasktypedict方法。右侧箭头指向自动识别 2. 按照说的内容机型了修改...
msIT大模型推理迁移调优工具
msIT LLM大模型ATB推理精度工具 适用场景:大模型加速库推理精度分析工具能力:大模型推理精度工具msIT llm,提供基于加速库推理的精度调试工具,支持数据dump、精度比对、单算子预检、溢出检测、模型迁移等能力。 msIT LLM大模型…...
YOGA Air X ILL10(83CX)/YOGA 14 ILL10X(83LC)2025款恢复开箱状态原装出厂Win11系统OEM镜像
适用机型(MTM): 【83LC】链接:https://pan.baidu.com/s/1AwbFR9nccvyzS1pOCToMvA?pwdewjs 提取码:ewjs 【83CX】链接:https://pan.baidu.com/s/1wMRI8ETodVG59GBDVDLgQg?pwdn3nx 提取码:n3nx lenovo联想原装wi…...
使用Deployment部署运行Nginx和Apache服务
1.Deployment简介 : 在Kubernetes(k8s)中,Deployment 是一种核心控制器资源,用于管理无状态应用的声明式部署、扩展与更新。它通过定义应用的期望状态,由控制器自动维护实际状态与期望状态的一致性&#x…...
382_C++_在用户会话结束时,检查是否有其他会话仍然来自同一个客户端 IP 地址,没有连接状态设置为断开,否则为连接
之前出现的问题:重启管理机,工作机上面热备连接状态显示未连接 (此时是有一个工作机连接管理机的),所以正常应该是连接状态解决:根因分析: 重启管理机后,管理机给过来的cookie是空的,导致工作机同时存在两个管理机的session,在其中一个超时后,调用回调函数通知会话断开…...
【 Redis | 实战篇 短信登录 】
前言: 主要完成了基于Session实现登录,解决集群的Session共享问题,从而实现了基于Redis来实现共享Session登录 1.基于Session实现登录 1.1.发送短信验证码 步骤: 前端提交手机号 》校验手机号 》不符合返回错误信息࿰…...
AI(学习笔记第二课) 使用langchain进行AI开发
文章目录 AI(学习笔记第二课) 使用langchain进行AI开发学习内容:1. 使用背景2.创建python(pycharm community版)开发环境并连接deepseek2.1 创建python(pycharm community版)开发环境2.2 创建python工程2.3 写入初始py…...
如何查看某个文件中的特殊符号
Q:如何查看某个文件中的特殊符号,比如说是换行符之类的转义字符? 1,法1:使用cat -A cat -A filename可以看到-A本质上就是-vET,也就是 展示所有的字符,-v是显示非打印字符,这个需…...