docker部署elasticsearch8.x

docker部署elasticsearch8.x

  • 提示
  • 1 注意版本差别
    • 1.1 docker修改配置
      • 1.1.2 docker使用vim报命令不存在的解决办法
      • 1.1.3 docker 容器内报错 E: List directory /var/lib/apt/lists/partial is missing. - Acquire ( : No such file or directory) 或者其他权限 PermissionError: [Errno 13] Permission denied:
  • 2 开放端口
  • 3 docker创建网络
  • 4 docker部署elasticsearch单机版
    • 4.1 创建存储elasticsearch配置的目录
    • 4.2 创建临时es节点
    • 4.3 拷贝es配置
    • 4.4 创建真实的es节点
    • 4.5 浏览器访问ip:9200
      • 4.5.1 关闭安全验证
      • 4.5.2 将https改为http
      • 4.5.3 重置es密码
    • 4.6 es添加其他用户
      • 4.6.1 添加kibana_system用户
      • 4.6.2 添加logstash用户
      • 4.6.3 重置用户密码
  • 5 kibana
    • 5.1 创建存储kibana配置的目录
    • 5.2 创建临时kibana节点
    • 5.3 拷贝kibana配置
    • 5.4 创建真实kibana节点
    • 5.5 加入es登录的账号密码
    • 5.6 Dev Tools
  • 6 安装IK分词器
    • 6.1 在线安装ik插件(较慢)
    • 6.2 离线安装ik插件(推荐)
    • 6.3 测试
  • 7 扩展词词典、停用词词典
    • 7.1 扩展词词典
    • 7.2 停用词词典
  • 8 部署docker-compose
    • 8.1 dockr-compose命令
  • 9 部署es集群
    • 9.1 编写docker-compose文件
    • 9.2 修改linux系统权限
    • 9.3 docker-compose部署es集群
    • 9.4 集群状态监控

提示

如果虚拟机切换了网络,需要重启docker服务:systemctl restart docker

1 注意版本差别

elasticsearch8.x默认开启了ssl认证,导致无法访问9200端口
解决办法:elasticsearch.yml中的配置项xpack.security.enabled把true改为false,或者访问地址前加https://

1.1 docker修改配置

1.1.2 docker使用vim报命令不存在的解决办法

apt-get update
apt-get install vim

1.1.3 docker 容器内报错 E: List directory /var/lib/apt/lists/partial is missing. - Acquire ( : No such file or directory) 或者其他权限 PermissionError: [Errno 13] Permission denied:

docker exec -it 容器id /bin/bash
改为
docker exec -u 0 -it 容器id /bin/bash

2 开放端口

  1. 开放服务器端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent
  1. 重启防火墙
firewall-cmd --reload
  1. 查询有哪些端口是开启的
firewall-cmd --list-port

3 docker创建网络

因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:

docker network create es-net

4 docker部署elasticsearch单机版

4.1 创建存储elasticsearch配置的目录

/opt/soft/docker/elasticsearch/elastic

4.2 创建临时es节点

创建临时节点用于后续将es里的配置拷贝到/opt/soft/docker/elasticsearch/elastic

docker run -d \--name es \-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \-e "discovery.type=single-node" \-p 9200:9200 \-p 9300:9300 \
elasticsearch:8.11.0

4.3 拷贝es配置

将临时es节点中的配置拷贝到/opt/soft/docker/elasticsearch/elastic中

docker cp -a es:/usr/share/elasticsearch/config/ /opt/soft/docker/elasticsearch/elastic
docker cp -a es:/usr/share/elasticsearch/data/ /opt/soft/docker/elasticsearch/elastic
docker cp -a es:/usr/share/elasticsearch/logs/ /opt/soft/docker/elasticsearch/elastic
docker cp -a es:/usr/share/elasticsearch/plugins/ /opt/soft/docker/elasticsearch/elastic

前面是es容器中的地址,后面是物理服务器上的地址。

拷贝后将临时es节点的容器删除。

4.4 创建真实的es节点

