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

六、docker compose单机容器编排工具

六、docker compose单机容器编排工具

6.1 compose简介

Compose是一个用于定义和运行多容器Docker应用程序的工具。您可以使用Compose文件来配置应用程序的服务,然后使用单个命令从配置中创建并启动所有服务。compose的配置文件示例如下

在这里插入图片描述

compose的github网址:https://github.com/docker/compose

在这里插入图片描述

6.2 compose安装

docker-compose项目是docker官方的开源项目,负责实现对docker容器集群的快速编排。Docker Compose 依靠Docker Engine 进行任何有意义的工作,因此请确保您已在本地或远程安装Docker Engine。目前docker-compose提供两个版本,v1和v2版本,本文中只讨论v2版本。

compose有两种安装形式:

  • 插件形式安装compose:在安装最新版本docker时,docker compose会以插件形式安装。
#查看docker-ce和docker-compose-plugin的版本
[root@localhost ~]# rpm -qa | grep docker
docker-compose-plugin-2.29.7-1.el9.x86_64
docker-buildx-plugin-0.17.1-1.el9.x86_64
docker-ce-cli-27.3.1-1.el9.x86_64
docker-ce-rootless-extras-27.3.1-1.el9.x86_64
docker-ce-27.3.1-1.el9.x86_64#查看插件形式安装的docker compose的版本
[root@localhost ~]# docker compose version
Docker Compose version v2.29.7
[root@localhost ~]# yum search  docker-compose-plugin
docker-compose-plugin.x86_64 : Docker Compose (V2) plugin for the Docker CLI
#命令帮助
[root@localhost ~]# docker compose  -h
Flag shorthand -h has been deprecated, use --helpUsage:  docker compose [OPTIONS] COMMAND
Options:-f, --file stringArray           Compose configuration files  #指定compose模板文件
Commands:down        Stop and remove containers, networksimages      List images used by the created containerskill        Force stop service containerslogs        View output from containersls          List running compose projectsport        Print the public port for a port bindingps          List containersrestart     Restart service containersrm          Removes stopped service containersstart       Start servicesstats       Display a live stream of container(s) resource usage statisticsstop        Stop servicestop         Display the running processesup          Create and start containersversion     Show the Docker Compose version information
#docker compose  up帮助信息
[root@localhost ~]# docker compose  up --help
Usage:  docker compose up [OPTIONS] [SERVICE...]
Create and start containers-d, --detach                       Detached mode: Run containers in the background  #在后台运行容器
  • 独立模式安装compose:在官网下载docker-compose二进制包以独立模式安装docker-compose。

docker-compose下载地址:https://github.com/docker/compose/releases

[root@localhost ~]# cd /usr/local/bin/
#将docker-compose二进制文件下载至该目录
[root@localhost bin]# ll -h
总用量 61M
-rw-r--r-- 1 root root 61M 1112 14:53 docker-compose-linux-x86_64
[root@localhost bin]# chmod a+x docker-compose-linux-x86_64
[root@localhost bin]# ll
总用量 61608
-rwxr-xr-x 1 root root 63083304 1112 14:53 docker-compose-linux-x86_64
[root@localhost bin]# /usr/local/bin/docker-compose-linux-x86_64  --version
Docker Compose version v2.28.0
#制作命令软链接
[root@localhost bin]# ln -s docker-compose-linux-x86_64 docker-compose
[root@localhost bin]# ll
总用量 61608
lrwxrwxrwx 1 root root       27 1112 14:54 docker-compose -> docker-compose-linux-x86_64
-rwxr-xr-x 1 root root 63083304 1112 14:53 docker-compose-linux-x86_64
[root@localhost bin]# docker-compose --version
Docker Compose version v2.28.0
#查看命令帮助,和docker compose用法一样
[root@localhost bin]# docker-compose --help
Usage:  docker compose [OPTIONS] COMMAND
Define and run multi-container applications with Docker

