在Ubuntu 14.04上安装和配置Elasticsearch的方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
简介
Elasticsearch 是一个用于实时分布式搜索和数据分析的平台。它因易用性、强大功能和可扩展性而备受欢迎。
Elasticsearch 支持 RESTful 操作。这意味着您可以使用 HTTP 方法(GET、POST、PUT、DELETE 等)结合 HTTP URI(/collection/entry)来操作您的数据。直观的 RESTful 方法既方便开发人员又用户友好,这也是 Elasticsearch 受欢迎的原因之一。
Elasticsearch 是一款免费且开源的软件,由 Elastic 公司提供支持。这种组合使其适用于从个人测试到企业集成的各种场景。
本文将介绍 Elasticsearch,并向您展示如何安装、配置和开始使用它。
先决条件
在按照本教程操作之前,请确保您完成以下先决条件:
- 一个 Ubuntu 14.04 Droplet
- 一个非 root sudo 用户。详情请参阅《使用 Ubuntu 14.04 进行初始服务器设置》。
除非另有说明,本教程中需要 root 权限的所有命令都应该以具有 sudo 权限的非 root 用户身份运行。
假设
本教程假设您的服务器正在使用类似于此处描述的 VPN:《如何使用 Ansible 和 Tinc VPN 保护您的服务器基础设施》。这将为服务器提供私有网络功能,无论其物理网络如何。
如果您正在使用共享私有网络,比如 DigitalOcean 私有网络,则此安全功能将已经对同一团队或同一区域帐户中的服务器启用。这在使用 Elasticsearch 时尤为重要,因为它的 HTTP 接口中没有内置安全性。
步骤 1 — 安装 Java
首先,您需要在 Droplet 上安装 Java 运行环境(JRE),因为 Elasticsearch 是用 Java 编写的。Elasticsearch 需要 Java 7 或更高版本。Elasticsearch 推荐使用 Oracle JDK 版本 1.8.0_73,但本地 Ubuntu OpenJDK JRE 包也可以正常工作。
本步骤将向您展示如何安装这两个版本,以便您可以决定哪个更适合您。
安装 OpenJDK
本地 Ubuntu OpenJDK JRE 包是免费的,得到良好支持,并通过 Ubuntu APT 安装管理器自动管理。
在使用 APT 安装 OpenJDK 之前,请运行以下命令更新您的 Ubuntu Droplet 上可用的安装包列表:
sudo apt-get update
之后,您可以使用以下命令安装 OpenJDK:
sudo apt-get install openjdk-7-jre
要验证您的 JRE 是否已安装并可用,请运行以下命令:
java -version
结果应如下所示:
[secondary_label Output of java -version]
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-0ubuntu1.14.04.1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)
安装 Java 8
当您在使用 Elasticsearch 时,开始寻找更好的 Java 性能和兼容性时,您可能选择安装 Oracle 的专有 Java(Oracle JDK 8)。
将 Oracle Java PPA 添加到 apt:
sudo add-apt-repository -y ppa:webupd8team/java
更新您的 apt 包数据库:
sudo apt-get update
使用以下命令安装 Oracle Java 8 的最新稳定版本(并接受弹出的许可协议):
sudo apt-get -y install oracle-java8-installer
最后,验证它是否已安装:
java -version
步骤 2 — 下载并安装 Elasticsearch
Elasticsearch 可以直接从 elastic.co 以 zip、tar.gz、deb 或 rpm 包的形式下载。对于 Ubuntu,最好使用 deb(Debian)包,它将安装运行 Elasticsearch 所需的一切。
在撰写本文时,最新的 Elasticsearch 版本是 1.7.2。使用以下命令在您选择的目录中下载它:
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.2.deb
然后,以通常的 Ubuntu 方式使用 dpkg
命令安装它,如下所示:
sudo dpkg -i elasticsearch-1.7.2.deb
这将导致 Elasticsearch 安装在 /usr/share/elasticsearch/
,其配置文件放置在 /etc/elasticsearch
,并将其 init 脚本添加到 /etc/init.d/elasticsearch
。
为确保 Elasticsearch 随 Droplet 自动启动和停止,使用以下命令将其 init 脚本添加到默认运行级别:
sudo update-rc.d elasticsearch defaults
步骤 3 — 配置 Elastic
现在 Elasticsearch 及其 Java 依赖已经安装完成,是时候配置 Elasticsearch 了。
Elasticsearch 的配置文件位于 /etc/elasticsearch
目录下。主要有两个文件:
-
elasticsearch.yml
— 配置 Elasticsearch 服务器设置。除了日志设置之外,几乎所有选项都存储在这里,这也是我们主要关注的文件。 -
logging.yml
— 提供日志配置。一开始,您无需编辑此文件。您可以保留所有默认的日志选项。默认情况下,您可以在/var/log/elasticsearch
目录下找到生成的日志。
在任何 Elasticsearch 服务器上自定义的第一个变量是 elasticsearch.yml
中的 node.name
和 cluster.name
。正如它们的名称所示,node.name
指定服务器(节点)的名称,以及后者所关联的集群。
如果您不自定义这些变量,node.name
将根据 Droplet 主机名自动分配。cluster.name
将自动设置为默认集群的名称。
cluster.name
值被 Elasticsearch 的自动发现功能用于自动发现和关联 Elasticsearch 节点到一个集群。因此,如果您不更改默认值,您可能会在集群中发现不需要的节点,这些节点在同一网络上被找到。
要开始编辑主要的 elasticsearch.yml
配置文件:
sudo nano /etc/elasticsearch/elasticsearch.yml
删除 node.name
和 cluster.name
行开头的 #
字符以取消注释,然后更改它们的值。您在 /etc/elasticsearch/elasticsearch.yml
文件中的第一个配置更改应如下所示:
...
node.name: "My First Node"
cluster.name: mycluster1
...
另一个重要的设置是服务器的角色,可以是 “master” 或 “slave”。“Masters” 负责集群的健康和稳定性。在具有大量集群节点的大型部署中,建议有多个专用 “master”。通常,专用 “master” 不会存储数据或创建索引。因此,不应该有被过载的机会,从而危及集群的健康。
“Slaves” 用作可以加载数据任务的 “工作马”。即使 “slave” 节点被过载,只要有其他节点来承担额外负载,集群健康就不应受到严重影响。
确定服务器角色的设置称为 node.master
。如果您只有一个 Elasticsearch 节点,应该将此选项保持注释状态,以保持其默认值 true
— 即唯一节点也应该是主节点。或者,如果您希望将节点配置为从节点,删除 node.master
行开头的 #
字符,并将值更改为 false
:
...
node.master: false
...
另一个重要的配置选项是 node.data
,它确定节点是否存储数据。在大多数情况下,此选项应保留其默认值(true
),但有两种情况下您可能希望不在节点上存储数据。一种情况是当节点是专用 “master” 时,正如我们已经提到的。另一种情况是当节点仅用于从其他节点获取数据和聚合结果时。在后一种情况下,节点将充当 “搜索负载均衡器”。
同样,如果您只有一个 Elasticsearch 节点,应该将此设置保持注释状态,以保持默认值 true
。否则,要禁用本地存储数据,请取消注释以下行并将值更改为 false
:
...
node.data: false
...
另外两个重要选项是 index.number_of_shards
和 index.number_of_replicas
。前者确定索引将被分成多少片段(shards)。后者定义将在集群中分布的副本数量。拥有更多的分片可以提高索引性能,而拥有更多的副本可以加快搜索速度。
假设您仍在单个节点上探索和测试 Elasticsearch,最好从只有一个分片和没有副本开始。因此,它们的值应设置为以下内容(确保删除行开头的 #
):
...
index.number_of_shards: 1
index.number_of_replicas: 0
...
您可能有兴趣更改的另一个最终设置是 path.data
,它确定数据存储的路径。默认路径是 /var/lib/elasticsearch
。在生产环境中,建议为存储 Elasticsearch 数据使用专用分区和挂载点。在最佳情况下,这个专用分区将是一个单独的存储介质,它将提供更好的性能和数据隔离。您可以通过取消注释 path.data
行并更改其值来指定不同的 path.data
路径:
...
path.data: /media/different_media
...
完成所有更改后,请保存并退出文件。现在,您可以使用以下命令首次启动 Elasticsearch:
sudo service elasticsearch start
请至少等待 10 秒,以便 Elasticsearch 完全启动,然后才能使用它。否则,您可能会收到无法连接的错误。
第四步 —— 安全设置 Elastic
Elasticsearch 没有内置的安全机制,可以被访问 HTTP API 的任何人控制。本节不是一个全面的 Elasticsearch 安全设置指南。请采取必要的措施防止未经授权的访问以及保护其运行的服务器/虚拟机。考虑使用 iptables 进一步保护您的系统。
第一个安全调整是防止公共访问。要移除公共访问,请编辑文件 elasticsearch.yml
:
sudo nano /etc/elasticsearch/elasticsearch.yml
找到包含 network.bind_host
的行,通过删除行首的 #
字符来取消注释,并将值更改为 localhost
,使其如下所示:
...
network.bind_host: localhost
...
另外,为了增强安全性,您可以禁用用于评估自定义表达式的动态脚本。通过构造自定义恶意表达式,攻击者可能会危害您的环境。
要禁用自定义表达式,请在 /etc/elasticsearch/elasticsearch.yml
文件末尾添加以下行:
...script.disable_dynamic: true
...
第五步 —— 测试
到目前为止,Elasticsearch 应该在 9200 端口上运行。您可以使用 curl 这个命令行客户端 URL 传输工具进行测试,执行一个简单的 GET 请求,如下所示:
curl -X GET 'http://localhost:9200'
您应该会看到以下响应:
[secondary_label Output of curl]
{"status" : 200,"name" : "Harry Leland","cluster_name" : "elasticsearch","version" : {"number" : "1.7.2","build_hash" : "e43676b1385b8125d647f593f7202acbd816e8ec","build_timestamp" : "2015-09-14T09:49:53Z","build_snapshot" : false,"lucene_version" : "4.10.4"},"tagline" : "You Know, for Search"
}
如果您看到类似上面的响应,那么 Elasticsearch 正常工作。如果没有,请确保您已正确遵循安装说明,并且已允许 Elasticsearch 充分启动的时间。
第六步 —— 使用 Elasticsearch
要开始使用 Elasticsearch,让我们首先添加一些数据。如前所述,Elasticsearch 使用 RESTful API,响应通常包括 CRUD 命令:创建、读取、更新和删除。我们将再次使用 curl 进行操作。
您可以使用以下命令添加第一条数据:
curl -X POST 'http://localhost:9200/tutorial/helloworld/1' -d '{ "message": "Hello World!" }'
您应该会看到以下响应:
{"_index":"tutorial","_type":"helloworld","_id":"1","_version":1,"created":true}
通过 curl,我们向 Elasticseach 服务器发送了一个 HTTP POST 请求。请求的 URI 是 /tutorial/helloworld/1
。理解这里的参数很重要:
tutorial
是 Elasticsearch 中数据的索引。helloworld
是类型。1
是上述索引和类型下我们条目的 id。
您可以使用以下 HTTP GET 请求检索此第一条数据:
curl -X GET 'http://localhost:9200/tutorial/helloworld/1'
结果应该如下所示:
{"_index":"tutorial","_type":"helloworld","_id":"1","_version":1,"found":true,"_source":{ "message": "Hello World!" }}
要修改现有条目,您可以使用以下 HTTP PUT 请求:
curl -X PUT 'localhost:9200/tutorial/helloworld/1?pretty' -d '
{"message": "Hello People!"
}'
Elasticsearch 应该会确认成功修改,如下所示:
{"_index" : "tutorial","_type" : "helloworld","_id" : "1","_version" : 2,"created" : false
}
在上面的示例中,我们将第一条目的 message
修改为 “Hello People!”。因此,版本号已自动增加为 2
。
您可能已经注意到上述请求中的额外参数 pretty
。它启用了人类可读的格式,因此您可以将每个数据字段写在新的一行上。在检索数据时,您也可以使结果更美观,如下所示:
curl -X GET 'http://localhost:9200/tutorial/helloworld/1?pretty'
现在,响应将以更好的格式呈现:
{"_index" : "tutorial","_type" : "helloworld","_id" : "1","_version" : 2,"found" : true,"_source":{ "message": "Hello World!" }
}
到目前为止,我们已经向 Elasticsearch 添加了数据并进行了查询。要了解其他操作,请查看 API 文档。
结论
这就是安装、配置和开始使用Elasticsearch的简单过程。一旦你对手动查询有了足够的了解,下一个任务将是从你的应用程序开始使用它。
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
在Ubuntu 14.04上安装和配置Elasticsearch的方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 Elasticsearch 是一个用于实时分布式搜索和数据分析的平台。它因易用性、强大功能和可扩展性而备受欢迎。 Elasticsearch 支持 R…...
![](https://www.ngui.cc/images/no-images.jpg)
C++:inline关键字nullptr
inline关键字 C中inline使用关键点强调 (1)inline是一种“用于实现的关键字”,而不是一种“用于声明的关键字”,所以关键字 inline 必须与函数定义体放在一起,而不是和声明放在一起 (2)如果希望在多个c文件中使用,则inline函数应…...
![](https://img-blog.csdnimg.cn/direct/617013ed49a9433eb231425a8711dfb0.png)
数字信号处理实验三(IIR数字滤波器设计)
IIR数字滤波器设计(2学时) 要求: 产生一复合信号序列,该序列包含幅度相同的28Hz、50Hz、100Hz、150Hz的单音(单频)信号;其中,50Hz及其谐波为工频干扰(注:采样…...
![](https://img-blog.csdnimg.cn/direct/7638cf26a3184324a25fe169621d97cd.png)
Why is Kafka fast?(Kafka性能基石)
Kafka概述 Why is kafka fast? 思考一下,当我们在讨论Kafka快的时候我们是在谈论什么呢?What does it even mean that Kafka is fast? 我们是在谈论kafka的低延迟(low latency)还是在讨论吞吐量(through…...
![](https://www.ngui.cc/images/no-images.jpg)
Linux下的SSH详解及Ubuntu教程
前言 SSH(Secure Shell)是一种用于计算机之间安全通信的协议,广泛应用于远程登录、系统管理和文件传输等场景。本文将详细介绍SSH在Linux系统(特别是Ubuntu)下的使用,包括安装、配置、密钥管理和常见应用&…...
![](https://img-blog.csdnimg.cn/direct/8810a41b11cf4326b39175476602fb09.png)
MobPush HarmonyOS NEXT 版本集成指南
开发工具:DevEco Studio 集成方式:在线集成 HarmonyOS API支持:> 11 集成前准备 注册账号 使用MobSDK之前,需要先在MobTech官网注册开发者账号,并获取MobTech提供的AppKey和AppSecret,详情可以点击查…...
![](https://www.ngui.cc/images/no-images.jpg)
什么是封装?为什么要封装?
什么是封装? 封装是计算机科学中的一个重要概念,尤其在面向对象编程(OOP)中占据核心地位。封装主要指的是将数据(属性)和对这些数据的操作(方法)组合在一个单元中(我们称…...
![](https://img-blog.csdnimg.cn/direct/2cd31496ef63448eb237ed69df06850f.png)
远程桌面无法复制粘贴文件到本地怎么办?
远程桌面不能复制粘贴问题 Windows远程桌面为我们提供了随时随地访问文件和数据的便捷途径,大大提升了工作和生活的效率。然而,在使用过程中,我们也可能遇到一些问题。例如,在通过远程桌面传输文件时,常常会出现无法复…...
![](https://img-blog.csdnimg.cn/direct/5f11ebe5995340a098c4634ab319b264.png)
LeetCode 207. 课程表
思路:这是一道拓扑排序问题,拓扑排序听起来可能有点复杂,但实际上它是个相当直观的概念。想象一下,你有很多事情要做,但有些事情必须在另一些事情完成之后才能开始,就像你得先穿上袜子再穿鞋子 拓扑排序就…...
数据结构历年考研真题对应知识点(树的基本概念)
目录 5.1树的基本概念 5.1.2基本术语 【森林中树的数量、边数和结点数的关系(2016)】 5.1.3树的性质 【树中结点数和度数的关系的应用(2010、2016)】 【指定结点数的三叉树的最小高度分析(2022)】 5.1…...
![](https://www.ngui.cc/images/no-images.jpg)
Pytorch和Tensorflow安装【Win和Linux】
Ubuntu/win安装Pytorch和Tensorflow 说明: 这两种框架的搭建,均基于Anaconda进行搭建。先在系统中安装Anaconda软件。 一、Pytorch的搭建 windows安装 (1)搭建参考官网给的命令,pytorch官网 (2)下载地址:https://download.pytorch.org/whl/torch_stable.html 从上述…...
![](https://img-blog.csdnimg.cn/img_convert/725fddf64d4d4f4715b16cf42d214627.png)
筑算网基石 创数智未来|锐捷网络闪耀2024 MWC上海
2024年6月26日至28日,全球科技界瞩目的GSMA世界移动大会(MWC 上海)在上海新国际博览中心(SNIEC)盛大召开。作为行业领先的网络解决方案提供商,锐捷网络以“筑算网基石 创数智未来”为主题,带来了…...
![](https://img-blog.csdnimg.cn/direct/044426e8a7474bdf85dedc82f2336db9.png#pic_center)
T4打卡 学习笔记
所用环境 ● 语言环境:Python3.11 ● 编译器:jupyter notebook ● 深度学习框架:TensorFlow2.16.1 ● 显卡(GPU):NVIDIA GeForce RTX 2070 设置GPU from tensorflow import keras from tensorflow.keras…...
![](https://img-blog.csdnimg.cn/direct/117a4642d8804f81a48f3824586ae7f8.png)
抖音矩阵云混剪系统源码 短视频矩阵营销系统V2(全开源版)
>>>系统简述: 抖音阵营销系统多平台多账号一站式管理,一键发布作品。智能标题,关键词优化,排名查询,混剪生成原创视频,账号分组,意向客户自动采集,智能回复,多…...
![](https://img-blog.csdnimg.cn/direct/025ee17016b34bb1a8427f6ffa988616.png)
zabbix报警机制
zabbix思路流程...
![](https://img-blog.csdnimg.cn/direct/f92e4bad59224f728f9b86022c6d0a37.jpeg#pic_center)
【Matlab】-- 飞蛾扑火优化算法
文章目录 文章目录 01 飞蛾扑火算法介绍02 飞蛾扑火算法伪代码03 基于Matlab的部分飞蛾扑火MFO算法04 参考文献 01 飞蛾扑火算法介绍 飞蛾扑火算法(Moth-Flame Optimization,MFO)是一种基于自然界飞蛾行为的群体智能优化算法。该算法由 Sey…...
![](https://img-blog.csdnimg.cn/direct/e8660dd004114bc3a5be39a645d698db.png)
全面体验ONLYOFFICE 8.1版本桌面编辑器
ONLYOFFICE官网 在当今的数字化办公环境中,选择合适的文档处理工具对于提升工作效率和团队协作至关重要。ONLYOFFICE 8.1版本桌面编辑器,作为一款集成了多项先进功能的办公软件,为用户提供了全新的办公体验。今天,我们将深入探索…...
![](https://img-blog.csdnimg.cn/direct/29fe91cef4fc4c69b3b8e1b31c527600.png)
建议csdn赶紧将未经作者同意擅自锁住收费的文章全部解锁,别逼我用极端手段让你们就范
前两天我偶然发现csdn竟然将我以前发表的很多文章锁住向读者收费才让看。 csdn这种无耻行径往小了说是侵犯了作者的版权著作权,往大了说这是在打击我国IT领域未来的发展,因为每一个做过编程工作的人都知道,任何一个程序员的学习成长过程都少不…...
![](https://img-blog.csdnimg.cn/20210511211706185.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk1OTgzMw==,size_16,color_FFFFFF,t_70)
Pycharm一些问题解决办法
研究生期间遇到关于Pycharm一些问题报错以及解决办法的汇总 ModuleNotFoundError: No module named sklearn’ 安装机器学习库,需要注意报错的sklearn是scikit-learn缩写。 pip install scikit-learnPyCharm 导包提示 unresolved reference 描述:模块…...
![](https://img-blog.csdnimg.cn/direct/0bf9e02660134910a94535a74bef4a3d.png)
ONLYOFFICE 桌面编辑器 8.1 发布:全新 PDF 编辑器、幻灯片版式、增强 RTL 支持及更多本地化选项
目录 什么是ONLYOFFICE? ONLYOFFICE 主要特点包括: 官网信息: 1. 功能齐全的 PDF 编辑器 1.1 编辑 PDF 文本 1.2 插入和修改对象 1.3 创建和填写表单 2. 幻灯片版式功能 2.1 快速应用幻灯片版式 2.2 动画窗格的改进 3. 文档编辑、…...
![](https://i-blog.csdnimg.cn/direct/9931583e437444699cb1ec0e9dcafbfb.png)
Linux高并发服务器开发(六)线程
文章目录 1. 前言2 线程相关操作3 线程的创建4 进程数据段共享和回收5 线程分离6 线程退出和取消7 线程属性(了解)8 资源竞争9 互斥锁9.1 同步与互斥9.2 互斥锁 10 死锁11 读写锁12 条件变量13 生产者消费者模型14 信号量15 哲学家就餐 1. 前言 进程是C…...
![](https://img-blog.csdnimg.cn/direct/83671cac62ec469b8e66fed063d83daa.png)
Google发布Gemma 2轻量级开放模型 以极小的成本提供强大的性能
除了 Gemini 系列人工智能模型外,Google还提供 Gemma 系列轻量级开放模型。今天,他们发布了 Gemma 2,这是基于全新架构设计的下一代产品,具有突破性的性能和效率。 Gemma 2 有两种规格:90 亿 (9B) 和 270 亿 (27B) 个参…...
![](https://img-blog.csdnimg.cn/img_convert/777a5ef598aa24244137042f530bd96a.jpeg)
精品UI知识付费系统源码网站EyouCMS模版源码
这是一款知识付费平台模板,后台可上传本地视频,批量上传视频连接, 视频后台可设计权限观看,免费试看时间时长,会员等级观看,付费观看等功能, 也带软件app权限下载,帮助知识教育和软件…...
![](https://img-blog.csdnimg.cn/b2246eb64888442e94b341f853ee4daf.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0Zlbmdfd3dm,size_16,color_FFFFFF,t_70)
使用Apache POI库在Java中导出Excel文件的详细步骤
使用Apache POI库在Java中导出Excel文件的详细步骤 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把手教你开发炫酷的vbs脚本制作(完善中……) 4、牛逼哄哄的 IDEA编程利器技…...
![](https://www.ngui.cc/images/no-images.jpg)
基于C#在WPF中使用斑马打印机进行打印
最近在项目中接手了一个比较有挑战性的模块——用斑马打印机将需要打印的内容打印出来。苦苦折腾了两天,总算有所收获,就发到网上来骗骗分数-_-|| 项目中使用的打印机型号为GX430t的打印机,接手的时候,自己对于打印机这块儿是眼前…...
![](https://img-blog.csdnimg.cn/direct/11cef23c10bf45ad90f44dc7e3b05b5c.png)
六、资产安全—信息分级资产管理与隐私保护练习题(CISSP)
六、资产安全—信息分级资产管理与隐私保护(CISSP): 六、资产安全—信息分级资产管理与隐私保护(C...
![](https://www.ngui.cc/images/no-images.jpg)
使用 AutoGen 的 AI 智能体设计模式
1.Auto Gen框架 在Auto中,每种智能体分别扮演不同的角色。 ConversableAgent 作为最高级别的智能体抽象,为所有具体智能体提供了基础的通信能力。这包括发送和接收信息的能力,以及基于这些信息进行内部状态更新的能力。所有从这个类派生的智能体都继承了这些基本功能…...
![](https://www.ngui.cc/images/no-images.jpg)
Android InputChannel连接
InputChannel是InputDispatcher 和应用程序 (InputTarget) 的通讯桥梁,InputDispatcher 通知应用程序有输入事件,通过InputChannel中的socket进行通信。 连接InputDispatcher和窗口 WinodwManagerService:addwindow: WMS 添加窗口时,会创建…...
![](https://img-blog.csdnimg.cn/direct/332bb5ea048846b4b8a4b117c86c011c.png)
爬虫笔记17——selenium框架的使用
selenium框架的使用 1、python程序安装selenium框架2、下载Chrome谷歌驱动3、selenium的基本使用4、多个标签页切换顺序混乱的问题 1、python程序安装selenium框架 # 在安装过程中最好限定框架版本为4.9.1 # pip install selenium 没有制定版本,非镜像下载也会比较…...
![](https://img-blog.csdnimg.cn/direct/9f7b8152d18b433daa91bfbb8a8aed8e.png#pic_center)
[BUUCTF从零单排] Web方向 02.Web入门篇之『常见的搜集』解题思路(dirsearch工具详解)
这是作者新开的一个专栏《BUUCTF从零单排》,旨在从零学习CTF知识,方便更多初学者了解各种类型的安全题目,后续分享一定程度会对不同类型的题目进行总结,并结合CTF书籍和真实案例实践,希望对您有所帮助。当然࿰…...
![](https://img-blog.csdnimg.cn/direct/1e5a8793b06f4580b72a2dfcf2b716b5.png)
深度相机识别物体——实现数据集准备与数据集分割
一、数据集准备——Labelimg进行标定 1.安装labelimg——pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple 2.建立相应的数据集存放文件夹 3.打开labelimg,直接在命令行输入labelimg即可,并初始化 4.开始标注,设置标注好…...
![](https://img-blog.csdnimg.cn/direct/0b4bb9430a684c93a2ace66bbf1d5fd2.png)
STM32第十一课:ADC采集光照
文章目录 需求一、ADC概要二、实现流程1.开时钟,分频,配IO2.配置ADC工作模式3.配置通道4.复位校准5.数值的获取 三、需求的实现总结 需求 通过ADC转换实现光照亮度的数字化测量,最后将实时测量的结果打印在串口上。 一、ADC概要 ADC全称是A…...
![](https://i-blog.csdnimg.cn/direct/4261c13a6b5b499f97ea6e9f673cc4bd.png)
python查找支撑数 青少年编程电子学会python编程等级考试三级真题解析2022年3月
目录 python查找支撑数 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python查找支撑数 2022年3月 python编程等级考试级编程题 一、题目要求…...
![](https://www.ngui.cc/images/no-images.jpg)
创建一个快速、高效的网络爬虫:PHP和Selenium示例
随着互联网的不断发展,数据爬取已经成为了许多人的必备技能。而网络爬虫则是实现数据爬取的重要工具之一。 网络爬虫可以自动化地访问网站、获取内容、分析页面并提取所需数据。其中,Selenium是一款非常优秀的网络自动化测试工具,能够模拟真…...
![](https://img-blog.csdnimg.cn/img_convert/d798bf7ff92b895bbbec8de298859e28.png)
两张图片怎样拼在一起?将两张图片拼在一起的几种方法介绍
两张图片怎样拼在一起?拼接两张图片是一种常见的编辑技巧,能够将不同的视觉元素融合成一个整体,从而创造出更加生动和丰富的图像效果。无论是为了设计创意作品、制作社交媒体内容,还是简单地为个人相册增添趣味,掌握如…...
![](https://www.ngui.cc/images/no-images.jpg)
百日筑基第五天-关于maven
百日筑基第五天-关于maven Maven 是什么 Maven 是一个项目管理工具,它包含了一个项目对象模型(Project Object Model),反映在配置中,就是一个 pom.xml 文件。是一组标准集合,一个项目的生命周期、一个依赖…...
![](https://img-blog.csdnimg.cn/direct/0fc8dedd8a4f49748e3a2ae66f862566.png#pic_center)
【CSS in Depth 2 精译】2.2 em 和 rem + 2.2.1 使用 em 定义字号
当前内容所在位置 第一章 层叠、优先级与继承第二章 相对单位 2.1 相对单位的威力 2.1.1 响应式设计的兴起 2.2 em 与 rem ✔️ 2.2.1 使用 em 定义字号 ✔️2.2.2 使用 rem 设置字号 2.3 告别像素思维2.4 视口的相对单位2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 2.…...
![](https://www.ngui.cc/images/no-images.jpg)
C++Primer Plus 第十四章代码重用:14.4.4 数组模板示例和非类型参数
系列文章目录 14.4.4 数组模板示例和非类型参数 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录14.4.4 数组模板示例和非类型参数 14.4.4 数组模板示例和非类型参数 模板常用作容器类,这…...
![](https://img-blog.csdnimg.cn/img_convert/51c23955a4ef4765255f276faf074f25.jpeg)
短视频哪个软件好用?成都柏煜文化传媒有限公司
短视频哪个软件好用?一文带你了解各大平台特色 随着移动互联网的飞速发展,短视频已经成为现代人生活中不可或缺的一部分。市面上涌现出众多短视频平台,它们各具特色,满足了不同用户的需求。那么,短视频哪个软件好用呢…...
![](https://img-blog.csdnimg.cn/direct/865e2fdbcdac4ed381c3631018bc0d65.jpeg)
金融科技:重塑用户体验,驱动满意度飙升
随着科技的飞速发展,金融科技(FinTech)已经深入到我们生活的每一个角落,从日常支付到投资理财,再到跨境汇款,它都在悄无声息地改变着我们的金融行为。而在这背后一个不可忽视的驱动力就是金融科技对用户体验…...
![](https://www.ngui.cc/images/no-images.jpg)
JavaScript——算术运算符
目录 任务描述 相关知识 - * / %运算符 递增运算符和递减运算符 编程要求 任务描述 本关任务:给定两个字符串变量,把它们转为数字后相除,拼接被除数、除数和余数为一个新的字符串。 例如:a 为 "5",b 为…...
![](https://img-blog.csdnimg.cn/direct/bae1d2f105994b8badce0522e22501b8.png)
备份SQL Server数据库并还原到另一台服务器
我可以将SQL Server数据库备份到另一台服务器吗? 有时您可能希望将 SQL数据库从一台服务器复制到另一台服务器,或者将计算机复制到计算机。可能的场景包括测试、检查一致性、从崩溃的机器恢复数据库、在不同的机器上处理同一个项目等。 是的,…...
![](https://img-blog.csdnimg.cn/direct/1b267928c99b4b36b9a5ad5f01cba99b.png)
二刷算法训练营Day45 | 动态规划(7/17)
目录 详细布置: 1. 139. 单词拆分 2. 多重背包理论基础 3. 背包总结 3.1 背包递推公式 3.2 遍历顺序 01背包 完全背包 详细布置: 1. 139. 单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单…...
![](https://img-blog.csdnimg.cn/direct/430d00040eae4db3a6b3b90b31e06711.png#pic_center)
大模型项目落地时,该如何估算模型所需GPU算力资源
近期公司有大模型项目落地。在前期沟通时,对于算力估算和采购方案许多小伙伴不太了解,在此对相关的算力估算和选择进行一些总结。 不喜欢过程的可以直接 跳到HF上提供的模型计算器 要估算大模型的所需的显卡算力,首先要了解大模型的参数基础知识。 大模型的规模、参数的理解…...
![](https://img-blog.csdnimg.cn/direct/08076218e2324cd5ae84a1d6ade486c8.png#pic_center)
LLM应用开发-RAG系统评估与优化
前言 Hello,大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者,在上一篇文章中,我们学习了如何基于LangChain构建RAG应用,并且通过Streamlit将这个RAG应用部署到了阿里云服务器;&am…...
![](https://img-blog.csdnimg.cn/direct/d4d9d086b24d4762a57d02a1a2205130.png)
秋招突击——第七弹——Redis快速入门
文章目录 引言Redis是什么 正文对象String字符串面试重点 List面试考点 压缩列表ZipList面试题 Set面试题讲解 Hash面试重点 HASHTABLE底层面试考点 跳表面试重点 ZSET有序链表面试重点 总结 引言 在项目和redis之间,我犹豫了一下,觉得还是了解学习一下…...
![](https://img-blog.csdnimg.cn/direct/0b6233a1783a40dba208caf8c708dc55.png)
软考初级网络管理员__操作系统单选题
1.在Windows资源管理器中,假设已经选定文件,以下关于“复制”操作的叙述中,正确的有()。 按住Ctr键,拖至不同驱动器的图标上 按住AIt键,拖至不同驱动器的图标上 直接拖至不同驱动器的图标上 按住Shift键࿰…...
![](https://www.ngui.cc/images/no-images.jpg)
从入门到精通:网络编程套接字(万字详解,小白友好,建议收藏)
一、预备知识 1.1 理解源IP地址和目的IP地址 在网络编程中,IP地址(Internet Protocol Address)是每个连接到互联网的设备的唯一标识符。IP地址可以分为IPv4和IPv6两种类型。IPv4地址是由32位二进制数表示,通常分为四个八位组&am…...
![](https://img-blog.csdnimg.cn/direct/117938e8e5ed4aa59385a47d9b39ab98.png)
dledger原理源码分析系列(一)架构,核心组件和rpc组件
简介 dledger是openmessaging的一个组件, raft算法实现,用于分布式日志,本系列分析dledger如何实现raft概念,以及dledger在rocketmq的应用 本系列使用dledger v0.40 本文分析dledger的架构,核心组件;rpc组…...
![](https://img-blog.csdnimg.cn/direct/2f6461955b3748418fbe2077122522dc.png)
第七节:如何浅显易懂地理解Spring Boot中的依赖注入(自学Spring boot 3.x的第二天)
大家好,我是网创有方,今天我开始学习spring boot的第一天,一口气写了这么多。 这节通过一个非常浅显易懂的列子来讲解依赖注入。 在Spring Boot 3.x中,依赖注入(Dependency Injection, DI)是一个核心概念…...
![](https://img-blog.csdnimg.cn/direct/db196760f6634e4b974154db34e81db3.png#pic_center)
vue组件深入介绍之插槽
了解插槽之前请先了解vue组件基础及注册 Vue2官网介绍 Vue3官网介绍 1、vue2插槽介绍 在2.6.0中,具名插槽和作用域插槽引入了一个新的统一语法(v-slot指令)。它将取代slot和slot-scope; Vue 实现了一套内容分发的 API…...
![](https://www.ngui.cc/images/no-images.jpg)
php+redis 生成二维码库
项目场景: 活动报名二维码,生成 30W 的二维码量存放到 redis 中,并通过 redis 读取,以减轻 mysql 数据库的压力。 实现很简单,分为两步: 1、生成:通过 for 循环,以集合方式插入到…...
![](https://img-blog.csdnimg.cn/direct/1e8226d25ae843cc903096e40e531359.png)
【探索Linux】P.36(传输层 —— TCP协议段格式)
阅读导航 引言一、TCP段的基本格式二、控制位详细介绍三、16位接收窗口大小⭕窗口大小的作用⭕窗口大小的限制⭕窗口缩放选项⭕窗口大小的更新⭕窗口大小与拥塞控制 四、紧急指针温馨提示 引言 在上一篇文章中,我们深入探讨了一种无连接的UDP协议,它以其…...
![](https://img-blog.csdnimg.cn/31806c36845e42399a0102253f9bb588.jpg)
AI大模型时代来临:企业如何抢占先机?
AI大模型时代来临:企业如何抢占先机? 2023年,被誉为大模型元年,AI大模型的发展如同一股不可阻挡的潮流,正迅速改变着我们的工作和生活方式。从金融到医疗,从教育到制造业,AI大模型正以其强大的生成能力和智能分析,重塑着行业的未来。 智能化:企业核心能力的转变 企…...
![](https://img-blog.csdnimg.cn/direct/0cb896c6e047484f989076cef596fea9.png)
c++习题06-ljc的储蓄计划
目录 一,问题 二,思路 1,思路1 2,思路2 三,代码 1,思路1代码 2,思路2代码 四,用例输入输出 一,问题 二,思路 1,思路1 定义变量&#x…...
![](https://img-blog.csdnimg.cn/direct/71c67ef1768447408f00558564ea03f9.png)
React useImperativeHandle Hook
useImperativeHandle Hook 是一个比较比较简单的 hook,为 ref 节点添加一些处理方法,下面是来自官网例子,为 ref 添加了两个方法。 import { forwardRef, useRef, useImperativeHandle } from react;const MyInput forwardRef(function MyI…...
![](https://mz.eastday.com/64159519.jpeg)
浪漫午后夏日茶歇
初夏的午后,来一份精致诱人的下午茶,在美味的甜点和优美的乐曲中感受此刻的幸福……昨天下午,在松江区文诚幼儿园开展了一场以“夏日么么茶”为主题的自助下午茶趣味活动,100余名大班小朋友参加。现场老师和孩子们一起精心布置了温馨的环境,随后,在动感的走秀音乐中,孩子…...
![](https://img-blog.csdnimg.cn/direct/42bde2e201a74639b6f70755b19188b2.png)
GPT-4o:重塑人机交互的未来
一个愿意伫立在巨人肩膀上的农民...... 一、推出 在人工智能(AI)领域,自然语言处理(NLP)技术一直被视为连接人类与机器的桥梁。近年来,随着深度学习技术的快速发展,NLP领域迎来了前所未有的变革…...
![](https://img-blog.csdnimg.cn/direct/3786e773217c4592bbec946fbb145b5a.png)
IEEE Latex模版踩雷避坑指南
参考文献 原Latex模版 \begin{thebibliography}{1} \bibliographystyle{IEEEtran}\bibitem{ref1} {\it{Mathematics Into Type}}. American Mathematical Society. [Online]. Available: https://www.ams.org/arc/styleguide/mit-2.pdf\bibitem{ref2} T. W. Chaundy, P. R. Ba…...
![](https://img-blog.csdnimg.cn/direct/7015e959212e4565bbcf38396008afe4.png)
在做题中学习(62):矩阵区域和
1314. 矩阵区域和 - 力扣(LeetCode) 解法:二维前缀和 思路:读题画图才能理解意思:dun点点的是mat中的一个数,而要求的answer同位置的数 以点为中心上下左右延长 k 个单位所围成长方形的和。 因为最后answ…...
![](https://img-blog.csdnimg.cn/direct/8d79174df4d345cd8666c31310d81318.png)
el-image本地图片不显示,提示加载失败
问题描述:el-image使用本地图片不显示,提示加载失败。 <el-image src"../../assets/img/value.png"></el-image> 解决方法:src用里面加个require,注意给 src 属性加: <el-image :src"require(../..…...
![](https://www.ngui.cc/images/no-images.jpg)
深入理解数仓开发(二)数据技术篇之数据同步
1、数据同步 数据同步我们之前在数仓当中使用了多种工具,比如使用 Flume 将日志文件从服务器采集到 Kafka,再通过 Flume 将 Kafka 中的数据采集到 HDFS。使用 MaxWell 实时监听 MySQL 的 binlog 日志,并将采集到的变更日志(json 格…...