创建真实的es节点,并将物理节点上的配置映射到容器内。

docker run -d \--name es \-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \-e "discovery.type=single-node" \-v /opt/soft/docker/elasticsearch/elastic/config/:/usr/share/elasticsearch/config \-v /opt/soft/docker/elasticsearch/elastic/data:/usr/share/elasticsearch/data \-v /opt/soft/docker/elasticsearch/elastic/logs:/usr/share/elasticsearch/logs \-v /opt/soft/docker/elasticsearch/elastic/plugins:/usr/share/elasticsearch/plugins \--privileged \--network es-net \-p 9200:9200 \-p 9300:9300 \
elasticsearch:8.11.0

命令解释

  • -e "cluster.name=es-docker-cluster":设置集群名称
  • -e "http.host=0.0.0.0":监听的地址,可以外网访问
  • -e "ES_JAVA_OPTS=-Xms512m -Xmx512m":内存大小
  • -e "discovery.type=single-node":非集群模式
  • -v es-data:/opt/soft/docker/elasticsearch/elastic/data:挂载逻辑卷,绑定到es的数据目录
  • -v es-logs:/opt/soft/docker/elasticsearch/elastic/logs:挂载逻辑卷,绑定到es的日志目录
  • -v es-plugins:/opt/soft/docker/elasticsearch/elastic/plugins:挂载逻辑卷,绑定到es的插件目录
  • --privileged:授予逻辑卷访问权
  • --network es-net:加入一个名为es-net的网络中
  • -p 9200:9200:端口映射配置

4.5 浏览器访问ip:9200

因为elasticsearch8.x默认开启了ssl认证,导致无法通过http协议访问9200端口。
解决办法:elasticsearch.yml中的配置项xpack.security.enabled把true改为false,或者访问地址前加https://

4.5.1 关闭安全验证

/opt/soft/docker/elasticsearch/elastic/config修改elasticsearch.yml中的配置项xpack.security.enabled把true改为false即可,然后重启容器。

{"name" : "3e3f8ad3b0f4","cluster_name" : "docker-cluster","cluster_uuid" : "0Aacm9CyQw-CFKp3uJ7Yjg","version" : {"number" : "8.11.0","build_flavor" : "default","build_type" : "docker","build_hash" : "d9ec3fa628c7b0ba3d25692e277ba26814820b20","build_date" : "2023-11-04T10:04:57.184859352Z","build_snapshot" : false,"lucene_version" : "9.8.0","minimum_wire_compatibility_version" : "7.17.0","minimum_index_compatibility_version" : "7.0.0"},"tagline" : "You Know, for Search"
}

4.5.2 将https改为http

/opt/soft/docker/elasticsearch/elastic/config修改elasticsearch.yml中的配置项xpack.security.http.ssl.enabled把true改为false即可,然后重启容器。

在这里插入图片描述
用户名:elastic
密码:

4.5.3 重置es密码

  1. 进入es容器
docker exec -it 容器id /bin/bash
或【有root权限】
docker exec -u 0 -it 容器id /bin/bash
  1. 重置es密码
./bin/elasticsearch-reset-password -u elastic
  1. 重置结果
This tool will reset the password of the [elastic] user to an autogenerated value.
The password will be printed in the console.
Please confirm that you would like to continue [y/N]yPassword for the [elastic] user successfully reset.
New value: g=dCSssbBYwal14pTPRf

es账号:elastic
密码:g=dCSssbBYwal14pTPRf

4.6 es添加其他用户

  1. 进入es容器
docker exec -it 容器id /bin/bash
或【有root权限】
docker exec -u 0 -it 容器id /bin/bash

4.6.1 添加kibana_system用户

  1. 添加kibana_system用户
./bin/elasticsearch-users useradd zhyqin

输入密码:kibana123456
2. zhyqin赋角色权限: 这一步要执行,不然无法访问

./bin/elasticsearch-users roles -a superuser zhyqin ( 超级管理员角色)
./bin/elasticsearch-users roles -a kibana_system zhyqin (kibana的用户角色 )