6.3 docker compose启动容器

6.3.1 compose启动容器步骤

使用 Docker Compose 分为三个步骤:

  1. 使用Dockerfile定义您的应用程序的环境,以便它可以在任何地方重现。

  2. compose.yaml文件中定义组成应用程序的服务,以便它们可以在隔离的环境中一起运行。关于compose.yml文件的官网说明:https://github.com/compose-spec/compose-spec/blob/main/spec.md

    在新版的compose中Compose文件的默认路径是compose.yaml(首选)或compose.yml放置在工作目录中。Compose 还支持docker-compose.yaml和docker-compose.yml以向后兼容早期版本。如果两个文件都存在,Compose 会首选规范的compose.yaml。

    compose文件的组成部分如下:
    在这里插入图片描述

  3. 最后,运行docker compose up将启动并运行您的整个应用程序。

6.3.2 compose的yml文件格式

#用'#'表示注释
services:    #服务字段,必选项web:      #自定义服务名称,唯一image: nginx  #镜像名称build: ./dir  #指定dockerfile所在路径container_name: nginx  #容器名称restart: always  #设定容器失败时总是自动重启expose:   #指定容器暴露哪些端口,不会映射到主机的端口- 80  ports: - "80:80"volumes:- ./conf.d/:/etc/nginx/conf.d/:ro  #将本机的文件以只读方式映射至目标容器中- db-data:/var/lib/backup/datanetwork_mode: bridge  #使用docker默认创建的bridge网络
volumes:db-data:
networks:mynet1: driver: bridgemynet2: driver: bridgeexternal: true  #不创建新的网络而使用已经创建好的网络,如果网络不存在会报错

6.3.3 启动一个简单的容器

#创建compose的项目目录
[root@localhost ~]# mkdir -p /compose/nginx/
[root@localhost ~]# cd /compose/nginx/
[root@localhost nginx]# cat compose.yml
services:web:image: nginx:1.27.2container_name: nginxports:- "80:80"- "443:443"
#根据compose.yml文件启动容器
[root@localhost nginx]# docker compose  up -d
[+] Running 1/1✔ Container nginx  Started                                                             0.2s
#容器名称为nginx
[root@localhost nginx]# docker compose ps
NAME      IMAGE          COMMAND                   SERVICE   CREATED         STATUS         PORTS
nginx     nginx:1.27.2   "/docker-entrypoint.…"   web       4 minutes ago   Up 4 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp
[root@localhost nginx]# curl  -s -w "%{http_code}\n" -o /dev/null localhost:80
200
#停止容器,但不删除容器
[root@localhost nginx]# docker compose  stop
[root@localhost nginx]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED         STATUS                      PORTS     NAMES
20a277d0d5ae   nginx:1.27.2   "/docker-entrypoint.…"   9 minutes ago   Exited (0) 22 seconds ago             nginx#停止容器并删除
[root@localhost nginx]# docker compose  down
[+] Running 2/2✔ Container nginx        Removed                                                       0.0s✔ Network nginx_default  Removed                                                       0.1s
[root@localhost nginx]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

6.3.4 启动多个容器

