ElasticSearch-集群
本篇文章依据ElasticSearch权威指南进行实操和记录
1,空集群
即不包含任何节点的集群
集群大多数分为两类,主节点和数据节点
主节点
-
职责:主节点负责管理集群的状态,例如分配分片、添加和删除节点、监控节点故障等。它们不直接处理搜索或数据存储任务,但它们对于集群的健康和性能至关重要。
-
选举过程:在Elasticsearch中,主节点是通过选举产生的。默认情况下,集群中的任何节点都可以成为主节点候选者。这意味着任何一个节点都可以发起成为主节点的请求,然后与其他节点竞争以决定谁是新的主节点。
-
资源需求:主节点通常不需要太多的资源来处理其任务,因为它不直接处理数据。但是,它需要稳定的网络连接和足够的CPU来处理集群状态管理任务。
数据节点
-
职责:数据节点负责存储数据、搜索数据和处理与数据相关的操作,如索引和搜索请求。数据节点是执行实际数据存储和检索任务的地方。
-
资源需求:数据节点需要大量的资源来存储和处理数据。这包括大量的内存(用于缓存)、磁盘空间(用于存储数据)以及CPU资源(用于处理搜索和聚合查询)。
-
配置:在Elasticsearch中,默认情况下,每个节点都是数据节点。但是,你可以通过配置来指定哪些节点应该仅作为主节点或仅作为数据节点运行
空集群即启动节点且不包含任何数据和索引,由于集群中必有一个主节点,所以空集群比定为主节点
2,集群健康
集群健康是集群监控系统数据中的其中一项,而且最为重要
输入如下指令
GET /_cluster/health
返回
可以看到status返回了yellow
status状态
status指示着当前集群在总体上是否工作正常。包括三种颜色,green
:所有的主分片和副本分片都正常运行,yellow
:所有的主分片都正常运行,但不是所有的副本分片都正常运行,red
:有主分片没能正常运行。
全部字段含义
{"cluster_name": "elasticsearch", //集群名称"status": "green", //集群状态 "timed_out": false, //检查是否因超时中断,false表示检查完整完成"number_of_nodes": 2, //集群中节点总数(当前为2个)"number_of_data_nodes": 2, //具备数据存储功能的节点数量(当前为2个)"active_primary_shards": 42, //活跃的主分片数(42个)"active_shards": 84,//总分片数(含副本,84个)"relocating_shards": 0, //正在迁移的分片数(0表示无迁移)"initializing_shards": 0, //初始化中的分片数"unassigned_shards": 0, //未分配的分片数"unassigned_primary_shards": 0,//未分配的主分片数"delayed_unassigned_shards": 0, //延迟未分配的分片数"number_of_pending_tasks": 0, //待处理任务数"number_of_in_flight_fetch": 0, //进行中的分片数据获取操作数"task_max_waiting_in_queue_millis": 0, //任务队列中最长等待时间的毫秒数"active_shards_percent_as_number": 100 //活跃分片百分比,100表示全部分片正常
}
3,添加索引
索引之前这篇文章简单介绍过ElasticSeach快速上手笔记-入门篇-CSDN博客
es的索引指的是存储相关数据的数据结构,可以类比成mysql的数据表,es索引会存储不同的数据结构key和value的关系
分片是一个 Lucene 的实例,以及它本身就是一个完整的搜索引擎。 我们的文档被存储和索引到分片内,但是应用程序是直接与索引而不是与分片进行交互
分片可以把数据分散存储在es的集群中
同样分片也分为主分片和副分片
主分片:每个索引被划分成若干个主分片,每个主分片都是一个独立的索引。主分片负责处理所有的读和写操作,主分片的数量在索引创建时确定,之后不能更改,主分片是数据存储的基本单位,每个主分片存储索引的一部分数据
副分片:副本分片是主分片的完整复制,位于不同的节点上,副本的数量可以在索引运行时动态调整,副本分片用于提高系统的可用性和容错性。如果某个节点故障,系统仍然能够通过副本分片提供服务
新建索引
接下来参考权威指南在空集群新建一个索引
PUT /blogs
{"settings" : {"number_of_shards" : 3,"number_of_replicas" : 1}
}
返回
可以看到成功新建
再次查看集群健康状态
可以看到status=yellow,集群状态主分片全部正常运行,但是副分片未全部正常,
unassigned_shards=5,这里处于未被分配状态的分片数量有5个,除了最开始的2个,刚才又新建了2个,所以有5个
注意分片要不只存储原始数据,要不只存储副本数量,无需既存储原始数据又存储副本数据,这样会在数据丢失的时候原始数据和副本全部丢失
4,添加故障转移
当前咱的集群只有一个节点,这样当前节点宕机等异常的时候会导致数据丢失
所以可以部署新的节点来解决这个问题
准备新节点
首先复制一份es文件
同时把data文件删除掉
修改elasticsearch.yml文件
cluster.name: elasticsearchnode.name: node-1
http.port: 9303
cluster.name:集群名字,确认两个节点保持相同
node.name:节点名称,不同的节点名称唯一
http.port:端口号,各个节点均不同
启动新节点
./bin/elasticsearch
进入es文件下 和之前启动节点相同执行以上指令
kibana查看节点数量
输入指令
GET /_cat/nodes?v
返回
可以看到当前集群下有两个节点
查看集群健康状态
GET /_cluster/health
返回
可以看到这个时候的status=green了 表明所有的节点都在正常运行
同时unassigned_shards的数量变成了0
表明所有的分片都分配好了
分片分布情况
节点一分片数量3个,节点二数量3个
可以看到两个节点的分片是均匀分布的
5,水平扩容
在了解水平扩容之前,先了解下扩容有几类
水平扩容:水平扩容是指增加更多的节点到集群中,而不是增加单个节点的资源。这种方式可以显著提高系统的容量和处理能力
垂直扩展:垂直扩展是指增加单个节点的资源,比如增加CPU、内存或者存储空间。这种方式通常通过升级单个节点的硬件来实现。
当开发的项目量级逐渐增加,需要的存储的数据越来越多,只有两个节点是远远不够的,所以需进行水平扩容
增加节点3
参考之前部署节点部署节点3
可以看到节点3成功启动了
重新查看当前集群的节点情况
GET /_cat/nodes?v
返回
可以看到这个时候多了节点node-3,共有3个节点
分片分布情况
node-1
node-1的分片有2个
node-3
node-3的分片有2个
默认节点
默认节点同样有2个
作用
之前每个节点拥有3个分片,现在每个节点拥有2个分片
每个节点的硬件资源(CPU, RAM, I/O)将被更少的分片所共享,每个分片的性能将会得到提升
现在拥有6个分片(3个主分片和3个副本分片)的索引可以最大扩容6个节点,每个节点上存在一个分片,并且每个分片拥有所在节点的全部资源
继续扩容
权威指南里指出当需要的节点数量超过了当前的分片数量的时候,该咋办
这时候可以通过增加分片的数量进而进行水平扩容
增加分片可以选择主分片和副本分片,但主分片在索引新建的时候已确定了,但副本分片可以进行读操作和搜索操作可以动态修改
修改副本分片数量为2个
PUT /blogs/_settings
{"number_of_replicas" : 2
}
返回
再次查看分片分布情况
node-1
node-3
默认节点
这个时候分片数量扩容到了9个,因此节点数量可以扩容到9个
注意这个时候咱只是新建了3个节点,没有提高性能,单分片能够从节点中获取的资源更少,所以需拿到更好的水平得把节点数量扩容到分片数量保持相同
当然现在在不增加节点的情况下,可以保证部分节点宕机的情况下,数据不会丢失
6,应对故障
现在来测试下宕机的情况下,节点之间的处理逻辑
查看节点情况
这个时候关闭主节点之后,而集群中必定有个主节点,所以会新选举出来一个新的主节点
同时主分片会丢失,但不会影响es的正常工作
同时这个主分片对应的副本分片会变成主分片
指令
查看节点的id
GET /_cat/nodes?v&h=id,name,ip,node.role,master
返回
id name ip node.role master
O3QH local 127.0.0.1 cdfhilmrstw *
Y-Pa node-2 127.0.0.1 cdfhilmrstw -
qqxZ node-3 127.0.0.1 cdfhilmrstw -
这个时候主节点为local
其它的两个节点为从节点
原节点主副分片分配情况
index shard prirep state docs store dataset ip node
blogs 0 r STARTED 0 249b 249b 127.0.0.1 node-2
blogs 0 p STARTED 0 249b 249b 127.0.0.1 node-3
blogs 0 r STARTED 0 249b 249b 127.0.0.1 local
blogs 1 r STARTED 0 249b 249b 127.0.0.1 node-2
blogs 1 r STARTED 0 249b 249b 127.0.0.1 node-3
blogs 1 p STARTED 0 249b 249b 127.0.0.1 local
blogs 2 p STARTED 0 249b 249b 127.0.0.1 node-2
blogs 2 r STARTED 0 249b 249b 127.0.0.1 node-3
blogs 2 r STARTED 0 249b 249b 127.0.0.1 local
主节点拥有 1个主节点p1、2个副分片r0和r2
从节点node-2 拥有r0、r1、p2
从节点node-3拥有 p0、r1、r2
删除主节点
首先看主节点的PID
GET /_nodes/process
返回
可以看到PID为74142
关闭该节点
kill -9 74142
重新启动节点1
可以看到主节点变成了节点3
id name ip node.role port master
qqxZ node-3 127.0.0.1 cdfhilmrstw 9302 *
O3QH local 127.0.0.1 cdfhilmrstw 9300 -
Y-Pa node-2 127.0.0.1 cdfhilmrstw 9301 -
再次关闭节点3
可以看到节点2被选举成为了主节点
当主节点关闭,其余的从节点会选举成为新的主节点
新分片分布情况
node-2分片:p0、p1、p2
节点1:r0、r1、r2
这个时候查看集群健康状态
GET /_cluster/health
返回
可以看到状态status=yellow
由于这个时候关闭了节点3,有3个副本分片没有被分配,但集群仍然会正常运行,由于节点1存储这个所有主分片的副本分片
重新启动节点3
看分片情况
节点1:r0、r1、r2
节点2:p0、p1、p2
节点3:r0、r1、r2
这个时候未分配的副本分片重新分配给了节点3
相关文章:
ElasticSearch-集群
本篇文章依据ElasticSearch权威指南进行实操和记录 1,空集群 即不包含任何节点的集群 集群大多数分为两类,主节点和数据节点 主节点 职责:主节点负责管理集群的状态,例如分配分片、添加和删除节点、监控节点故障等。它们不直接…...
Android开发——原生渲染方案实现 PDF 预览功能
Android开发——原生渲染方案实现 PDF 预览功能 1. 引言2. 原生渲染方案核心设计:从数据到视图3. 混合文档容器:ViewPager2 与适配器设计1. 引言 在移动应用开发中,PDF 预览是文档处理场景的核心需求之一。Android 生态提供了多元化的技术方案,从系统级简版预览到原生渲染…...
Java求职者面试:从Spring Boot到微服务的技术点解析
Java求职者面试:从Spring Boot到微服务的技术点解析 场景:互联网医疗-预约挂号系统 面试官: “小明,我们今天的场景是一个互联网医疗的预约挂号系统。我们需要支持高并发的用户预约操作,同时保证数据一致性和系统的高…...
操作系统听课笔记之进程的概念
引入新的概念,为什么不能叫程序 内存中进程Image实例: stack: 局部变量(函数弹出来没有了) data: 全局变量(共享) 静态变量 heap: malloc分配的内存 从数据结构和算法角度解决问题: 设计相应的数据结构和设计算法 数据结构: 进程PCB 算法:创建进程和进程通信各种操作在线内…...
【基于Spring Boot 的图书购买系统】深度讲解 用户注册的前后端交互,Mapper操作MySQL数据库进行用户持久化
引言 在现代Web应用中,用户注册功能是用户与应用交互的入口。一个高效、安全且用户友好的注册系统不仅能吸引用户,还能为后续功能(如个性化服务)奠定基础。本博客将通过一个实际案例,展示如何使用HTML、JavaScript、j…...
Spark,连接MySQL数据库,添加数据,读取数据
以下是使用 Spark/SparkSQL 连接 MySQL 数据库、添加数据和读取数据的完整示例(需提前准备 MySQL 驱动包): 一、环境准备 1. 下载 MySQL 驱动 - 下载 mysql-connector-java-8.0.33.jar (或对应版本),放…...
ubuntu的虚拟机上的网络图标没有了
非正常的关机导致虚拟机连接xshell连接不上,ping也ping不通。网络的图标也没有了。 记录一下解决步骤 1、重启服务 sudo systemctl restart NetworkManager 2、图标显示 sudo nmcli network off sudo nmcli network on 3、sudo dhclient ens33 //(网卡) …...
Linux系统:ext2文件系统的核心概念和结构
本节重点 块、块组、分区的引入块组的构成inode与inode Table路径解析与路径缓存机制目录与文件名在文件系统中的存储分区的初始化与挂载 一、ext2文件系统 1.1 “块”的引入 在前言部分我们说扇区是磁盘硬件的最小读写单位,通常为512字节,但是在操作…...
Python 装饰器详解
装饰器是 Python 中一种强大的语法特性,它允许在不修改原函数代码的情况下动态地扩展函数的功能。装饰器本质上是一个高阶函数,它接受一个函数作为参数并返回一个新的函数。 基本装饰器 1. 简单装饰器示例 def my_decorator(func):def wrapper():prin…...
Docker配置容器开机自启或服务重启后自启
要将一个 Docker 容器设置为开机自启,你可以使用 docker update 命令或配置 Docker 服务来实现。以下是两种常见的方法: 方法 1:使用 docker update 设置容器自动重启 使用 docker update 设置容器为开机自启 你可以使用以下命令,…...
20250518 黎曼在三维空间中总结的一维二维的规律,推广到高维度合适吗?有没有人提出反对意见
黎曼在三维空间中总结的一维二维的规律,推广到高维度合适吗?有没有人提出反对意见 黎曼几何在数学物理中的广泛应用,尤其是在广义相对论和高维空间理论中,确实是建立在黎曼在三维空间中的推广基础上的。不过,这种推广…...
使用AI 生成PPT 最佳实践方案对比
文章大纲 一、专业AI生成工具(推荐新手)**1. 推荐工具详解****2. 操作流程优化****3. 优势与局限**二、代码生成方案(开发者推荐)**1. Python-pptx进阶用法****2. GitHub推荐**三、混合工作流(平衡效率与定制)**1. 工具链升级****2. 示例Markdown结构**四、网页转换方案(…...
【Docker】Docker Compose方式搭建分布式协调服务(Zookeeper)集群
开发分布式应用时,往往需要高度可靠的分布式协调,Apache ZooKeeper 致力于开发和维护开源服务器,以实现高度可靠的分布式协调。具体内容见zookeeper官网。现代应用往往使用云原生技术进行搭建,如何用Docker搭建Zookeeper集群,这里介绍使用Docker Compose方式搭建分布…...
R for Data Science(3)
R for Data Science以下是关于网页内容的详细笔记: 1. 章节概览 章节主题:数据转换(Data Transformation)核心内容:介绍如何使用 R 中的 dplyr 包进行数据转换,包括对数据框的行、列和组的操作࿰…...
深入浅出Hadoop:大数据时代的“瑞士军刀”
深入浅出Hadoop:大数据时代的“瑞士军刀” 在当今这个数据爆炸的时代,每天产生的数据量已经远超人类的想象。从社交媒体的互动到电商平台的交易记录,从物联网设备的实时监控到科学研究的实验数据,大数据已经成为推动各行各业变革…...
《Python星球日记》 第94天:走近自动化训练平台
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、自动化训练平台简介1. Kubeflow Pipelines2. TensorFlow Extended (TFX) 二…...
MetaMask安装及使用-使用水龙头获取测试币的坑?
常见的异常有: 1.unable to request drip, please try again later. 2.You must hold at least 1 LINK on Ethereum Mainnet to request native tokens. 3.The address provided does not have sufficient historical activity or balance on the Ethereum Mainne…...
软件架构之--论微服务的开发方法1
论微服务的开发方法1 摘要 2023年 2月,本人所在集团公司承接了长三角地区某省渔船图纸电子化审查系统项目开发,该项目旨在为长三角地区渔船建造设计院、以及渔船图纸审查机构提供一个便捷的渔船图纸电子化审查服务平台。在此项目中,我作为项目组成员参与项目的建设工作,并…...
SOLID 面对象设计的五大基本原则
SOLID 原则的价值 原则核心价值解决的问题SRP职责分离,提高内聚性代码臃肿、牵一发而动全身OCP通过扩展而非修改实现变化频繁修改现有代码导致的风险LSP确保子类行为的一致性继承滥用导致的系统不稳定ISP定制化接口,避免依赖冗余接口过大导致的实现负担…...
游戏引擎学习第293天:移动Familiars
回顾并为今天的内容定下基调 我们正在做一款完整的游戏,今天的重点是“移动模式”的正式化处理。目前虽然移动机制大致能运作,但写法相对粗糙,不够严谨,我们希望将其清理得更规范,更可靠一点。 目前脑逻辑࿰…...
《沙尘暴》观影记:当家庭成为人性的修罗场
起初点开《沙尘暴》,不过是想在碎片时间里寻个消遣,毕竟短剧的篇幅显得轻松无负担。未曾想,这看似简短的故事却如一场裹挟着砂砾的风暴,在心底掀起层层涟漪,让我忍不住在家庭教育、人性幽微处反复踱步沉思。 一、风暴眼…...
牛客网NC21989:牛牛学取余
牛客网NC21989:牛牛学取余 📝 题目描述 ⏱️ 限制条件 时间限制:C/C/Rust/Pascal 1秒,其他语言2秒空间限制:C/C/Rust/Pascal 32 M,其他语言64 M输入范围:两个整数,在int范围内 📥…...
王者荣耀游戏测试场景题
如何测试一个新英雄:方法论与实践维度 测试一个新英雄不仅仅是“打打打”,而是一套完整的测试流程,包括设计文档验证、功能验证、数值验证、性能验证、交互验证等。可以从以下多个角度展开: 🔍 1. 方法论维度 ✅ 测试…...
Spring Boot 与 RabbitMQ 的深度集成实践(二)
集成步骤详解 配置 RabbitMQ 连接信息 在 Spring Boot 项目中,通常在application.properties或application.yml文件中配置 RabbitMQ 的连接信息。以application.yml为例,配置如下: spring: rabbitmq: host: localhost port: 5672 usern…...
医疗信息系统安全防护体系的深度构建与理论实践融合
一、医疗数据访问系统的安全挑战与理论基础 1.1 系统架构安全需求分析 在医疗信息系统中,基于身份标识的信息查询功能通常采用分层架构设计,包括表现层、应用层和数据层。根据ISO/IEC 27001信息安全管理体系要求,此类系统需满足数据保密性…...
多模态大语言模型arxiv论文略读(八十)
## MMWorld: Towards Multi-discipline Multi-faceted World Model Evaluation in Videos ➡️ 论文标题:MMWorld: Towards Multi-discipline Multi-faceted World Model Evaluation in Videos ➡️ 论文作者:Xuehai He, Weixi Feng, Kaizhi Zheng, Yuji…...
FFmpeg:多媒体处理的终极利器
FFmpeg详细介绍 1. 定义与基本概述 FFmpeg是一套开源的跨平台多媒体处理工具集,最初由法国程序员Fabrice Bellard于2000年开发,其名称源自“Fast Forward MPEG”,体现了其高效处理MPEG格式的能力。它不仅是命令行工具,还包含多个库和开发套件,支持视频转码、剪辑、合并、…...
【Leetcode】取余/2的幂次方
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。 示例 1: 输入: num 38 输出: 2 解释: 各位相加的过程为: 38 --> 3 8 --> 11 11 --> 1 1 --> 2 由于 2 是一位数,所以返回 2。 …...
程序代码篇---ESP32的数据采集
文章目录 前言 前言 本文简单介绍了ESP32可以怎样采集数据。...
系统架构设计(十三):虚拟机体系结构风格
概念 虚拟机(Virtual Machine)体系结构风格,是指将整个系统抽象为一台“虚拟机”,通过解释或模拟的方式运行应用程序。 它本质上提供了一种“平台中立”的运行环境,典型代表就是 Java 虚拟机(JVM…...
lvs-dr部署
实验准备: 准备4台设备,1台作为客户机,3台作为服务器,服务器中1台作为调度器,2台作为后端真实访问服务器。并关闭所有防火墙与核心防护。 systemctl stop firewalld setenforce 0 实验开始 调度器配置 yum -y ins…...
数据库blog2_数据结构与效率
🌿计算机中的数据————存储结构与逻辑结构 🍂存储结构(物理结构) 定义:存储结构是指数据在计算机存储器中的实际存储方式,由计算机硬件特性决定。它涉及到数据的物理位置和存储顺序。存储结构直接影响数…...
聊天室项目总结
已实现的功能点: 存在的问题: 1.没有实现有含金量的创新功能点 2.太过于依赖工具,不喜欢自己看文章总结对知其然而不知其所以然,自己的理解比较少,懒于去思考 3.太过于依赖他人,自己的想法有点少&#x…...
数据结构:二叉树一文详解
数据结构:二叉树一文详解 前言一、二叉树的基本概念与结构特性1.1 二叉树的定义1.2 二叉树的特殊类型1.3 二叉树的性质 二、二叉树的遍历方式2.1 前序遍历(Pre-order Traversal)2.2 中序遍历(In-order Traversal)2.3 后序遍历&…...
2025年- H28-Lc136- 24.两两交换链表中的节点(链表)---java版
1.题目描述 2.思路 cur指针要先放在虚拟头节点,才能去操作第一个数和第二个数 先判断偶数个节点,再判断奇数个节点,否则会犯空指针异常。 (1)如果节点是偶数个节点,只要满足curr.nextnull,就说…...
ubuntu18.04通过cuda_11.3_xxx.run安装失败,电脑黑屏解决办法
项目场景: ubuntu18.04跑DG-SLAM相关代码,安装lietorch包报错,需要用到GPU。 问题描述 跑代码需要cuda11.3,系统里面有另外一个版本,运行cuda_11.3_xxx.run,同时也选择了driver,安装成功后&am…...
Linux之基础IO
目录 一、理解 "文件" 1.1、狭义理解 1.2、广义理解 1.3、文件操作的归类认知 1.4、系统角度 二、回顾C语言接口 2.1、打开文件 2.2、写文件 2.3、读文件 2.4、stdin & stdout & stderr 2.6、打开文件的方式 三、系统文件I/O 3.1、一种传递标志…...
上位机知识篇---涂鸦智能云平台
文章目录 前言 前言 本文简单介绍了涂鸦智能云平台。...
InfluxDB 3 Core + Java 11 + Spring Boot:打造高效物联网数据平台
一、 引言:为什么选择InfluxDB 3? 项目背景: 在我们的隧道风机监控系统中,实时数据的采集、存储和高效查询是至关重要的核心需求。风机运行产生的振动、倾角、电流、温度等参数是典型的时序数据,具有高并发写入、数据…...
Kubernetes控制平面组件:Kubelet详解(七):容器网络接口 CNI
云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…...
Pandas 构建并评价聚类模型② 第六章
构建并评价聚类模型 构建并评价聚类模型一、数据读取与准备(代码6 - 6部分)结果代码解析 二、Kmeans聚类(代码6 - 6部分)结果代码解析 三、数据降维可视化(代码6 - 6部分)结果代码解析 四、FMI评价…...
【simulink】IEEE33节点系统潮流分析模型
目录 主要内容 程序内容 2.1 33节点simulink模型一览 2.2 节点模型图 下载链接 主要内容 该仿真采用simulink模型对33节点网络进行模拟仿真,在simulink模型中定义了33节点系统的电阻、电抗、节点连接关系等参数,通过控制块来实现信号连接关系&…...
彻底解决docker代理配置与无法拉取镜像问题
为什么会有这篇文章? 博主在去年为部署dify研究了docker,最后也是成功部署,但是因为众所周知的原因,卡ziji脖子 ,所以期间遇到各种网络问题的报错,好在最后解决了. 但时隔一年,博主最近因为学习原因又一次使用docker,原本解决的问题却又没来由的出现,且和之前有很多不同(有时…...
Linux 安装 Unreal Engine
需要对在unreal engine官网进行绑定github账号,然后到unreal engine github仓库中进行下载对应的版本,并进行安装unreal engine官网 github地址...
tensorflow图像分类预测
tensorflow图像分类预测 CPU版本和GPU版本二选一 CPU版本 pip -m install --upgrade pippip install matplotlib pillow scikit-learnpip install tensorflow-intel2.18.0GPU版本 工具 miniconda 升级依赖库 conda update --all创建目录 mkdir gpu-tf进入目录 cd gpu-tf创建虚…...
C++数组详解:一维和多维数组的定义、初始化、访问与遍历
1. 引言 数组是C中最基础的数据结构之一,用于存储相同类型的元素的集合。它提供了高效的内存访问方式,适用于需要快速查找和遍历数据的场景。本文将全面介绍: 一维数组的定义、初始化与遍历多维数组(如二维数组)的定…...
linux下编写shell脚本一键编译源码
0 前言 进行linux应用层编程时,经常会使用重复的命令对源码进行编译,然后把编译生成的可执行文件拷贝到工作目录,操作非常繁琐且容易出错。本文编写一个简单的shell脚本一键编译源码。 1 linux下编写shell脚本一键编译源码 shell脚本如下&…...
安卓端互动娱乐房卡系统调试实录:从UI到协议的万字深拆(第一章)
前言:调房卡,不如修空调(但更费脑) 老实说,拿到这套安卓端互动组件源码的时候,我内心是拒绝的。不是因为它不好,而是太好了,目录规整、界面精美、逻辑还算清晰,唯一的问…...
【通用大模型】Serper API 详解:搜索引擎数据获取的核心工具
Serper API 详解:搜索引擎数据获取的核心工具 一、Serper API 的定义与核心功能二、技术架构与核心优势2.1 技术实现原理2.2 对比传统方案的突破性优势 三、典型应用场景与代码示例3.1 SEO 监控系统3.2 竞品广告分析 四、使用成本与配额策略五、开发者注意事项六、替…...
宝塔面板屏蔽垃圾搜索引擎蜘蛛和扫描工具的办法
首先进入宝塔面板,文件管理进入/www/server/nginx/conf目录,新建空白文件kill_bot.conf。然后将以下代码保存到当前文件中。 #禁止垃圾搜索引擎蜘蛛抓取if ($http_user_agent ~* "CheckMarkNetwork|Synapse|Nimbostratus-Bot|Dark|scraper|LMAO|Ha…...