4.6.2 添加logstash用户

  1. 添加logstash用户
./bin/elasticsearch-users useradd logstash_zhyqin

输入密码:logstash123456

  1. logstash_zhyqin赋角色权限: 这一步要执行,不然无法访问
./bin/elasticsearch-users roles -a superuser logstash_zhyqin
./bin/elasticsearch-users roles -a logstash_system logstash_zhyqin

4.6.3 重置用户密码

./bin/elasticsearch-reset-password -u zhyqin
./bin/elasticsearch-reset-password -u logstash_zhyqin

5 kibana

5.1 创建存储kibana配置的目录

/opt/soft/docker/elasticsearch/kibana/

5.2 创建临时kibana节点

创建临时节点用于后续将kibana里的配置拷贝到/opt/soft/docker/elasticsearch/kibana

docker run -d \
--name kibana \
-p 5601:5601  \
kibana:8.11.0

5.3 拷贝kibana配置

将临时kibana节点中的配置拷贝到/opt/soft/docker/elasticsearch/kibana中

docker cp -a kibana:/usr/share/kibana/config/ /opt/soft/docker/elasticsearch/kibana

前面是kibana容器中的地址,后面是物理服务器上的地址。

拷贝后将临时kibana节点的容器删除。

5.4 创建真实kibana节点

kibana可以给我们提供一个elasticsearch的可视化界面,便于我们学习。
注意kibana的版本最好和es保持一致。

docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
-v /opt/soft/docker/elasticsearch/kibana/config:/usr/share/kibana/config \
--network=es-net \
-p 5601:5601  \
kibana:8.11.0
  • --network es-net:加入一个名为es-net的网络中,与elasticsearch在同一个网络中
  • -e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
  • -p 5601:5601:端口映射配置

kibana启动一般比较慢,需要多等待一会,然后在浏览器输入地址访问:ip:5601,即可看到结果如下图:
在这里插入图片描述

5.5 加入es登录的账号密码

去/opt/soft/docker/elasticsearch/kibana/config修改kibana.yml中添加账号密码。

注意:这里不能直接使用elastic账号密码,因为这个权限太高,kibana默认禁止使用。

#
# ** THIS IS AN AUTO-GENERATED FILE **
## Default Kibana configuration for docker target
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
# es登录账号
elasticsearch.username: zhyqin
# es登录密码
elasticsearch.password: kibana123456
# 关闭浏览器端配置
xpack.screenshotting.browser.chromium.disableSandbox: truemonitoring.ui.container.elasticsearch.enabled: true

然后重启容器。

5.6 Dev Tools

kibana中提供了一个Dev Tools界面:这个界面中可以编写DSL来操作elasticsearch。并且对DSL语句有自动补全功能。

Dev Tools在左侧,侧边栏的最下边。
在这里插入图片描述

6 安装IK分词器

6.1 在线安装ik插件(较慢)

# 进入容器内部
docker exec -it es/bin/bash# 在线下载并安装
./bin/elasticsearch-plugin  install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.11.0/elasticsearch-analysis-ik-8.11.0.zip#退出
exit
#重启容器
docker restart es

6.2 离线安装ik插件(推荐)

  1. 解压缩分词器安装包
    去GitHub下载ik分词器并解压缩,重命名为ik。elasticsearch-analysis-ik-8.11.0.zip下载地址。
  2. 上传到es容器的plugins数据卷中,也就是:
    /opt/soft/docker/elasticsearch/elastic/plugins/,注意plugins目录只能保留ik,不要留存ik.zip,否则会报错。
  3. 重启容器
    # 重启容器
    docker restart es
    # 查看es日志
    docker logs -f es
    

6.3 测试

IK分词器包含两种模式:
- ik_smart:最少切分
- ik_max_word:最细切分

GET /_analyze{"text": "强哥最棒","analyzer": "ik_max_word"}

结果:

