复习打卡大数据篇——Hadoop HDFS 03
目录
1. HDFS元数据存储
2. HDFS HA 高可用
1. HDFS元数据存储
HDFS中的元数据按类型可以分为:
- 文件系统的元数据:包括文件名、目录名、修改信息、block的信息、副本信息等。
- datanodes的状态信息:比如节点状态、使用率等。
HDFS中的元数据按存储位置可以分为内存中元数据和磁盘上的元数据
磁盘上的元件数据包括fsimage镜像文件和edits log编辑日志,因为在磁盘上可以保证持久化存储。
fsimage镜像文件:是元数据的一个持久化的检查点,包含Hadoop文件系统中的所有目录和文件元数据信息,但不包含文件块位置的信息。文件块位置信息只存储在内存中,是在 datanode加入集群的时候,namenode询问datanode得到的,并且间断的更新。
edits 编辑日志:用来记录文件系统中发生的所有更改操作(如创建、删除、修改文件等)的日志。当客户端对文件系统执行变更操作时,这些操作会被优先记录到 edits 文件中。
当NN启动后,首先将fsimage镜像文件加载到内存中,再根据edits 编辑日志里的内容更新内存元数据,使得内存元数据和实际的同步,因此内存中的元数据是最完整最新的元数据,用户可以对其进行读操作,接下来HDFS中的更新操作会重新写到edits 编辑日志里,因为fsimage镜像文件比较大,直接在fsimage镜像文件中更新太慢。
这样一来就不必担心内存中的元数据丢失,磁盘里的fsimage镜像文件和edits log编辑日志能够确保元数据安全。
SNN
SNN,也就是HDFS中的一个角色secondarynamenode,它的职责是合并NameNode的edit logs到fsimage文件中。因为长时间不合并,edit logs会越来越多,fsimage镜像文件会越来越旧,不太好。secondary namenode将namenode上积累的所有edits和一个最新的fsimage下载到本地,并加载到内存进行merge的过程称为checkpoint。
checkpoint流程:
- 当产生新的操作时,首先写到磁盘里的edits日志里,然后再更新到nn的内存。
- 当达到dfs.namenode.checkpoint.period和dfs.namenode.checkpoint.txns 两个配置中的任意一个secondarynamenode就会执行checkpoint的操作。两个参数可以在core-site.xml配置,第一个是两次连续的checkpoint之间的时间间隔。默认1小时,第二个是最大的没有执行checkpoint事务的数量,满足将强制执行紧急checkpoint,即使尚未达到检查点周期。默认设置为100万。
- 触发checkpoint后,NN生成一个新的edits文件,因为旧的不能再写了,越写越大,需要及时合并更新fsimage镜像文件,接下来的操作写道新的edits文件里,同时SNN把NN的edits文件和fsimage通过HTTP GET方式复制到本地。
- 然后SNN把fsimage加载到SNN的内存里,然后一条一条地执行edits文件中的各项更新操作,更新fsimage,更新完后生成一个最新的fsimage文件。SNN把这个最新的fsimage文件复制到NN磁盘里。这样一来新的fsimage文件和edits文件就把旧的替换掉了,保证了edits不太大,fsimage不太旧。然后这样一直循环。
注意NN内存里的元数据始终是最新的,因为要及时的使用,checkpoint的作用只是为了容错和持久化。
2. HDFS HA 高可用
单点故障(single point of failure,SPOF):
是指系统中某一点一旦失效,就会让整个系统无法运行成熟的做法就是给单点故障设置备份,形成主备架构。通俗描述就是当主挂掉,备份顶上,短暂的中断之后继续提供服务。常见的是一主一备架构,当然也可以一主多备。备份越多,容错能力越强,与此同时,冗余也越大,浪费资源。
QJM方案:
使用zookeeper中ZKFC来实现主备切换;使用Journal Node(JN)集群实现edits log的共享以达到数据同步的目的
在HDFS高可用中,没有SNN了,多了一个备用NN节点standby NN,基本原理是通过使用 2N+1 台 JournalNode 来存储 EditLog,每次写操作需要至少 N+1 个 JournalNode 返回成功时,才认为该次写入操作成功,确保数据不会丢失。这个算法能够容忍最多 N 台机器故障,若出现超过 N 台机器故障,则算法将失效。该原理基于 Paxos 算法。
如何保证备用NN元数据与active元数据同步?
由于在高可用(HA)架构中,SecondaryNameNode 已不再存在。为了保证 Standby NameNode 与 Active NameNode 之间的元数据始终保持一致,它们通过 JournalNode 进行数据同步。当 Active NameNode 执行任何修改操作时,JournalNode 会将修改日志同时记录到至少半数以上的 JournalNode 中。此时,Standby NameNode 会监测到 JournalNode 中的日志变化,并读取相应的修改日志,随后将这些修改同步到自己的目录镜像树中。
Active NameNode 挂掉如何接管?
当发生故障时,若 Active NameNode 挂掉,Standby NameNode 在接管成为新的 Active NameNode 前,先读取所有 JournalNode 中的修改日志。这一过程确保了 Standby NameNode 的目录镜像树与故障的 Active NameNode 保持一致,从而能够高效且可靠地接管原 Active NameNode 的工作,继续处理来自客户端的请求,确保整个系统的高可用性。
如果新的NN上任后原有挂掉的NN复活了怎么办?
在 HA 模式下,DataNode 必须确保在任何时刻只有一个 NameNode 能对其发出指令。为此,每当 NameNode 改变状态时,它会向 DataNode 发送当前状态及一个序列号。DataNode 在运行期间会持续跟踪这个序列号。当原NameNode挂了时,新的 Active NameNode 会在向 DataNode 发送心跳信息时,附带自己的 Active 状态和一个更高的序列号。收到这个心跳的 DataNode 会认为该 NameNode 是新的 Active,并开始执行其命令。如果原 Active NameNode 恢复并发送心跳时,携带的是原先的序列号和 Active 状态,DataNode 会拒绝该心跳信息,并继续与新的 Active NameNode 保持同步。
如何监视NN的健康?
HA下,在每个NameNode的节点上有一个FailoverController作为一个单独的进程用来监视NN的健康状态。FailoverController主要包括三个组件:
HealthMonitor: 监控NameNode是否处于unavailable或unhealthy状态。当前通过RPC调用NN相应的方法完成。
ActiveStandbyElector: 监控NN在ZK中的状态。
ZKFailoverController(ZKFC): 订阅HealthMonitor 和ActiveStandbyElector 的事件,并管理NN的状态,另外zkfc还负责解决脑裂问题。
上述三个组件都在跑在一个JVM中,这个JVM与NN的JVM在同一个机器上。但是两个独立的进程。一个典型的HA集群,有两个NN组成,每个NN都有自己的ZKFC进程。
ZKFC:
- 首先集群启动,如果本地NameNode运行状况良好,并且ZKFC看到当前没有其他节点持有锁znode,它将自己尝试获取该锁。如果成功,则表明它“赢得了选举”,并负责运行故障转移以使其本地NameNode处于Active状态。如果已经有其他节点持有锁,zkfc选举失败,则会对该节点注册监听,等待下次继续选举。
- ZKFC周期性的向它监控的NN发送健康探测命令,从而来确定NameNode是否处于健康状态,如果机器宕机,心跳失败,那么zkfc就会标记它处于一个不健康的状态。同时如果这个不健康的是active的NN,zkfc将其持有的锁znode删除,然后备用的NN将会得到这把锁,升级为主NN,同时标记状态为Active。
- 当宕机的NN新启动时,它会再次注册zookeper,发现已经有znode锁了,便会自动变为Standby状态,如此往复循环,保证高可靠,需要注意,目前仅仅支持最多配置2个NN。
脑裂:
在HA集群中,脑裂指的是当两个节点断开联系时,分裂成为两个独立的节点。由于相互失去了联系,主备节点之间像"裂脑人"一样,使得整个集群处于混乱状态。
脑裂后果:
- 都认为对方是状态好的,自己是备份角色,后果是无服务;
- 都认为对方是故障的,自己是主角色。相互争抢共享资源,结果会导致系统混乱,数据损坏。客户端也不知道找谁了。
因此保持任意时刻系统有且只有一个主角色提供服务我避免脑裂的核心。
故障转移过程也就是俗称的主备角色切换的过程,切换过程中最怕的就是脑裂的发生。因此需要Fencing机制来避免,将先前的Active节点隔离,然后再将Standby转换为Active状态。
Hadoop公共库中对外提供了两种Fencing实现,分别是sshfence和shellfence(缺省实现)。
sshfence是指通过ssh登陆目标节点上,使用命令fuser将进程杀死(通过tcp端口号定位进程pid,该方法比jps命令更准确);shellfence是指执行一个用户事先定义的shell命令(脚本)完成隔离。
相关文章:
复习打卡大数据篇——Hadoop HDFS 03
目录 1. HDFS元数据存储 2. HDFS HA 高可用 1. HDFS元数据存储 HDFS中的元数据按类型可以分为: 文件系统的元数据:包括文件名、目录名、修改信息、block的信息、副本信息等。datanodes的状态信息:比如节点状态、使用率等。 HDFS中的元数…...
宠物行业的出路:在爱与陪伴中寻找增长新机遇
在当下的消费市场中,如果说有什么领域能够逆势而上,宠物行业无疑是一个亮点。当人们越来越注重生活品质和精神寄托时,宠物成为了许多人的重要伴侣。它们不仅仅是家庭的一员,更是情感的寄托和生活的调剂。然而,随着行业…...
使用Turtle库实现,鼠标左键绘制路径,用鼠标右键结束绘制,小海龟并沿路径移动
使用Turtle库实现,鼠标左键绘制路径,用鼠标右键结束绘制,小海龟并沿路径移动 Turtle库是Python标准库的一部分,它提供了一种基于命令的图形绘制方式。Turtle模块通过一个“海龟”(Turtle)对象在屏幕上移动…...
海格通信嵌入式面试题及参考答案
计算电路的最高工作频率如何计算? 计算电路的最高工作频率主要考虑电路中的关键路径延迟。关键路径是指在整个电路中,信号传播延迟最长的路径。电路的最高工作频率的倒数就是时钟周期,而时钟周期必须大于关键路径的延迟时间。 首先要确定电路中各个模块的延迟。比如对于组合…...
3D几何建模引擎Parasolid功能解析
一、什么是Parasolid? Parasolid是由Siemens PLM Software开发的高精度精密几何建模引擎。它全面评估CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAE(计算机辅助工程)、PLM(产品生…...
AI的进阶之路:从机器学习到深度学习的演变(四)
AI的进阶之路:从机器学习到深度学习的演变(三) 五、深度学习的应用领域 深度学习的应用领域广泛,涵盖了计算机视觉、自然语言处理、语音识别和推荐系统等多个方面。以下将详细探讨这些关键应用领域,展示深度学习在不同…...
【ES6复习笔记】rest参数(7)
什么是 rest 参数? rest 参数是 ES6 引入的一个特性,它允许我们将一个不定数量的参数表示为一个数组。使用 rest 参数可以更方便地处理函数的参数,尤其是在参数数量不确定的情况下。 如何使用 rest 参数? 在函数定义中…...
安装MongoDB,环境配置
官网下载地址:MongoDB Shell Download | MongoDB 选择版本 安装 下载完成双击打开 点击mongodb-windows-x86_64-8.0.0-signed 选择安装地址 检查安装地址 安装成功 二.配置MongoDB数据库环境 1.找到安装好MongoDB的bin路径 复制bin路径 打开此电脑 -> 打开高级…...
ubuntu 网络管理
1 查看ip地址 rootu22-tools-20:~# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever…...
flask后端开发(1):第一个Flask项目
目录 一、Helloworddebug、host、port的配置 gitcode地址: https://gitcode.com/qq_43920838/flask_project.git 一、Helloword 一般是会创建两个文件夹和app.py app.py from flask import FlaskappFlask(__name__)app.route(/) def hello_world():return Hello…...
详解下c语言中struct和union的对齐规则
接触过c语言的同学应该都知道字节对齐。有些时候我们很容易弄错字节对齐的方式,特别是涉及到struct(结构体)和union(联合体)时。今天我们通过详细例子来说明下struct和union的对齐规则,以便了解各种struct和…...
虚拟机桥接模式网络连接不上解决方法
可能是桥接模式自动配置网络地址的时候没配好,自己手动配置一下。先看看windows里的wifi的ip 把虚拟机的网络设置打开ipv4把地址、子网掩码、网关输进去,然后再连接...
MySQL用表组织数据
用表组织数据 文章目录 用表组织数据一.四种完整性约束二.数值类型2-1三.数值类型2-2四.字符串.日期类型五.设置1.设置主键2.设置标识列3.设置非空4.设置默认值 六.主外键建立后注意事项 一.四种完整性约束 1.域完整性 列 域完整性约束方法:限制数据类型,检查约束,外键约束,默…...
基于python 微信小程序的医院就诊小程序
标题:基于 Python 微信小程序的医院就诊小程序 内容:1.摘要 基于 Python 微信小程序的医院就诊小程序旨在解决传统医院就诊流程繁琐、排队时间长等问题。通过小程序,患者可以在线预约挂号、查询医生信息、在线支付等,提高就诊效率。本小程序采用 Python…...
VUE3+django接口自动化部署平台部署说明文档(使用说明,需要私信)
网址连接:http://118.25.110.213:5200/#/login 账号/密码:renxiaoyong 1、VUE3部署本地。 1.1本地安装部署node.js 1.2安装vue脚手架 npm install -g vue/cli # 或者 yarn global add vue/cli1.3创建本地项目 vue create my-vue-project1.4安装依赖和插…...
【MySQL】十三,关于MySQL的全文索引
MySQL的全文索引用于搜索文本中的关键字,类似于like查询。 演示 建表 CREATE TABLE demo (id INT(11) NOT NULL,name CHAR(30) NOT NULL,age INT(11) NOT NULL,info VARCHAR(255),primary key(id),fulltext index futxt_idx_info(info) );此表的默认存储引擎为In…...
人工智能学习框架入门教程(一)
人工智能(AI)学习框架是指为开发、训练和部署人工智能模型提供的结构化工具和环境。它们帮助开发者实现AI项目的高效性、可扩展性、可维护性,并提供了优化算法、模型训练、评估、调优等功能。根据任务的不同,人工智能框架可以分为…...
NNDL 作业11 LSTM
习题6-4 推导LSTM网络中参数的梯度, 并分析其避免梯度消失的效果 先来推个实例: 看式子中间,上半部分并未有连乘项,而下半部分有到的连乘项,从这可以看出,LSTM能缓解梯度消失,梯度爆炸只是不易…...
Git 操作全解:从基础命令到高级操作的实用指南
文章目录 1.基本命令1.初始化仓库2.克隆远程仓库3.查看当前仓库状态4.查看提交日志5.添加文件到暂存区6.提交更改7.查看仓库的配置信息 2.分支操作1.查看所有分支2.创建新分支3.切换名称4.创建并切换到新分支5.删除分支6.查看当前分支 3.合并分支1.合并分支2.解决合并冲突 4.远…...
CSS(四)display和float
display display 属性用于控制元素的显示类型,用的 display 值包括: block:块级元素 使元素成为块级元素,占据一整行,前后有换行宽度默认为父容器的 100%,可以设置宽高,支持 margin、padding、…...
python中使用selenium执行组合快捷键ctrl+v不生效问题
在执行ctrlv进行粘贴时,绑定一个页面上的元素对象(无论元素对象是否是引用过期或者是粘贴的目标文本区,但前提需要粘贴的目标文本区获取焦点)执行ctrlv后可以生效。执行粘贴组合快捷键(ctrlv)的示例代码 se…...
数据结构 C/C++(实验五:图)
(大家好,今天分享的是数据结构的相关知识,大家可以在评论区进行互动答疑哦~加油!💕) 目录 提要:实验题目 一、实验目的 二、实验内容及要求 三、源程序及注释 实验1代码 (折半查…...
非零掩码矩阵邻接矩阵
文章目录 1. 举例:2. python 代码3. 邻接矩阵 1. 举例: 在深度学习过程中,我们经常会用到掩码矩阵,比如我们有一个矩阵A表示如下,希望得到矩阵B,在矩阵A的非零位置表示为1,零位置表示为0, A …...
Docker安装
目录 1. 联网安装 Docker 2. 离线安装 Docker 3. 安装 Docker Compose 4. 卸载 Docker 和 Docker Compose 1. 联网安装 Docker 在 CentOS 上通过 yum 安装 Docker: # 安装 Docker yum -y install docker # 启动 Docker systemctl start docker # 查看 D…...
嵌入式驱动开发详解21(网络驱动开发)
文章目录 前言以太网框架ENET 接口简介MAC接口MII \ RMII 接口MDIO 接口RJ45 接口 PHY芯片以太网驱动驱动挂载wifi模块挂载后续 前言 linux驱动主要是字符设备驱动、块设备驱动还有网络设备驱动、字符设备驱动在本专栏前面已经详细将解了,网络设备驱动本文会做简要…...
2024年12月25日Github流行趋势
项目名称:system-design-primer 项目维护者:donnemartin, cclauss, satob, fluency03, linhe0x0项目介绍:学习如何设计大规模系统。为系统设计面试做准备。包括 Anki 卡片。项目star数:282,387项目fork数:47,226 项目…...
6、mysql的MHA故障切换
MHA的含义 MHA:master high availability,建立在主从复制基础上的故障切换的软件系统。 主从复制的单点问题: 当主从复制当中,主服务器发生故障,会自动切换到一台从服务器,然后把从服务器升格成主&…...
#error: WinSock.h has already been included解决方案
原因: 在工程中使用了 Boot 库之后,使用了socket、tcp 相关的头文件,在其他地方还是包括了头文件<windows.h>,该头文件内包含了<winsock.h>。导致遇到报错问题:WinSock.h has already been included 解决…...
npm淘宝镜像
通过命令行配置npm的淘宝镜像源和官方镜像源,以及如何安装和使用cnpm来解决安装包卡顿或无法安装的问题。通过设置registry和disturl,配合清理缓存,可以优化npm的下载速度。 1、官方默认镜像 npm config set registry https://registry.n…...
光谱相机的工作原理
光谱相机的工作原理主要基于不同物质对不同波长光的吸收、反射和透射特性存在差异,以下是其具体工作过程: 一、光的收集 目标物体在光源照射下,其表面会对光产生吸收、反射和透射等相互作用。光谱相机的光学系统(如透镜、反射镜…...
安全筑堤,效率破浪 | 统一运维管理平台下的免密登录应用解析
在信息技术迅猛发展的今天,企业运维管理领域正面临着前所未有的复杂挑战。统一运维管理平台作为集中管理和监控IT基础设施的核心工具,其安全性和效率至关重要。免密登录作为一种新兴的身份验证技术,正逐渐成为提升运维管理效率和安全性的重要…...
外包干了27天,技术退步明显。。。。。
时光荏苒,转眼我已是一个拥有近四年功能测试经验的大专生。20年,我满怀激情地通过校招进入湖南某知名软件公司,期待在这里开启我的职业生涯。然而,长时间的舒适环境让我渐渐失去了前进的动力,技术停滞不前,…...
leetcode 面试经典 150 题:合并两个有序数组
链接合并两个有序数组题序号88题型数组解题方法1. 双指针法 ;2. 合并排序法难度简单熟练度✅✅✅✅✅ 题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 …...
波动理论、传输线和S参数网络
波动理论、传输线和S参数网络 传输线 求解传输线方程 对于传输线模型,我们通常用 R L G C RLGC RLGC 来表示: 其中 R R R 可以表示导体损耗,由于电子流经非理想导体而产生的能量损耗。 G G G 表示介质损耗,由于非理想电介质…...
YOLO11改进-注意力-引入自调制特征聚合模块SMFA
本篇文章将介绍一个新的改进机制——SMFA(自调制特征聚合模块),并阐述如何将其应用于YOLOv11中,显著提升模型性能。随着深度学习在计算机视觉中的不断进展,目标检测任务也在快速发展。YOLO系列模型(You Onl…...
uniapp登录
第一步整登录 先整个appid APPID和APPSecret https://developers.weixin.qq.com/community/develop/article/doc/000ca4601b8f70e379febac985b413 一个账号只能整一个小程序 正确流程 调用uni.login https://juejin.cn/post/7126553599445827621 https://www.jb51.net/a…...
mysql,数据库主从同步搭建
1.mysql主从同步1.主从同步原理(1)复现binlog日志中的sql语句(2)主服务器启动binlog日志(3)从服务器启动binlog日志,io线程,sql线程2.主从同步结构一主一从一主多从级联复制互为主从(keepalived高可用)3.mysql复制模式异步复制:主服务器处理完sql直接返回给客户端结果半同步复制…...
云途领航:现代应用架构助力企业转型新篇
在数字化转型的浪潮中,现代应用架构为企业带来了灵活性、效率和创新能力。各类服务模型相继出现,为企业提供了强有力的支持,助力其顺利转型。随着技术的快速发展,企业面临的挑战和机遇也在不断演变,这促使它们必须重新…...
redis——岁月云实战
单线程序,基于IO多路复用,基于内存和c语言编写,性能高。redis官方命令 1 数据结构 1.1 key的层级 redis的key可以通过冒号(:)来划分层级,如下图mms:company:order,但系统中可以看到有不少没有…...
Flink调优----资源配置调优与状态及Checkpoint调优
目录 第 1 章 资源配置调优 1.1 内存设置 1.1.1 TaskManager 内存模型 1、内存模型详解 2、案例分析 1.1.2 生产资源配置示例 1.2 合理利用 cpu 资源 1.2.1 使用 DefaultResourceCalculator 策略 1.2.2 使用 DominantResourceCalculator 策略 1.2.3 使用 DominantRes…...
Java web的发展历史
目录 前言: 一.Model I和Model II 1.Model I开发模式 编辑 2.Model II开发模式 二. MVC模式 前言: 该篇文章主要介绍了Java web的发展历史,以及MVC相关内容 一.Model I和Model II 1.Model I开发模式 Model1的开发模式是ÿ…...
面向微服务的Spring Cloud Gateway的集成解决方案:用户登录认证与访问控制
🎯导读:本文档详细描述了一个基于Spring Cloud Gateway的微服务网关及Admin服务的实现。网关通过定义路由规则,利用负载均衡将请求转发至不同的后端服务,并集成了Token验证过滤器以确保API的安全访问,同时支持白名单路…...
MongoDB 更新文档
关于MongoDB更新文档的操作,可以通过多种方法实现。以下是一些常用的方法: updateOne() 方法:用于更新匹配过滤器的单个文档。其语法为 db.collection.updateOne(filter, update, options)。其中,filter 用于查找文档的查询条件&a…...
静态路由与动态路由
静态路由和动态路由是网络中两种不同的路由配置方式,它们在网络中的运作方式、配置方法以及适用场景等方面存在显著差异。以下是对两者的详细比较: 一、定义与配置方式 静态路由 定义:静态路由是由网络管理员手动配置的固定路径,…...
leetcode hot二叉树的层序遍历
102. 二叉树的层序遍历 已解答 中等 相关标签 相关企业 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点) # Definition for a binary tree node. # class TreeNode(object): # …...
Windows下ESP32-IDF开发环境搭建
Windows下ESP32-IDF开发环境搭建 文章目录 Windows下ESP32-IDF开发环境搭建一、软件安装二、搭建IDF开发环境2.1 安装VS Code插件:2.2 配置ESP-IDF插件:2.3 下载例程源码: 三、编译和烧录代码四、Windows下使用命令行编译和烧录程序4.1 配置环…...
基于高云GW5AT-15 FPGA的SLVS-EC桥MIPI设计方案分享
作者:Hello,Panda 一、设计需求 设计一个4Lanes SLVS-EC桥接到2组4lanes MIPI DPHY接口的电路模块: (1)CMOS芯片:IMX537-AAMJ-C,输出4lanes SLVS-EC 4.752Gbps Lane速率; (2&…...
【day18】多线程高级应用
day17回顾 在深入探讨模块18之前,让我们回顾一下【day17】中的关键内容: 创建多线程: 继承Thread类: 定义一个类,继承Thread。重写run方法,设置线程任务。创建自定义线程对象。调用start方法,开…...
Python接口自动化测试的实现
1)环境准备: 接口测试的方式有很多,比如可以用工具(jmeter,postman)之类,也可以自己写代码进行接口测试,工具的使用相对来说都比较简单,重点是要搞清楚项目接口的协议是什么,然后有针对性的进行选择&#x…...
nvidia docker, nvidia docker2, nvidia container toolkits区别
背景 在docker容器中用GPU时,查阅了网上许多教程,教程之间概念模糊不清,相互矛盾,过时的教程和新的教程混杂在一起。主要原因是Nvidia为docker容器的支持发生了好几代变更,api发生了不少变化。下面来总结一下各代支持…...