[root@localhost compose]# mkdir -p tomcat-nginx/tomcat-base
[root@localhost compose]# cd tomcat-nginx/
#使用4.2.4自定义的tomcat镜像运行容器
[root@localhost tomcat-nginx]# ll tomcat-base/
总用量 187860
-rw-r--r-- 1 root root  12716365 1112 16:12 apache-tomcat-9.0.96.tar.gz
-rw-r--r-- 1 root root       568 1112 16:13 dockerfile
-rw-r--r-- 1 root root       142 1112 16:12 java.sh
-rw-r--r-- 1 root root 179640645  119  2019 jdk-11.0.2_linux-x64_bin.tar.gz#build参数说明:https://github.com/compose-spec/compose-spec/blob/main/build.md
[root@localhost tomcat-nginx]# cat compose.yml
[root@localhost tomcat-nginx]# cat compose.yml
services:service-web-nginx:image: nginx:1.27.2container_name: web-nginx1volumes:- ./html:/usr/share/nginx/html:roports:- "80:80"- "443:443"service-web-tomcat:image: tomcat:basebuild: ./tomcat-basecontainer_name: web-tomcat1ports:- "8080:8080"
[root@localhost tomcat-nginx]# cat ./html/index.html
this is nginx test
#运行容器
[root@localhost tomcat-nginx]# docker compose  up -d      
#查看compose配置
[root@localhost tomcat-nginx]# docker compose  ps
NAME          IMAGE          COMMAND                   SERVICE              CREATED          STATUS          PORTS
web-nginx1    nginx:1.27.2   "/docker-entrypoint.…"   service-web-nginx    28 seconds ago   Up 26 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp
web-tomcat1   tomcat:base    "/usr/local/tomcat/b…"   service-web-tomcat   28 seconds ago   Up 26 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp
#在浏览器使用ip地址测试访问
[root@localhost tomcat-nginx]# curl  localhost:80
this is nginx test

6.3.5 配置haproxy和nginx负载均衡

[root@localhost compose]# mkdir haproxy-nginx
[root@localhost compose]# cd haproxy-nginx
[root@localhost haproxy-nginx]# mkdir -p web{1,2}/html
[root@localhost haproxy-nginx]# echo this is web1 >  web1/html/index.html
[root@localhost haproxy-nginx]# echo this is web2 >  web2/html/index.html
[root@localhost haproxy-nginx]# mkdir haproxy
[root@localhost haproxy-nginx]# cat haproxy/haproxy.cfg
listen web_port_80bind 0.0.0.0:80mode httpbalance roundrobinserver web1 web1:80  check inter 3000 fall 2 rise 5server web2 web2:80  check inter 3000 fall 2 rise 5
[root@localhost haproxy-nginx]# cat compose.yml
services:web1:image: nginx:1.27.2container_name: web1volumes:- ./web1/html:/usr/share/nginx/htmlnetworks:- mynet1web2:image: nginx:1.27.2container_name: web2volumes:- ./web2/html:/usr/share/nginx/htmlnetworks:- mynet2haproxy:image: haproxy:3.0container_name: haproxyvolumes:- ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfgnetworks:- mynet1- mynet2ports:- 80:80networks:mynet1:driver: bridgemynet2:driver: bridge[root@localhost haproxy-nginx]# docker compose  up -d
[+] Running 5/5✔ Network haproxy-nginx_mynet1  Created                                   0.0s✔ Network haproxy-nginx_mynet2  Created                                   0.1s✔ Container web1                Started                                   0.7s✔ Container haproxy             Started                                   0.7s✔ Container web2                Started                                   0.6s
[root@localhost haproxy-nginx]# docker network  ls
NETWORK ID     NAME                   DRIVER    SCOPE
daa38f832e19   bridge                 bridge    local
b9e9cbce7940   haproxy-nginx_mynet1   bridge    local
b44eba593328   haproxy-nginx_mynet2   bridge    local
aefd4dec55a1   harbor_harbor-clair    bridge    local
62d99472c7fd   host                   host      local
8ea12eac3429   none                   null      local[root@localhost haproxy-nginx]# docker ps
CONTAINER ID   IMAGE          COMMAND                   CREATED         STATUS         PORTS                               NAMES
fe4a95be1653   haproxy:3.0    "docker-entrypoint.s…"   3 minutes ago   Up 3 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   haproxy
06003d69c107   nginx:1.27.2   "/docker-entrypoint.…"   3 minutes ago   Up 3 minutes   80/tcp                              web2
e6d76e7f31c9   nginx:1.27.2   "/docker-entrypoint.…"   3 minutes ago   Up 3 minutes   80/tcp                              web1
#测试
[root@localhost haproxy-nginx]# for i in {1..10};do curl localhost:80;done
this is web2
this is web1
this is web2
this is web1
this is web2
this is web1
this is web2
this is web1
this is web2
this is web1
#停止并删除容器
[root@localhost haproxy-nginx]# docker compose  down
[+] Running 5/5✔ Container web1                Removed                                   0.1s✔ Container web2                Removed                                   0.1s✔ Container haproxy             Removed                                   0.2s✔ Network haproxy-nginx_mynet1  Removed                                   0.2s✔ Network haproxy-nginx_mynet2  Removed                                   0.1s