{"tokens": [{"token": "强","start_offset": 0,"end_offset": 1,"type": "CN_CHAR","position": 0},{"token": "哥","start_offset": 1,"end_offset": 2,"type": "CN_CHAR","position": 1},{"token": "最","start_offset": 2,"end_offset": 3,"type": "CN_CHAR","position": 2},{"token": "棒","start_offset": 3,"end_offset": 4,"type": "CN_CHAR","position": 3}]
}

在这里插入图片描述

7 扩展词词典、停用词词典

7.1 扩展词词典

随着互联网的发展,“造词运动”也越发的频繁。出现了很多新的词语,在原有的词汇列表中并不存在。比如:“奥力给”,“字节跳动” 等。

所以我们的词汇也需要不断的更新,IK分词器提供了扩展词汇的功能。

  1. 打开IK分词器config目录
  2. 在IKAnalyzer.cfg.xml配置文件内容添加:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties><comment>IK Analyzer 扩展配置</comment><!--用户可以在这里配置自己的扩展字典 --><entry key="ext_dict">ext.dic</entry><!--用户可以在这里配置自己的扩展停止词字典--><entry key="ext_stopwords"></entry><!--用户可以在这里配置远程扩展字典 --><!-- <entry key="remote_ext_dict">words_location</entry> --><!--用户可以在这里配置远程扩展停止词字典--><!-- <entry key="remote_ext_stopwords">words_location</entry> -->
    </properties>
    
  3. 新建一个ext.dic,可以参考config目录下复制一个配置文件进行修改
    字节跳动
    奥力给
    
  4. 重启elasticsearch
docker restart es# 查看 日志
docker logs -f es

日志中已经成功加载ext.dic配置文件。

  1. 测试效果
    GET /_analyze
    {"analyzer": "ik_max_word","text": "字节跳动是全球厉害的独角兽企业,奥力给!"
    }
    
    在这里插入图片描述

7.2 停用词词典

在互联网项目中,在网络间传输的速度很快,所以很多语言是不允许在网络上传递的,如:关于宗教、政治等敏感词语,那么我们在搜索时也应该忽略当前词汇。

IK分词器也提供了强大的停用词功能,让我们在索引时就直接忽略当前的停用词汇表中的内容。

  1. IKAnalyzer.cfg.xml配置文件内容添加:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties><comment>IK Analyzer 扩展配置</comment><!--用户可以在这里配置自己的扩展字典 --><entry key="ext_dict">ext.dic</entry><!--用户可以在这里配置自己的扩展停止词字典--><entry key="ext_stopwords">stopword.dic</entry><!--用户可以在这里配置远程扩展字典 --><!-- <entry key="remote_ext_dict">words_location</entry> --><!--用户可以在这里配置远程扩展停止词字典--><!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
  1. 在stopword.dic添加停用词
    吴某凡
    
  2. 重启elasticsearch
    # 重启服务
    docker restart es# 查看 日志
    docker logs -f es
    

日志中已经成功加载stopword.dic配置文件。
4. 测试效果:

GET /_analyze
{"analyzer": "ik_max_word","text": "吴某凡判多久"
}

在这里插入图片描述

8 部署docker-compose

  1. cd到/usr/local/bin/路径
  2. 从github上下载二进制文件
    wget https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-linux-x86_64
    
  3. 重新命名
    mv docker-compose-linux-x86_64 docker-compose
    
  4. 添加可执行权限
    chmod +x docker-compose
    

8.1 dockr-compose命令

  1. 部署一个Compose应用
    docker-compose up
    
    默认情况下该命令会读取名为docker-compose.ymldocker-compose.yaml的文件,也可以使用-f指定其他文件名。通常情况下,会使用-d参数令应用在后台启动。
  2. 停止Compose应用相关的所有容器,但不会删除它们
    docker-compose stop
    
    被停止的应用可以很容易地通过docker-compose restart命令重新启动。
  3. 删除已停止的Compose应用
    docker-compose rm
    
    删除容器和网络,但是不会删除卷和镜像。
  4. 重启已停止的Compose应用
    docker-compose restart
    
    如果在停止该应用后对其进行了变更,那么变更的内容不会反映在重启后的应用中,这时需要重新部署应用使变更生效。
  5. 列出Compose应用中的各个容器
    docker-compose ps
    
    输出内容包括当前状态、容器运行的命令以及网络端口。
  6. 停止并删除运行中的Compose应用
    docker-compose down
    
    删除容器和网络,但是不会删除卷和镜像。

