0301yarnmapredude入门-hadoop-大数据学习
文章目录
- 1 MapReduce概述
- 2 YARN
- 2.1 yarn概述
- 2.2 yarn与MapReduce关系
- 2.3 yarn架构
- 2.4 辅助角色
- 3 MapReduce & YARN部署
- 3.1 集群规划
- 3.2 配置文件
- 3.3 分发配置文件
- 4 体验
- 4.1 集群启动命令介绍
- 4.2 提交MapReduce任务到YARN执行
- 结语
1 MapReduce概述
分布式计算是一种计算模型,它涉及将计算任务分解成多个子任务,并将这些子任务分配给多台计算机或节点以并行处理。这种计算模型的主要目标是提高计算性能、可伸缩性和可靠性,以处理大规模的数据和复杂的计算任务。分布式计算通常用于处理大数据、高性能计算(HPC)、网络服务和云计算等领域。
以下是分布式计算的一些关键概念和特点:
- 并行计算: 在分布式计算中,任务可以并行执行,因为它们被分配给多个计算节点。这可以显著提高计算速度,特别是对于需要大量计算资源的任务。
- 节点通信: 分布式计算系统中的不同节点需要进行通信,以协调任务的执行和数据的传输。通信协议和机制对于系统的性能和可靠性至关重要。
- 负载均衡: 为了充分利用所有计算节点,分布式系统通常需要有效地分配任务,以确保负载均衡。这可以通过动态调整任务分配来实现,以应对不同节点的性能差异。
- 容错性: 分布式系统需要具备容错机制,以应对计算节点的故障或通信问题。数据冗余、故障检测和恢复机制是确保系统可靠性的重要组成部分。
- 数据分布和复制: 在分布式计算中,数据通常分布在不同的节点上,这可以提高数据访问速度和可用性。数据的复制和分片技术可确保数据的安全性和可靠性。
- 资源管理: 有效管理计算资源(例如,CPU、内存和存储)是分布式计算的关键任务。资源管理器用于分配和监视资源的使用。
- 编程模型: 分布式计算通常涉及使用特定的编程模型,例如MapReduce、Spark、MPI(消息传递界面)等,以编写分布式应用程序。
- 云计算: 云计算是一种分布式计算的变体,它提供了虚拟化资源(如虚拟机和存储)的访问,使用户能够根据需要动态扩展或缩减计算资源。
分布式计算在众多领域中都有应用,包括大数据处理、科学研究、人工智能、金融建模、Web服务和网络应用。各种技术和工具,如Hadoop、Spark、Kubernetes和容器技术,已经涌现出来,用于支持分布式计算任务的管理和执行。这些技术使分布式计算更容易实现和操作,从而推动了分布式计算在现代计算中的重要性。
MapReduce是一种编程模型和处理框架,用于处理和生成大规模数据集的计算。它最初由Google开发用于内部数据处理,并在后来的论文中公开介绍,启发了Hadoop等开源实现。MapReduce模型非常适用于并行化和分布式处理大数据集,它简化了并行计算的任务,使开发人员能够专注于问题的本质而不必担心底层的分布式细节。
以下是MapReduce的基本概述:
- Map阶段: 在MapReduce中,输入数据集被划分成许多小的数据块。每个数据块由一个Map任务处理。Map任务的目标是将输入数据块转换为一系列键值对(key-value pairs)。这些键值对通常代表数据中的某种特征或属性,例如单词计数中的单词和出现次数。
- Shuffle和Sort阶段: 在Map阶段之后,MapReduce框架会将所有Map任务的输出按照键进行分组(shuffling),并将每个键值组合进行排序(sorting)。这确保了所有相同键的值都被传递给同一个Reduce任务。
- Reduce阶段: Reduce任务的目标是对相同键的值进行汇总或聚合。每个Reduce任务处理一个或多个键的值,并生成最终的输出结果。通常,Reduce任务执行某种数据聚合操作,如求和、求平均值、查找最大值等。
MapReduce的关键特点和优势包括:
- 可扩展性: MapReduce模型能够轻松适应大规模数据集,只需增加更多的计算资源(例如,更多的计算节点)即可提高性能。
- 容错性: MapReduce框架具有内置的容错机制,能够处理计算节点故障,并重新分配任务以确保计算的正确性。
- 编程模型简单: 使用MapReduce模型,开发人员只需实现Map和Reduce函数,无需处理并发编程或分布式系统的复杂性。
- 适用于各种任务: MapReduce不仅适用于大规模数据处理,还可以用于分布式计算的各种任务,包括日志分析、数据挖掘、文本处理和机器学习等。
尽管MapReduce是一个强大的分布式计算框架,但在处理某些类型的任务时,如迭代算法(例如图算法)和复杂数据处理流水线时,可能不是最高效的选择。因此,一些新的分布式计算框架,如Apache Spark,已经涌现出来,以提供更灵活和高性能的替代方案。不过,MapReduce仍然在许多大规模数据处理任务中广泛使用。
2 YARN
2.1 yarn概述
Apache Hadoop YARN(Yet Another Resource Negotiator)是Hadoop生态系统的一个关键组件,用于集群资源的管理和作业调度。它被设计用于提高Hadoop集群的资源利用率,支持多种数据处理工作负载,并允许多个应用程序在共享的Hadoop集群上运行而不互相干扰。以下是YARN的主要概述:
- 资源管理: YARN的一个主要功能是集群资源的管理。它负责跟踪和监控集群中的所有可用资源,包括计算节点上的CPU、内存和存储等。这使YARN能够有效地分配资源给正在运行的应用程序,以满足它们的需求。
- 多租户支持: YARN允许多个应用程序共享同一集群,每个应用程序都可以使用集群资源的一部分。这种多租户支持允许不同团队或用户在同一Hadoop集群上运行自己的作业,而不会相互干扰。
- 作业调度: YARN包括一个调度器,负责决定哪个应用程序可以在集群上运行,以及它们可以使用的资源量。YARN支持不同的调度策略,例如先进先出(FIFO)、容量调度和公平调度,以满足不同类型工作负载的需求。
- 容错性: YARN具有一定程度的容错性,可以处理计算节点的故障。如果某个节点发生故障,YARN可以重新分配任务给其他节点,以确保应用程序的继续运行。
- 灵活性: YARN不仅限于Hadoop MapReduce作业。它还支持其他分布式计算框架,如Apache Spark、Apache Flink和Apache Tez等。这使得YARN成为一个通用的资源管理和作业调度平台。
- 可扩展性: YARN是一个高度可扩展的系统,可以管理大规模的集群,适应不断增长的工作负载需求。
总之,YARN是Hadoop生态系统的关键组件之一,它提供了一个强大的资源管理和作业调度平台,使Hadoop集群更加灵活、高效和多用途。它有助于最大化集群资源的利用率,并允许不同类型的应用程序在共享的集群上同时运行,从而促进了大数据处理和分布式计算的发展。
2.2 yarn与MapReduce关系
MapReduce在YARN上运行: 在Hadoop集群上运行MapReduce作业时,YARN扮演着关键角色。当用户提交MapReduce作业时,YARN负责分配计算资源给Map和Reduce任务,并监控它们的执行。YARN还负责容错处理,如果某个节点上的任务失败,它会将任务重新分配到其他节点上。因此,YARN为MapReduce作业提供了必要的资源管理和调度支持。
2.3 yarn架构
- ResourceManager (RM): ResourceManager是YARN架构的中央组件,负责整个集群的资源管理。它有两个主要子组件:
- ResourceScheduler: ResourceScheduler负责集群中可用资源的调度。它接受应用程序的资源请求,并决定将资源分配给哪个应用程序。YARN支持不同的调度策略,包括FIFO(先进先出)、容量调度和公平调度等。
- ApplicationManager: ApplicationManager负责应用程序的生命周期管理。每个正在运行的应用程序都有一个对应的ApplicationManager,负责与ResourceManager交互以获取所需的资源、跟踪任务的状态,并处理应用程序的完成和失败。
- NodeManager (NM): NodeManager是每个计算节点上的代理,负责监控该节点上的资源使用情况,并与ResourceManager通信。NodeManager的主要功能包括:
- 跟踪节点上可用的CPU、内存和其他资源。
- 启动和监视容器(Container),容器是运行应用程序任务的隔离环境。
- 报告节点的资源利用情况和容器状态给ResourceManager。
- 容器(Containers): 容器是YARN中的基本执行单元,用于隔离和运行应用程序任务。容器封装了任务的执行环境,包括所需的CPU、内存和其他资源。NodeManager负责启动和监视容器的执行,ResourceManager负责管理容器的资源分配。
- 应用程序(Applications): 应用程序是用户提交到YARN集群上运行的工作负载。每个应用程序由一个或多个任务组成,这些任务以容器的形式运行在集群上。ResourceManager为每个应用程序分配资源,并跟踪应用程序的状态。
- 资源(Resources): 资源是计算节点上的计算能力、内存、存储等资源。YARN负责管理和分配这些资源,以满足应用程序的需求。
- 通信机制: 在YARN架构中,各个组件之间通过RPC(远程过程调用)和心跳机制进行通信。ResourceManager和NodeManager之间以及ResourceManager和ApplicationManager之间都有通信通道,用于协调资源分配和应用程序管理。
2.4 辅助角色
- HistoryServer: HistoryServer是一个可选的组件,用于存储和提供已完成应用程序的历史信息。它允许用户查看先前运行的应用程序的日志、计数器和任务信息。这对于调试和性能分析非常有用。
- ResourceManager High Availability (RM HA): ResourceManager高可用性是一种配置选项,用于确保ResourceManager的高可用性。在启用RM HA时,有多个ResourceManager节点(通常是主备模式),如果一个ResourceManager节点出现故障,系统可以切换到备份节点,以确保集群的连续性。
- NodeManager启动器(NodeManager Launcher): NodeManager启动器是一个辅助进程,负责启动NodeManager。它在集群启动时启动NodeManager,以确保节点的正常运行。
- 日志聚合器(Log Aggregator): YARN的日志聚合器用于将应用程序和任务的日志从各个计算节点收集到一个中心位置,以便进行集中管理和检索。这有助于日志的持久性存储和方便的日志查看。
- 跨集群复制(Cross-Cluster Replication): 这个角色允许将应用程序和数据从一个YARN集群复制到另一个YARN集群,通常用于跨数据中心或多云环境中的数据复制和备份。
- 应用程序代理(Application Proxy): 应用程序代理是一个可选的组件,用于代理应用程序的状态和信息,以支持外部监控和管理工具与YARN的集成。
3 MapReduce & YARN部署
运用之前配置好的3台服务器及hdfs集群配置,可以参考下面连接或者自行百度
3.1 集群规划
有3台服务器,其中node1配置较高
集群规划如下:
主机 | 角色 |
---|---|
node1 | ResourceManager NodeManager ProxyServer JobHistoryServer |
node2 | NodeManager |
node3 | NodeManager |
3.2 配置文件
在node1机器 $HADOOP_HOME/etc/hadoop
路径下配置如下内容,
MapReduce配置文件如下:
-
mapred-env.sh
# 设置jdk export JAVA_HOME=/export/server/jdk # 设置JobHistoryServer进程内存512M export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=512 ## 设置日志级别INFO export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA
-
mapred-site.xml
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value><description>MepReduce的运行框架设置为yarn</description></property><property><name>mapreduce.jobhistory.address</name><value>node1:10020</value><description>历史服务器通讯端口node1:10020</description></property><property><name>mapreduce.jobhistory.wabapp.address</name><value>node1:19888</value><description>历史服务器web端口node1:19888</description></property><property><name>mapreduce.jobhistory.intermediate-done-dir</name><value>/data/mr-history/tmp</value><description>历史信息在HDFS的记录临时路径</description></property><property><name>mapreduce.jobhistory.done-dir</name><value>/data/mr-history/done</value><description>历史信息在HDFS中的记录路径</description></property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value><description>MapReduce HOME 设置为HADOOOP_HOME</description></property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value><description>MapReduce HOME 设置为HADOOP_HOME</description></property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value><description>MapReduce HOME 设置为HADOOP_HOME</description></property> </configuration>
-
yarn-env.sh
# 设置jdk export JAVA_HOME=/export/server/jdk # 设置HADOOP_HOME export HADOOP_HOME=/export/server/hadoop # 设置配置文件路径 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop # 设置日志路径 export HADOOP_LOG_DIR=$HADOOP_HOME/logs
-
yarn-site.xml
<configuration><property><name>yarn.resourcemanager.hostname</name><value>node1</value><description>ResourceManager 设置在node1</description></property><property><name>yarn.nodemanager.local-dirs</name><value>/data/nm-local</value><description>NodeManager中间数据本地存储路径</description></property><property><name>yarn.nodemanager.log-dirs</name><value>/data/nm-log</value><description>NodeManager数据日志本地存储路径</description></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value><description>为MapReduce开启shuffle服务</description></property><property><name>yarn.log.server.url</name><value>http://node1:19888/jobhistory/logs</value><description>历史服务器URL</description></property><property><name>yarn.web-proxy.address</name><value>node1:8089</value><description>代理服务器主机和端口</description></property><property><name>yarn.log-aggregation-enable</name><value>true</value><description>开启日志聚合</description></property><property><name>yarn.nodemanager.remote-app-log-dir</name><value>/tmp/logs</value><description>程序日志HDFS的存储路径</description></property><property><name>yarn.resourcemanager.scheduler.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value><description>选择公平调度器</description></property> </configuration>
3.3 分发配置文件
MapReduce和YARN的配置文件修改好后,需要分发到其它的服务器节点中。
cd $HADOOP_HOME/etc/hadoop scp mapred-env.sh mapred-site.xml yarn-env.sh yarn-site.xml node2:`pwd` scp mapred-env.sh mapred-site.xml yarn-env.sh yarn-site.xml node3:`pwd`
分发完成配置文件,就可以启动YARN的相关进程啦。
4 体验
4.1 集群启动命令介绍
常用的进程启动命令如下:
•一键启动YARN集群:
$HADOOP_HOME/sbin/start-yarn.sh
•会基于yarn-site.xml中配置的yarn.resourcemanager.hostname来决定在哪台机器上启动resourcemanager
•会基于workers文件配置的主机启动NodeManager
•一键停止YARN集群:
$HADOOP_HOME/sbin/stop-yarn.sh
•在当前机器,单独启动或停止进程
$HADOOP_HOME/bin/yarn --daemon start|stop resourcemanager|nodemanager|proxyserver
•start和stop决定启动和停止
•可控制resourcemanager、nodemanager、proxyserver三种进程
•历史服务器启动和停止
$HADOOP_HOME/bin/mapred --daemon start|stop historyserver
现在我们来启动hdfs和yarn,node1节点hadoop用户
start-dfs.sh
start-yarn.sh
mapred --daemon start historyserver
jps查看node1节点运行java进程
# node1
2288 WebAppProxyServer
1973 ResourceManager
1416 DataNode
1705 SecondaryNameNode
2090 NodeManager
1290 NameNode
2605 JobHistoryServer
# node2
1267 NodeManager
1141 DataNode
# node3
1266 NodeManager
1140 DataNode
4.2 提交MapReduce任务到YARN执行
提交自带的MapReduce程序到yarn执行
在部署并成功启动YARN集群后,我们就可以在YARN上运行各类应用程序了。
YARN作为资源调度管控框架,其本身提供资源供许多程序运行,常见的有:
•MapReduce程序
•Spark程序
•Flink程序
Spark和Flink是大数据后续的学习内容,我们目前先来体验一下在YARN上执行MapReduce程序的过程。
•可以通过 hadoop jar 命令来运行它,提交MapReduce程序到YARN中。
语法: hadoop jar 程序文件 java类名 [程序参数] ... [程序参数]
执行自带示例jar包 $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar 这个文件内统计单词的程序
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar workcount hdfs://node1:8020/gaogzhen/bigdata hdfs://node1:8020/output/wc1
查看执行结果:
[hadoop@node1 software]$ hdfs dfs -ls /output/wc1
Found 2 items
-rw-r--r-- 3 hadoop supergroup 0 2023-09-04 19:37 /output/wc1/_SUCCESS[hadoop@node1 software]$ hdfs dfs -cat /output/wc1/*
13413 1
32323` 1
fsl1 1
gaogzhen 2
goagzhen 1
node1 3
node2 2
node3 1
sdfasf 1
结语
如果小伙伴什么问题或者指教,欢迎交流。
❓QQ:806797785
参考链接:
[1]大数据视频[CP/OL].2020-04-16.
[2]0102阿里云配置3台ECS服务器-大数据学习[CP/OL].
[3]0201hdfs集群部署-hadoop-大数据学习[CP/OL].
相关文章:
0301yarnmapredude入门-hadoop-大数据学习
文章目录 1 MapReduce概述2 YARN2.1 yarn概述2.2 yarn与MapReduce关系2.3 yarn架构2.4 辅助角色 3 MapReduce & YARN部署3.1 集群规划3.2 配置文件3.3 分发配置文件 4 体验4.1 集群启动命令介绍4.2 提交MapReduce任务到YARN执行 结语 1 MapReduce概述 分布式计算是一种计算…...
大数据课程K15——Spark的TF-IDF计算Term权重
文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Spark的TF-IDF算法概念; ⚪ 了解Spark的TF-IDF算法定义; ⚪ 了解Spark的TF-IDF算法案例; 一、TF-IDF算法概述 TF-IDF(term frequency–inverse document frequency)是一种用于信…...

【C语言】字符函数,字符串函数,内存函数
大家好!今天我们来学习C语言中的字符函数,字符串函数和内存函数。 目录 1. 字符函数 1.1 字符分类函数 1.2 字符转换函数 1.2.1 tolower(将大写字母转化为小写字母) 1.2.2 toupper(将小写字母转化为大写字母&…...

Spring MVC:域对象共享数据
Spring MVC 前言域对象共享数据使用 ModelAndView 向 request 域对象中共享数据使用 Map 、Model 或 ModelMap 向 request 域对象中共享数据使用 SesionAttributes 注解向 session 域对象中共享数据使用 Servlet API 向 application 域对象中共享数据 附 前言 在上一章中&…...

Vue框架--Vue中的计算属性
下面,我们来实现一个这样的需求。 实现输入框1和输入框2中文字内容的拼接。...
面试题-React(八):React如何实现插槽?
一、React插槽的概念 插槽是一种让组件变得更加灵活和可复用的技术。它允许我们在组件内部预留一些位置,然后在组件使用时填充这些位置,实现外部内容的嵌套。 二、实现React插槽的方法 在React中,实现插槽可以通过两种方式:pro…...

【前端demo】动态赋值CSS
文章目录 效果过程html实现oninput与onchange事件统一配置CSS 代码HTMLCSSJS 其他demo 效果 动态显示CSS样式,由:root统一配置。 效果预览:https://codepen.io/karshey/pen/BavLrwy 参考: Dynamic CSS Variables(codepen.io) 漫谈document…...

BlockUI专栏目录
文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C-CSDN博客 简介: BlockUI是一个设计NX对话框的工具,是官方推荐使用的对话框制作方法,能够与NX自身风格相统一,并且在实际…...
K8S获取连接token
1、创建一个具有管理员权限的账户 下载或拷贝文件到主机上,vi k8s-admin.yml --- apiVersion: v1 kind: ServiceAccount metadata:name: dashboard-adminnamespace: kube-system --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 met…...

CountDownLatch原理-(主线程等待子线程结束再执行)
CountDownLatch是共享锁的一种实现,它默认构造 AQS 的 state 值为 count。当线程使用countDown方法时,其实使用了tryReleaseShared方法以CAS的操作来减少state,直至state为0就代表所有的线程都调用了countDown方法。当调用await方法的时候,如果state不为0࿰…...

mybatis源码学习-3-解析器模块
写在前面,这里会有很多借鉴的内容,有以下三个原因 本博客只是作为本人学习记录并用以分享,并不是专业的技术型博客笔者是位刚刚开始尝试阅读源码的人,对源码的阅读流程乃至整体架构并不熟悉,观看他人博客可以帮助我快速入门如果只是笔者自己观看,难免会有很多弄不懂乃至理解错误…...

解决微信小程序recycle-view使用百分比单位控制宽高时出现的内容溢出问题
recycle-view是微信小程序官方推出的一个经过优化的长列表组件,但是在使用百分比单位控制高宽时有个内容溢出问题,虽然它提供了height和width的参数可以设置宽高,但每次写列表都需要去js里获取宽高并设置是较为麻烦的,所以现在来着…...

如何使用蚂蚁集团自动化混沌工程 ChaosMeta 做 OceanBase 攻防演练?
当前,业界主流的混沌工程项目基本只关注如何制造故障的问题,而经常做演练相关工作的工程师应该明白,每次演练时还会遇到以下痛点: 检测当前环境是否符合演练预设条件(演练准入); 业务流量是否满…...
在 Node.js 中使用 MongoDB 事务
MongoDB事务 事务介绍 在 MongoDB 中,对单个文档的操作是原子的。由于您可以使用嵌入的文档和数组来捕获单个文档结构中的数据之间的关系,而不是跨多个文档和集合进行规范化,因此这种单一文档的原子性消除了对多文档的需求许多实际用例的事务…...

IntelliJ IDEA的远程开发(Remote Development)
DEA的远程开发功能,可以将本地的编译、构建、调试、运行等工作都放在远程服务器上执行,而本地仅运行客户端软件进行常规的开发操作即可,官方给出的逻辑图如下,可见通过本地的IDE和服务器上的IDE backend将本地电脑和服务器打通&am…...
网络安全-信息收集简介
本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷) 本文为追加文章,后期慢慢追加 什么是信息收集 信息收集是指通过各种方式获取所需要的信息,以便我们在后续的渗透过程更好的…...

页面页脚部分CSS分享
先看效果: CSS部分:(查看更多) <style>body {display: grid;grid-template-rows: 1fr 10rem auto;grid-template-areas: "main" "." "footer";overflow-x: hidden;background: #F5F7FA;min…...

微信小程序slot插槽的介绍,以及如何通过uniapp使用动态插槽
微信小程序文档 - slots介绍 由上述文档看俩来,微信小程序官方并没有提及动态插槽内容。 uniapp文档 - slots介绍 uni官方也未提及关于动态插槽的内容 在实际使用中,直接通过 <<slot :name"item.xxx" /> 这种形式会报错ÿ…...

l8-d6 socket套接字及TCP的实现框架
一、socket套接字 /*创建套接字*/ int socket(int domain, int type, int protocol); /*绑定通信结构体*/ int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); /*监听套接字*/ int listen(int sockfd, int backlog); /*处理客户端发起的连接࿰…...

ChatGPT AIGC 完成动态堆积面积图实例
先使用ChatGPT AIGC描述一下堆积面积图的功能与作用。 接下来一起看一下ChatGPT做出的动态可视化效果图: 这样的动态图案例代码使用ChatGPT AIGC完成。 将完整代码复制如下: <!DOCTYPE html> <html> <head><meta charset="utf-8"><tit…...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...