相关文章:

六、docker compose单机容器编排工具

六、docker compose单机容器编排工具 6.1 compose简介 Compose是一个用于定义和运行多容器Docker应用程序的工具。您可以使用Compose文件来配置应用程序的服务,然后使用单个命令从配置中创建并启动所有服务。compose的配置文件示例如下 compose的github网址&#…...

Python3 operator 模块

Python2.x 版本中,使用 cmp() 函数来比较两个列表、数字或字符串等的大小关系。 Python 3.X 的版本中已经没有 cmp() 函数,如果你需要实现比较功能,需要引入 operator 模块,适合任何对象,包含的方法有: o…...

沪合共融 “汽”势如虹 | 昂辉科技参加合肥上海新能源汽车产业融合对接会

为积极响应制造业重点产业链高质量发展行动号召,促进合肥、上海两地新能源汽车产业链上下游企业融合对接、协同发展,共同打造长三角世界级新能源汽车产业集群,11月28日,合肥市工信局组织部分县区工信部门及全市30余户新能源汽车产…...

访问http网页强制跳转到了https的解决办法

目录 解决浏览器自动从 HTTP 重定向到 HTTPS 的问题问题原因:HSTS(HTTP Strict Transport Security)什么是 HSTS?HSTS 的工作原理 如何解决?1. 清除浏览器的 HSTS 信息在 Chrome 中清除 HSTS 信息:在 Firef…...

PDF处理的创新工具:福昕低代码平台尝鲜

在当今数字化时代,PDF文件的处理和管理变得越来越重要。福昕低代码平台是新发布的一款创新的工具,旨在简化PDF处理和管理的流程。通过这个平台,用户可以通过简单的拖拽界面上的按钮,轻松完成对Cloud API的调用工作流,而…...

EmoAva:首个大规模、高质量的文本到3D表情映射数据集。

2024-12-03,由哈尔滨工业大学(深圳)的计算机科学系联合澳门大学、新加坡南洋理工大学等机构创建了EmoAva数据集,这是首个大规模、高质量的文本到3D表情映射数据集,对于推动情感丰富的3D头像生成技术的发展具有重要意义…...

SpringMVC ——(1)