9 部署es集群

参考1:搜索引擎elasticsearch :安装elasticsearch (包含安装组件kibana、IK分词器、部署es集群)
参考2:docker-compose快速部署elasticsearch-8.x集群+kibana

部署es集群可以直接使用docker-compose来完成,不过要求Linux虚拟机至少有4G的内存空间。

9.1 编写docker-compose文件

首先编写一个docker-compose文件,内容如下:

version: '3'
services:es01:image: elasticsearch:8.11.0container_name: es01environment:- node.name=es01- cluster.name=es-docker-cluster- discovery.seed_hosts=es02,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- xpack.security.enabled=false- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data01:/usr/share/elasticsearch/dataports:- 9201:9200networks:- elastices02:image: elasticsearch:8.11.0container_name: es02environment:- node.name=es02- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- xpack.security.enabled=false- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data02:/usr/share/elasticsearch/dataports:- 9202:9200networks:- elastices03:image: elasticsearch:8.11.0container_name: es03environment:- node.name=es03- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es02- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- xpack.security.enabled=false- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data03:/usr/share/elasticsearch/dataports:- 9203:9200networks:- elastic
volumes:data01:driver: localdata02:driver: localdata03:driver: localnetworks:elastic:driver: bridge

注意事项:

  1. 从yml文件中可以看到相关端口,需要防火墙开放9201、9202、9203端口
    es01端口9201
    es02端口9202
    es03端口9203
    
  2. 此配置关闭了安全验证,也就是- xpack.security.enabled=false,否则会报如下错误
Transport SSL must be enabled if security is enabled. Please set [xpack.security.transport.ssl.enabled] to [true] or disable security by setting [xpack.security.enabled] to [false]; 
  1. 或者将- xpack.security.enabled=false替换为- xpack.security.transport.ssl.enabled=true(暂未实践)
    需要加入ssl证书相关配置。(docker-compose快速部署elasticsearch-8.x集群+kibana)
  2. 上传到/opt/soft/docker-compose/
    在这里插入图片描述

9.2 修改linux系统权限

  1. es运行还需要修改一些linux系统权限,修改/etc/sysctl.conf文件。
    vim /etc/sysctl.conf
    
    添加下面的内容:
    vm.max_map_count=262144
    
    否则在部署时会报:
    node validation exception\n[2] bootstrap checks failed. You must address the points described in the following [2] lines before starting Elasticsearch. For more information see [https://www.elastic.co/guide/en/elasticsearch/reference/8.11/bootstrap-checks.html]\nbootstrap check failure [1] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144];
    
  2. 让配置生效:
    sysctl -p
    
  3. 重启虚拟机和docker
    systemctl start docker
    

9.3 docker-compose部署es集群

  1. 部署es集群

    docker-compose up
    或
    docker-compose up -d(推荐)
    

    部署结果:

    [root@standalone docker-compose]# docker-compose up -d
    [+] Building 0.0s (0/0)                                                                                          docker:default
    [+] Running 3/3✔ Container es02  Started                                                                                                 0.0s✔ Container es03  Started                                                                                                 0.1s✔ Container es01  Started                                                                                                 0.0s
    [root@standalone docker-compose]#
    
  2. 查看每个节点的日志:

docker logs -f es01
docker logs -f es02
docker logs -f es03

9.4 集群状态监控

这里推荐使用cerebro来监控es集群状态,官方网址:https://github.com/lmenezes/cerebro

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/203500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Delphi】一个函数实现ios,android震动功能 Vibrate(包括3D Touch 中 Peek 震动等)

一、前言 我们在开发移动端APP的时候&#xff0c;有时可能需要APP能够提供震动功能&#xff0c;以便提醒操作者&#xff0c;特别是ios提供的3D Touch触感功能&#xff0c;操作者操作时会有触感震动&#xff0c;给操作者的感觉很友好。那么&#xff0c;在Delphi的移动端FMX开发中…

团建策划信息展示服务预约小程序效果如何

团建是中大型企业商家每年举办的员工活动&#xff0c;其形式多样化、具备全部参与的娱乐性。但在实际策划流程及内容时&#xff0c;部分公司便会难以入手&#xff0c;术业有专攻&#xff0c;这个时候团建策划公司便会发挥效果。 如拓展训练、露营、运动会、体育竞技等往往更具…

【算法】算法题-20231207

这里写目录标题 一、共同路径二、数字列表排序三、给定两个整数 n 和 k&#xff0c;返回 1 … n 中所有可能的 k 个数的组合。 一、共同路径 给你一个完整文件名组成的列表&#xff0c;请编写一个函数&#xff0c;返回他们的共同目录路径。 # nums[/hogwarts/assets/style.cs…

算法通关村第十七关-黄金挑战跳跃问题

大家好我是苏麟 , 今天说说跳跃问题 . 跳跃游戏 描述 : 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff…

HBase-架构与设计

HBase架构与设计 一、背景二、HBase概述1.设计特点2.适用场景2.1 海量数据2.2 稀疏数据2.3 多版本数据2.4 半结构或者非结构化数据 三、数据模型1.RowKey2.Column Family3.TimeStamp 四、HBase架构图1.Client2.Zookeeper3.HMaster4.HRegionServer5.HRegion6.Store7.StoreFile8.…

Elasticsearch:什么是机器学习?

机器学习定义 机器学习 (ML) 是人工智能 (AI) 的一个分支&#xff0c;专注于使用数据和算法来模仿人类的学习方式&#xff0c;并随着时间的推移逐渐提高准确性。 计算机科学家和人工智能创新者 Arthur Samuel 在 20 世纪 50 年代首次将其定义为 “赋予计算机无需明确编程即可学…

【基于openGauss5.0.0简单使用DBMind】

基于openGauss5.0.0简单使用DBMind 一、环境说明二、初始化tpch测试数据三、使用DBMind索引推荐功能四、使用DBMind实现SQL优化功能 一、环境说明 虚拟机&#xff1a;virtualbox操作系统&#xff1a;openEuler 20.03 TLS数据库&#xff1a;openGauss-5.0.0DBMind&#xff1a;d…

2022年第十一届数学建模国际赛小美赛A题翼龙如何飞行解题全过程文档及程序

2022年第十一届数学建模国际赛小美赛 A题 翼龙如何飞行 原题再现&#xff1a; 翼龙是翼龙目中一个已灭绝的飞行爬行动物分支。它们存在于中生代的大部分时期&#xff1a;从三叠纪晚期到白垩纪末期。翼龙是已知最早进化出动力飞行的脊椎动物。它们的翅膀是由皮肤、肌肉和其他组…

云服务器与nas实现在冷热资源访问,nginx代理

在实际项目中&#xff0c;我们的文件存储是一个必不可少的环节&#xff0c;本博主了解到现在的存储方案有 购买纯系统的云服务器&#xff0c;自己安装个mino,再使用nginx代理给web使用购买OSS服务&#xff0c;现在有云厂商都有提供&#xff0c;储存价格也挺便宜的&#xff0c;…

13款趣味性不错(炫酷)的前端动画特效及源码(预览获取)分享(附源码)

文字激光打印特效 基于canvas实现的动画特效&#xff0c;你既可以设置初始的打印文字也可以在下方输入文字可实现激光字体打印&#xff0c;精简易用。 预览获取 核心代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&q…

生物动力葡萄酒的快速指南

虽然我们大多数人都熟悉有机酿酒和农业&#xff0c;但围绕生物动力学仍有许多困惑和神秘。无论你是否完全陌生&#xff0c;或者你已经听到一些小道消息&#xff0c;我们在这里揭开这种独特的葡萄酒生产方法的神秘面纱。 生物动力葡萄酒就是一个更全面的有机酿酒过程&#xff0c…

Ros智行mini,opencv,Gmapping建图,自主导航auto_slam,人脸识别,语音控制

功能 一、Gmapping建图 二、自主导航 起始点 、终点 三、人脸识别 四、语音控制 完成任务: 机器人先建图 建完图后给出目标点&#xff0c;机器人就可以完成调用自主导航走到目标点&#xff0c;期间会调用激光雷达扫描局部环境来进行自主避障&#xff0c;到达终点后进行语音…

HCIP考试实验

实验更新中&#xff0c;部分配置解析与分析正在完善中........... 实验拓扑图 实验要求 要求 1、该拓扑为公司网络&#xff0c;其中包括公司总部、公司分部以及公司骨干网&#xff0c;不包含运营商公网部分。 2、设备名称均使用拓扑上名称改名&#xff0c;并且区分大小写。 3…

持续集成交付CICD:Jenkins使用GitLab共享库实现自动更新前后端项目质量配置

目录 一、实验 1.Jenkins使用GitLab共享库实现自动更新后端项目质量配置 2.Jenkins使用GitLab共享库实现自动更新前端项目质量配置 二、问题 1.Sonarqube如何添加自定义质量阈 一、实验 1.Jenkins使用GitLab共享库实现自动更新后端项目质量配置 (1)修改GitLab的Sonar.gr…

bert其他内容个人记录

Pre-training a seq2seq model BERT只是一个预训练Encoder&#xff0c;有没有办法预训练Seq2Seq模型的Decoder&#xff1f; 在一个transformer的模型中&#xff0c;将输入的序列损坏&#xff0c;然后Decoder输出句子被破坏前的结果&#xff0c;训练这个模型实际上是预训练一个…

【LeetCode刷题】-- 79.单词搜索

79.单词搜索 方法&#xff1a;使用回溯 使用dfs函数表示判断以网格的(i.j)位置出发&#xff0c;能否搜索到word(k)&#xff0c;其中word(k)表示字符串word从第k个字符开始的后缀子串&#xff0c;如果能搜索到&#xff0c;返回true,反之返回false 如果board[i][j]≠word[k]&am…

Netty线程模型

Netty线程模型 Netty中两个线程池, 分别是BossGroup和WorkGroup, 线程模型如下图所示&#xff1a; 模型解释&#xff1a; Netty 抽象出两组线程池BossGroup和WorkerGroup&#xff0c;BossGroup专门负责接收客户端的连接, WorkerGroup专门负责网络的读写BossGroup和WorkerGr…

vue2 echarts饼状图,柱状图,折线图,简单封装以及使用

vue2 echarts饼状图&#xff0c;柱状图&#xff0c;折线图&#xff0c;简单封装以及使用 1. 直接上代码&#xff08;复制可直接用&#xff0c;请根据自己的文件修改引用地址&#xff0c;图表只是简单封装&#xff0c;可根据自身功能&#xff0c;进行进一步配置。&#xff09; …

springcloud多环境部署打包 - maven 篇

背景 在使用 springboot 和sringcloudnacos开发项目过程中&#xff0c;会有多种环境切换&#xff0c;例如开发环境&#xff0c;测试环境&#xff0c;演示环境&#xff0c;生产环境等&#xff0c;我们通过建立多个 yml 文件结合 profiles.active 属性进行环境指定&#xff0c;但…

k8s 安装 Longhorn

Longhorn 的 helm 模板官网地址&#xff1a;Longhorn 加入仓库 helm repo add longhorn https://charts.longhorn.iohelm repo update开始部署 helm install longhorn longhorn/longhorn --namespace longhorn-system --create-namespace --version 1.5.3检查pod运行状态是…