1.SpringMVC请求流程 1.1 SpringMVC请求处理流程分析 Spring MVC框架也是⼀个基于请求驱动的Web框架,并且使⽤了前端控制器模式(是⽤来提供⼀个集中的请求处理机制,所有的请求都将由⼀个单⼀的处理程序处理来进⾏设计,再根据请求…...

测试工具LoadRunner Professional脚本编写-脚本设置

勾选扩展日志-全选 原因:在并发完成后,通过抽查关键用户日志的方式,检查参数化是否如预期一致,比如抽查用户1(仓库一,物品一),用户11(仓库二,物品一),用户100(仓库十,物品十) 设置忽略思考时间 原因:是否忽略思考时间,请求数可能会有几十倍的差距…...

运用蓝光三维扫描仪的艺术与科技的完美融合-石膏头像模型3D扫描真实复刻

石膏头像具有独特的魅力,每一处细节都彰显着艺术之美。无论是深邃的眼神,还是精致的轮廓,都让人陶醉其中。 随着雕塑形式的日渐丰富,越来越多的新材料和新的塑造手法被运用到雕塑创作中,蓝光三维扫描技术的应用&#…...

文本域设置高度 加上文字限制并show出来:

文本域设置高度 :rows"4" 加上文字限制并show出来&#xff1a; maxlength"30" show-word-limit 效果: <el-form-item label"产品备注" prop"remark"><el-input v-model"form.remark" type"textarea"…...

探索数据确权、隐私保护、安全共享等方面的挑战与解决方案

在数据确权、隐私保护、安全共享等方面&#xff0c;当前确实面临着诸多挑战&#xff0c;同时也存在一些有效的解决方案。以下是对这些方面的详细探讨&#xff1a; 一、数据确权 挑战 权属关系模糊&#xff1a;由于数据具有复杂性和隐蔽性等特点&#xff0c;使得数据的权属关…...

麒麟 V10(ky10.x86_64)无网环境下 openssl - 3.2.2 与 openssh - 9.8p1 升级【最全教程】

目录 背景 安装包下载 上传解压安装包 安装zlib 安装OpenSSL 安装OpenSSH 验证 背景 近期&#xff0c;项目上线已进入倒计时阶段&#xff0c;然而在至关重要的安全检查环节中&#xff0c;却惊现现有的 OpenSSH 存在一系列令人担忧的漏洞&#xff1a; OpenSSH 资源管理错…...

前端技术(23) : 聊天页面

来源: GPT生成之后微调 效果图 HTML代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>聊天</t…...

ArcMap 处理河道坡度、计算污染区、三维爆炸功能

ArcMap 处理河道坡度、计算污染区、三维爆炸功能今天分析 一、计算河道方向坡度 1、折线转栅格 确定 2、提取河道高程值 确定后展示河流的高程值 3、计算坡向数据 确定后展示 4、计算坡度数据 确定后展示 二、计算上游集水区污染值 1、填挖处理 确定 2、计算流向 确定 3、计算…...

数据结构 (30)计算式查找法——哈希法

前言 数据结构中的计算式查找法&#xff0c;特别是哈希法&#xff08;又称散列法、杂凑法、关键字地址计算法&#xff09;&#xff0c;是一种高效的查找技术。 一、哈希法的基本概念 哈希法是通过一个哈希函数将关键字映射到哈希表中的某个位置&#xff0c;从而实现快速查找的技…...

电子商务人工智能指南 4/6 - 内容理解

介绍 81% 的零售业高管表示&#xff0c; AI 至少在其组织中发挥了中等至完全的作用。然而&#xff0c;78% 的受访零售业高管表示&#xff0c;很难跟上不断发展的 AI 格局。 近年来&#xff0c;电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…...

交易系统:线上交易系统流程详解

大家好&#xff0c;我是汤师爷~ 今天聊聊线上交易系统流程详解。 线上交易系统为新零售连锁商家提供一站式线上交易解决方案。其核心目标是&#xff0c;通过数字化手段扩大商家的服务范围&#xff0c;突破传统门店的地理限制。系统支持电商、O2O等多种业务形态&#xff0c;为…...

如何通过自学成长为一名后端开发工程师?

大家好&#xff0c;我是袁庭新。最近&#xff0c;有星友向我提出了一个很好的问题&#xff1a;如何通过自学成为一名后端开发工程师&#xff1f; 为了解答这个疑问&#xff0c;我特意制作了一个视频来详细分享我的看法和建议。 戳链接&#xff1a;如何通过自学成长为一名后端开…...

实际车辆行驶轨迹与预设路线偏离检测的Java实现

准备工作 本项目依赖于两个关键库&#xff1a;JTS Topology Suite&#xff08;简称JTS&#xff09;&#xff0c;用于几何对象创建和空间分析&#xff1b;以及GeoTools&#xff0c;用于处理坐标转换和其他地理信息任务。确保开发环境中已经包含了这两个库&#xff0c;并且正确配…...

pci_resource相关函数

一、介绍 pci_resource_start函数用于获取PCI设备中指定Bar寄存器记录资源起始地址&#xff0c; 函数原型&#xff1a; resource_size_t pci_resource_start(struct pci_dev *dev, int bar) 参数&#xff1a; dev: PCI 设备结构体指针 bar: BAR 寄存器索引 (0-5) 返回&a…...

Android Studio 历史版本下载

Android Studio 历史版本下载 官方链接&#xff1a;https://developer.android.google.cn/studio/archive 通过gradle插件版本反查Android Studio历史版本 Android Studio Ladybug | 2024.2.1 October 1, 2024 【https://redirector.gvt1.com/edgedl/android/studio/ide-zip…...

Jupyter Lab打印日志

有时候在 jupyter 中执行运行时间较长的程序&#xff0c;且需要一直信息&#xff0c;但是程序执行到某些时候就不再打印了。 可以开启 日志控制台&#xff0c;将日志信息记录在控制台中。 参考&#xff1a;https://www.autodl.com/docs/jupyterlab/...

guava缓存的get方法的回调函数讲解一下

CacheBuilder.newBuilder()//设置缓存初始大小&#xff0c;应该合理设置&#xff0c;后续会扩容.initialCapacity(10)//最大值.maximumSize(100)//并发数设置.concurrencyLevel(5)//缓存过期时间&#xff0c;写入后10分钟过期.expireAfterWrite(600,TimeUnit.SECONDS)//统计缓存…...

【双分派小结】

双分派&#xff08;Double Dispatch&#xff09;是一种面向对象编程中的设计模式&#xff0c;通常用于实现多态性&#xff0c;尤其是在涉及多个对象交互时。它的基本思想是通过两个不同的对象来确定方法调用&#xff0c;而不仅仅是依赖于一个对象。 双分派的工作原理 在普通的…...

Python100道练习题

Python100道练习题 BIlibili 1、两数之和 num1 20 num2 22result num1 num2print(result)2、一百以内的偶数 list1 []for i in range(1,100):if i % 2 0:list1.append(i) print(list1)3、一百以内的奇数 # 方法一 list1 [] for i in range(1,100):if i % 2 ! 0:lis…...

Scala—Slice(提取子序列)方法详解

Scala—Slice&#xff08;提取子序列&#xff09;方法详解 在 Scala 中&#xff0c;slice 方法用于从集合中提取一个连续的子序列&#xff08;切片&#xff09;。可以应用于多种集合类型&#xff0c;如 List、Array、Seq 等。 一、slice 方法的定义 slice 根据提供的起始索引…...

nginx根据报文里字段转发至不同地址

nginx接收到post请求.请求报文里是一个json字符串&#xff0c;字符串里有个字段id。 根据id不同&#xff0c;转发到不同地址。 如果idaaa,转发到www.aaa.com.test 如果idbbb,转发到www.bbb.com.test 如何配置,请提供一个nginx.conf 要在 Nginx 中根据 POST 请求的 JSON 负载中的…...

Kafka单机及集群部署及基础命令

目录 一、 Kafka介绍1、kafka定义2、传统消息队列应用场景3、kafka特点和优势4、kafka角色介绍5、分区和副本的优势6、kafka 写入消息的流程 二、Kafka单机部署1、基础环境2、iptables -L -n配置3、下载并解压kafka部署包至/usr/local/目录4、修改server.properties5、修改/etc…...

TCP Robot Send Recive

Function main String data$ 定义字符串变量 SetNet #205, "192.168.0.1", 2004, CRLF, NONE, 0 设置端口号IP地址 OpenNet #205 As Server 端口号对应pc机的端口号 Print "等待201端口连接" WaitNet #201 等待201网…...

旅游管理系统|Java|SSM|VUE| 前后端分离

【重要1⃣️】前后端源码万字文档部署文档 【重要2⃣️】正版源码有问题包售后 【包含内容】 【一】项目提供非常完整的源码注释 【二】相关技术栈文档 【三】源码讲解视频 【其它服务】 【一】可以提供远程部署安装&#xf…...

qt-everywher交叉编译e-src-5.15.2

简化配置的方式&#xff1a; 你完全可以通过直接配置 安装目录、编译链 和 目标架构 来完成交叉编译&#xff0c;而不需要修改 mkspecs 配置。以下是如何通过简化配置来进行交叉编译 Qt 的步骤。 准备交叉编译工具链 首先&#xff0c;确保你已经安装了交叉编译工具链&#xff…...

Cursor vs VSCode:主要区别与优势分析

Cursor - The AI Code Editor 1. AI 集成能力 Cursor的优势 原生AI集成&#xff1a; # Cursor可以直接通过快捷键调用AI # 例如&#xff1a;按下 Ctrl K 可以直接获取代码建议 def complex_function():# 在这里&#xff0c;你可以直接询问AI如何实现功能# AI会直接在编辑器中…...

Qt 小项目 学生管理信息系统

主要是对数据库的增删查改的操作 登录/注册界面&#xff1a; 主页面&#xff1a; 添加信息&#xff1a; 删除信息&#xff1a; 删除第一行&#xff08;支持多行删除&#xff09; 需求分析&#xff1a; 用QT实现一个学生管理信息系统&#xff0c;数据库为MySQL 要求&#xf…...

Hadoop3集群实战:从零开始的搭建之旅

目录 一、概念 1.1 Hadoop是什么 1.2 历史 1.3 三大发行版本&#xff08;了解&#xff09; 1.4 优势 1.5 组成&#x1f497; 1.6 HDFS架构 1.7 YARN架构 1.8 MapReduce概述 1.9 HDFS\YARN\MapReduce关系 二、环境准备 2.1 准备模版虚拟机 2.2 安装必要软件 2.3 安…...

软件工程复习记录

基本概念 软件工程三要素&#xff1a;方法、工具、过程 软件开发方法&#xff1a;软件开发所遵循的办法和步骤&#xff0c;以保证所得到的运行系统和支持的文档满足质量要求。 软件开发过程管理 软件生命周期&#xff1a;可行性研究、需求分析、概要设计、详细设计、编码、测…...

爬虫运行后数据如何存储?

爬虫运行后获取的数据可以存储在多种不同的存储系统中&#xff0c;具体选择取决于数据的规模、查询需求以及应用场景。以下是一些常见的数据存储方法&#xff1a; 1. 文件系统 对于小型项目或临时数据存储&#xff0c;可以直接将数据保存到本地文件中。常见的文件格式包括&…...

【C语言】C语言的潜规则:运行环境对C程序执行特性的影响

C语言的潜规则&#xff1a;C语言的执行会因为它的运行环境被赋予不同的特性 C语言是一种非常底层、高效、灵活的编程语言&#xff0c;但这种灵活性也带来了很多不确定性。C语言的行为在很大程度上依赖于其运行环境&#xff08;编译器、操作系统、硬件架构等&#xff09;。这也…...

Win11 24h2 不能正常ensp

Win11 24h2 不能正常ensp 因为Win11 24h2的内核大小更改&#xff0c;目前virtualbox在7.1.4中更新解决了。而ensp不支持5.2.44之后的virtualbox并已停止维护&#xff0c;不再进行5.2.44修复&#xff0c;virtualbox 5.2.24的ntdll文件sizeofimage问题&#xff0c;此问题导致ens…...

【认证法规】安全隔离变压器

文章目录 定义反激电源变压器 定义 安全隔离变压器&#xff08;safety isolating transformer&#xff09;&#xff0c;通过至少相当于双重绝缘或加强绝缘的绝缘使输入绕组与输出绕组在电气上分开的变压器。这种变压器是为以安全特低电压向配电电路、电器或其它设备供电而设计…...

【北京迅为】iTOP-4412全能版使用手册-第六十七章 USB鼠标驱动详解

iTOP-4412全能版采用四核Cortex-A9&#xff0c;主频为1.4GHz-1.6GHz&#xff0c;配备S5M8767 电源管理&#xff0c;集成USB HUB,选用高品质板对板连接器稳定可靠&#xff0c;大厂生产&#xff0c;做工精良。接口一应俱全&#xff0c;开发更简单,搭载全网通4G、支持WIFI、蓝牙、…...

MFEM源码分析:代数库

数值计算引擎通常需要将表征物理模型的数学模型转化为线性/非线性方程组&#xff0c;进而求解这些线性/非线性方程组来获取数值解。因此&#xff0c;代数库自然成为数值计算引擎不可或取的模块。 而且&#xff0c;普遍认为&#xff0c;代数库的性能在很大程度上决定数值计算引…...

全景图相关算法学习笔记

目录 ldm3d CVPR 2024 Highlight 文本生360全景&#xff01;PanFusion 全景图光流学习 一张2D全景图可合成高质量的360度3D场景 全景图生成3d ldm3d https://huggingface.co/Intel/ldm3d-pano CVPR 2024 Highlight 文本生360全景&#xff01;PanFusion 文生图&#xff0…...

3D 目标检测:从萌芽到前沿的技术演进之路

亲爱的小伙伴们&#x1f618;&#xff0c;在求知的漫漫旅途中&#xff0c;若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界&#xff0c;亦或是读研论文的撰写攻略有所探寻&#x1f9d0;&#xff0c;那不妨给我一个小小的关注吧&#x1f970;。我会精心筹备&#xff0c;在…...

泷羽sec:shell编程(9)不同脚本的互相调用和重定向操作

声明&#xff1a; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&#…...

Java Web 3 Axios Vue组件库

一 Ajax 1 同步 异步 2 原生Ajax 比较繁琐 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Documen…...

探索未来驾驶:全面解析现代汽车高级辅助驾驶系统功能(APA 、SDA 、TBA、RPA、HPA、PEB)

随着科技的不断进步&#xff0c;汽车行业正在经历一场革命&#xff0c;自动驾驶技术逐渐成为现实。从自适应巡航控制到完全自动驾驶&#xff0c;各种高级驾驶辅助系统&#xff08;ADAS&#xff09;正在改变我们的驾驶方式。今天&#xff0c;我们将深入探讨几种关键的高级驾驶辅…...

MYSQL - 索引详解

一 什么是索引&#xff1f; 实际上在上一篇介绍MYSQL的体系结构当中我们稍微提及了一点&#xff0c;在引擎层&#xff0c;我们提到不同的引擎对应的索引的实现方式&#xff0c;选择是不一样的。 简单理解&#xff0c;索引&#xff08;index&#xff09;其实就是一种帮助MYSQL高…...

AI智能体Prompt预设词指令大全+GPTs应用使用

AI智能体使用指南 直接复制在AI工具助手中使用&#xff08;提问前&#xff09; 可前往SparkAi系统用户官网进行直接使用 SparkAI系统介绍文档&#xff1a;Docs 常见AI智能体GPTs应用大全在线使用 自定义添加制作AI智能体进行使用&#xff1a; 文章润色器 你是一位具有敏锐洞察…...

美团一面,有点难度

前几天分享过一篇训练营的朋友在阿里的一面面经&#xff0c;挺简单的她也是很轻松的过了&#xff0c;感兴趣的可以看一下我之前发的文章。 今天要分享的还是她的面经&#xff0c;美团的一面&#xff0c;感觉比阿里的难一些&#xff0c;各位观众老爷你怎么看&#xff1f; 自我介…...

axios取消请求

Axios 使用 cancel token 取消请求 1、先在axios请求中加上cancelToken import request from ../utils/request // 配置过的Axios 对象 import axios from axios export function getDetail(params, that) { return request({url: /api/indexlineage/detail, method: get,par…...