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

在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.namecluster.name。正如它们的名称所示,node.name 指定服务器(节点)的名称,以及后者所关联的集群。

如果您不自定义这些变量,node.name 将根据 Droplet 主机名自动分配。cluster.name 将自动设置为默认集群的名称。

cluster.name 值被 Elasticsearch 的自动发现功能用于自动发现和关联 Elasticsearch 节点到一个集群。因此,如果您不更改默认值,您可能会在集群中发现不需要的节点,这些节点在同一网络上被找到。

要开始编辑主要的 elasticsearch.yml 配置文件:

sudo nano /etc/elasticsearch/elasticsearch.yml

删除 node.namecluster.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_shardsindex.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的简单过程。一旦你对手动查询有了足够的了解,下一个任务将是从你的应用程序开始使用它。

相关文章:

在Ubuntu 14.04上安装和配置Elasticsearch的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 Elasticsearch 是一个用于实时分布式搜索和数据分析的平台。它因易用性、强大功能和可扩展性而备受欢迎。 Elasticsearch 支持 R…...

C++:inline关键字nullptr

inline关键字 C中inline使用关键点强调 (1)inline是一种“用于实现的关键字”,而不是一种“用于声明的关键字”,所以关键字 inline 必须与函数定义体放在一起,而不是和声明放在一起 (2)如果希望在多个c文件中使用,则inline函数应…...

数字信号处理实验三(IIR数字滤波器设计)

IIR数字滤波器设计(2学时) 要求: 产生一复合信号序列,该序列包含幅度相同的28Hz、50Hz、100Hz、150Hz的单音(单频)信号;其中,50Hz及其谐波为工频干扰(注:采样…...

Why is Kafka fast?(Kafka性能基石)

Kafka概述 Why is kafka fast? 思考一下,当我们在讨论Kafka快的时候我们是在谈论什么呢?What does it even mean that Kafka is fast? 我们是在谈论kafka的低延迟(low latency)还是在讨论吞吐量(through…...

Linux下的SSH详解及Ubuntu教程

前言 SSH(Secure Shell)是一种用于计算机之间安全通信的协议,广泛应用于远程登录、系统管理和文件传输等场景。本文将详细介绍SSH在Linux系统(特别是Ubuntu)下的使用,包括安装、配置、密钥管理和常见应用&…...

MobPush HarmonyOS NEXT 版本集成指南

开发工具:DevEco Studio 集成方式:在线集成 HarmonyOS API支持:> 11 集成前准备 注册账号 使用MobSDK之前,需要先在MobTech官网注册开发者账号,并获取MobTech提供的AppKey和AppSecret,详情可以点击查…...

什么是封装?为什么要封装?

什么是封装? 封装是计算机科学中的一个重要概念,尤其在面向对象编程(OOP)中占据核心地位。封装主要指的是将数据(属性)和对这些数据的操作(方法)组合在一个单元中(我们称…...

远程桌面无法复制粘贴文件到本地怎么办?

远程桌面不能复制粘贴问题 Windows远程桌面为我们提供了随时随地访问文件和数据的便捷途径,大大提升了工作和生活的效率。然而,在使用过程中,我们也可能遇到一些问题。例如,在通过远程桌面传输文件时,常常会出现无法复…...

LeetCode 207. 课程表

思路:这是一道拓扑排序问题,拓扑排序听起来可能有点复杂,但实际上它是个相当直观的概念。想象一下,你有很多事情要做,但有些事情必须在另一些事情完成之后才能开始,就像你得先穿上袜子再穿鞋子 拓扑排序就…...

数据结构历年考研真题对应知识点(树的基本概念)

目录 5.1树的基本概念 5.1.2基本术语 【森林中树的数量、边数和结点数的关系(2016)】 5.1.3树的性质 【树中结点数和度数的关系的应用(2010、2016)】 【指定结点数的三叉树的最小高度分析(2022)】 5.1…...

Pytorch和Tensorflow安装【Win和Linux】

Ubuntu/win安装Pytorch和Tensorflow 说明: 这两种框架的搭建,均基于Anaconda进行搭建。先在系统中安装Anaconda软件。 一、Pytorch的搭建 windows安装 (1)搭建参考官网给的命令,pytorch官网 (2)下载地址:https://download.pytorch.org/whl/torch_stable.html 从上述…...

筑算网基石 创数智未来|锐捷网络闪耀2024 MWC上海

2024年6月26日至28日,全球科技界瞩目的GSMA世界移动大会(MWC 上海)在上海新国际博览中心(SNIEC)盛大召开。作为行业领先的网络解决方案提供商,锐捷网络以“筑算网基石 创数智未来”为主题,带来了…...

T4打卡 学习笔记

所用环境 ● 语言环境:Python3.11 ● 编译器:jupyter notebook ● 深度学习框架:TensorFlow2.16.1 ● 显卡(GPU):NVIDIA GeForce RTX 2070 设置GPU from tensorflow import keras from tensorflow.keras…...

抖音矩阵云混剪系统源码 短视频矩阵营销系统V2(全开源版)

>>>系统简述: 抖音阵营销系统多平台多账号一站式管理,一键发布作品。智能标题,关键词优化,排名查询,混剪生成原创视频,账号分组,意向客户自动采集,智能回复,多…...

zabbix报警机制

zabbix思路流程...

【Matlab】-- 飞蛾扑火优化算法

文章目录 文章目录 01 飞蛾扑火算法介绍02 飞蛾扑火算法伪代码03 基于Matlab的部分飞蛾扑火MFO算法04 参考文献 01 飞蛾扑火算法介绍 飞蛾扑火算法(Moth-Flame Optimization,MFO)是一种基于自然界飞蛾行为的群体智能优化算法。该算法由 Sey…...

全面体验ONLYOFFICE 8.1版本桌面编辑器

ONLYOFFICE官网 在当今的数字化办公环境中,选择合适的文档处理工具对于提升工作效率和团队协作至关重要。ONLYOFFICE 8.1版本桌面编辑器,作为一款集成了多项先进功能的办公软件,为用户提供了全新的办公体验。今天,我们将深入探索…...

建议csdn赶紧将未经作者同意擅自锁住收费的文章全部解锁,别逼我用极端手段让你们就范

前两天我偶然发现csdn竟然将我以前发表的很多文章锁住向读者收费才让看。 csdn这种无耻行径往小了说是侵犯了作者的版权著作权,往大了说这是在打击我国IT领域未来的发展,因为每一个做过编程工作的人都知道,任何一个程序员的学习成长过程都少不…...

Pycharm一些问题解决办法

研究生期间遇到关于Pycharm一些问题报错以及解决办法的汇总 ModuleNotFoundError: No module named sklearn’ 安装机器学习库,需要注意报错的sklearn是scikit-learn缩写。 pip install scikit-learnPyCharm 导包提示 unresolved reference 描述:模块…...

ONLYOFFICE 桌面编辑器 8.1 发布:全新 PDF 编辑器、幻灯片版式、增强 RTL 支持及更多本地化选项

目录 什么是ONLYOFFICE? ONLYOFFICE 主要特点包括: 官网信息: 1. 功能齐全的 PDF 编辑器 1.1 编辑 PDF 文本 1.2 插入和修改对象 1.3 创建和填写表单 2. 幻灯片版式功能 2.1 快速应用幻灯片版式 2.2 动画窗格的改进 3. 文档编辑、…...

Linux高并发服务器开发(六)线程

文章目录 1. 前言2 线程相关操作3 线程的创建4 进程数据段共享和回收5 线程分离6 线程退出和取消7 线程属性(了解)8 资源竞争9 互斥锁9.1 同步与互斥9.2 互斥锁 10 死锁11 读写锁12 条件变量13 生产者消费者模型14 信号量15 哲学家就餐 1. 前言 进程是C…...

Google发布Gemma 2轻量级开放模型 以极小的成本提供强大的性能

除了 Gemini 系列人工智能模型外,Google还提供 Gemma 系列轻量级开放模型。今天,他们发布了 Gemma 2,这是基于全新架构设计的下一代产品,具有突破性的性能和效率。 Gemma 2 有两种规格:90 亿 (9B) 和 270 亿 (27B) 个参…...

精品UI知识付费系统源码网站EyouCMS模版源码

这是一款知识付费平台模板,后台可上传本地视频,批量上传视频连接, 视频后台可设计权限观看,免费试看时间时长,会员等级观看,付费观看等功能, 也带软件app权限下载,帮助知识教育和软件…...

使用Apache POI库在Java中导出Excel文件的详细步骤

使用Apache POI库在Java中导出Excel文件的详细步骤 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把手教你开发炫酷的vbs脚本制作(完善中……) 4、牛逼哄哄的 IDEA编程利器技…...

基于C#在WPF中使用斑马打印机进行打印

最近在项目中接手了一个比较有挑战性的模块——用斑马打印机将需要打印的内容打印出来。苦苦折腾了两天,总算有所收获,就发到网上来骗骗分数-_-|| 项目中使用的打印机型号为GX430t的打印机,接手的时候,自己对于打印机这块儿是眼前…...

六、资产安全—信息分级资产管理与隐私保护练习题(CISSP)

六、资产安全—信息分级资产管理与隐私保护(CISSP): 六、资产安全—信息分级资产管理与隐私保护(C...

使用 AutoGen 的 AI 智能体设计模式

1.Auto Gen框架 在Auto中,每种智能体分别扮演不同的角色。 ConversableAgent 作为最高级别的智能体抽象,为所有具体智能体提供了基础的通信能力。这包括发送和接收信息的能力,以及基于这些信息进行内部状态更新的能力。所有从这个类派生的智能体都继承了这些基本功能…...

Android InputChannel连接

InputChannel是InputDispatcher 和应用程序 (InputTarget) 的通讯桥梁,InputDispatcher 通知应用程序有输入事件,通过InputChannel中的socket进行通信。 连接InputDispatcher和窗口 WinodwManagerService:addwindow: WMS 添加窗口时,会创建…...

爬虫笔记17——selenium框架的使用

selenium框架的使用 1、python程序安装selenium框架2、下载Chrome谷歌驱动3、selenium的基本使用4、多个标签页切换顺序混乱的问题 1、python程序安装selenium框架 # 在安装过程中最好限定框架版本为4.9.1 # pip install selenium 没有制定版本,非镜像下载也会比较…...

[BUUCTF从零单排] Web方向 02.Web入门篇之『常见的搜集』解题思路(dirsearch工具详解)

这是作者新开的一个专栏《BUUCTF从零单排》,旨在从零学习CTF知识,方便更多初学者了解各种类型的安全题目,后续分享一定程度会对不同类型的题目进行总结,并结合CTF书籍和真实案例实践,希望对您有所帮助。当然&#xff0…...

深度相机识别物体——实现数据集准备与数据集分割

一、数据集准备——Labelimg进行标定 1.安装labelimg——pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple 2.建立相应的数据集存放文件夹 3.打开labelimg,直接在命令行输入labelimg即可,并初始化 4.开始标注,设置标注好…...

STM32第十一课:ADC采集光照

文章目录 需求一、ADC概要二、实现流程1.开时钟,分频,配IO2.配置ADC工作模式3.配置通道4.复位校准5.数值的获取 三、需求的实现总结 需求 通过ADC转换实现光照亮度的数字化测量,最后将实时测量的结果打印在串口上。 一、ADC概要 ADC全称是A…...

python查找支撑数 青少年编程电子学会python编程等级考试三级真题解析2022年3月

目录 python查找支撑数 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python查找支撑数 2022年3月 python编程等级考试级编程题 一、题目要求…...

创建一个快速、高效的网络爬虫:PHP和Selenium示例

随着互联网的不断发展,数据爬取已经成为了许多人的必备技能。而网络爬虫则是实现数据爬取的重要工具之一。 网络爬虫可以自动化地访问网站、获取内容、分析页面并提取所需数据。其中,Selenium是一款非常优秀的网络自动化测试工具,能够模拟真…...

两张图片怎样拼在一起?将两张图片拼在一起的几种方法介绍

两张图片怎样拼在一起?拼接两张图片是一种常见的编辑技巧,能够将不同的视觉元素融合成一个整体,从而创造出更加生动和丰富的图像效果。无论是为了设计创意作品、制作社交媒体内容,还是简单地为个人相册增添趣味,掌握如…...

百日筑基第五天-关于maven

百日筑基第五天-关于maven Maven 是什么 Maven 是一个项目管理工具,它包含了一个项目对象模型(Project Object Model),反映在配置中,就是一个 pom.xml 文件。是一组标准集合,一个项目的生命周期、一个依赖…...

【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.…...

C++Primer Plus 第十四章代码重用:14.4.4 数组模板示例和非类型参数

系列文章目录 14.4.4 数组模板示例和非类型参数 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录14.4.4 数组模板示例和非类型参数 14.4.4 数组模板示例和非类型参数 模板常用作容器类,这…...

短视频哪个软件好用?成都柏煜文化传媒有限公司

短视频哪个软件好用?一文带你了解各大平台特色 随着移动互联网的飞速发展,短视频已经成为现代人生活中不可或缺的一部分。市面上涌现出众多短视频平台,它们各具特色,满足了不同用户的需求。那么,短视频哪个软件好用呢…...

金融科技:重塑用户体验,驱动满意度飙升

随着科技的飞速发展,金融科技(FinTech)已经深入到我们生活的每一个角落,从日常支付到投资理财,再到跨境汇款,它都在悄无声息地改变着我们的金融行为。而在这背后一个不可忽视的驱动力就是金融科技对用户体验…...

JavaScript——算术运算符

目录 任务描述 相关知识 - * / %运算符 递增运算符和递减运算符 编程要求 任务描述 本关任务:给定两个字符串变量,把它们转为数字后相除,拼接被除数、除数和余数为一个新的字符串。 例如:a 为 "5",b 为…...

备份SQL Server数据库并还原到另一台服务器

我可以将SQL Server数据库备份到另一台服务器吗? 有时您可能希望将 SQL数据库从一台服务器复制到另一台服务器,或者将计算机复制到计算机。可能的场景包括测试、检查一致性、从崩溃的机器恢复数据库、在不同的机器上处理同一个项目等。 是的&#xff0c…...

二刷算法训练营Day45 | 动态规划(7/17)

目录 详细布置: 1. 139. 单词拆分 2. 多重背包理论基础 3. 背包总结 3.1 背包递推公式 3.2 遍历顺序 01背包 完全背包 详细布置: 1. 139. 单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单…...

大模型项目落地时,该如何估算模型所需GPU算力资源

近期公司有大模型项目落地。在前期沟通时,对于算力估算和采购方案许多小伙伴不太了解,在此对相关的算力估算和选择进行一些总结。 不喜欢过程的可以直接 跳到HF上提供的模型计算器 要估算大模型的所需的显卡算力,首先要了解大模型的参数基础知识。 大模型的规模、参数的理解…...

LLM应用开发-RAG系统评估与优化

前言 Hello,大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者,在上一篇文章中,我们学习了如何基于LangChain构建RAG应用,并且通过Streamlit将这个RAG应用部署到了阿里云服务器;&am…...

秋招突击——第七弹——Redis快速入门

文章目录 引言Redis是什么 正文对象String字符串面试重点 List面试考点 压缩列表ZipList面试题 Set面试题讲解 Hash面试重点 HASHTABLE底层面试考点 跳表面试重点 ZSET有序链表面试重点 总结 引言 在项目和redis之间,我犹豫了一下,觉得还是了解学习一下…...

软考初级网络管理员__操作系统单选题

1.在Windows资源管理器中,假设已经选定文件,以下关于“复制”操作的叙述中,正确的有()。 按住Ctr键,拖至不同驱动器的图标上 按住AIt键,拖至不同驱动器的图标上 直接拖至不同驱动器的图标上 按住Shift键&#xff0…...

从入门到精通:网络编程套接字(万字详解,小白友好,建议收藏)

一、预备知识 1.1 理解源IP地址和目的IP地址 在网络编程中,IP地址(Internet Protocol Address)是每个连接到互联网的设备的唯一标识符。IP地址可以分为IPv4和IPv6两种类型。IPv4地址是由32位二进制数表示,通常分为四个八位组&am…...

dledger原理源码分析系列(一)架构,核心组件和rpc组件

简介 dledger是openmessaging的一个组件, raft算法实现,用于分布式日志,本系列分析dledger如何实现raft概念,以及dledger在rocketmq的应用 本系列使用dledger v0.40 本文分析dledger的架构,核心组件;rpc组…...

第七节:如何浅显易懂地理解Spring Boot中的依赖注入(自学Spring boot 3.x的第二天)

大家好,我是网创有方,今天我开始学习spring boot的第一天,一口气写了这么多。 这节通过一个非常浅显易懂的列子来讲解依赖注入。 在Spring Boot 3.x中,依赖注入(Dependency Injection, DI)是一个核心概念…...

vue组件深入介绍之插槽

了解插槽之前请先了解vue组件基础及注册 Vue2官网介绍 Vue3官网介绍 1、vue2插槽介绍 在2.6.0中,具名插槽和作用域插槽引入了一个新的统一语法(v-slot指令)。它将取代slot和slot-scope; Vue 实现了一套内容分发的 API&#xf…...

php+redis 生成二维码库

项目场景: 活动报名二维码,生成 30W 的二维码量存放到 redis 中,并通过 redis 读取,以减轻 mysql 数据库的压力。 实现很简单,分为两步: 1、生成:通过 for 循环,以集合方式插入到…...

【探索Linux】P.36(传输层 —— TCP协议段格式)

阅读导航 引言一、TCP段的基本格式二、控制位详细介绍三、16位接收窗口大小⭕窗口大小的作用⭕窗口大小的限制⭕窗口缩放选项⭕窗口大小的更新⭕窗口大小与拥塞控制 四、紧急指针温馨提示 引言 在上一篇文章中,我们深入探讨了一种无连接的UDP协议,它以其…...

AI大模型时代来临:企业如何抢占先机?

AI大模型时代来临:企业如何抢占先机? 2023年,被誉为大模型元年,AI大模型的发展如同一股不可阻挡的潮流,正迅速改变着我们的工作和生活方式。从金融到医疗,从教育到制造业,AI大模型正以其强大的生成能力和智能分析,重塑着行业的未来。 智能化:企业核心能力的转变 企…...

c++习题06-ljc的储蓄计划

目录 一,问题 二,思路 1,思路1 2,思路2 三,代码 1,思路1代码 2,思路2代码 四,用例输入输出 一,问题 二,思路 1,思路1 定义变量&#x…...

React useImperativeHandle Hook

useImperativeHandle Hook 是一个比较比较简单的 hook,为 ref 节点添加一些处理方法,下面是来自官网例子,为 ref 添加了两个方法。 import { forwardRef, useRef, useImperativeHandle } from react;const MyInput forwardRef(function MyI…...

浪漫午后夏日茶歇

初夏的午后,来一份精致诱人的下午茶,在美味的甜点和优美的乐曲中感受此刻的幸福……昨天下午,在松江区文诚幼儿园开展了一场以“夏日么么茶”为主题的自助下午茶趣味活动,100余名大班小朋友参加。现场老师和孩子们一起精心布置了温馨的环境,随后,在动感的走秀音乐中,孩子…...

GPT-4o:重塑人机交互的未来

一个愿意伫立在巨人肩膀上的农民...... 一、推出 在人工智能(AI)领域,自然语言处理(NLP)技术一直被视为连接人类与机器的桥梁。近年来,随着深度学习技术的快速发展,NLP领域迎来了前所未有的变革…...

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…...

在做题中学习(62):矩阵区域和

1314. 矩阵区域和 - 力扣(LeetCode) 解法:二维前缀和 思路:读题画图才能理解意思:dun点点的是mat中的一个数,而要求的answer同位置的数 以点为中心上下左右延长 k 个单位所围成长方形的和。 因为最后answ…...

el-image本地图片不显示,提示加载失败

问题描述&#xff1a;el-image使用本地图片不显示&#xff0c;提示加载失败。 <el-image src"../../assets/img/value.png"></el-image> 解决方法&#xff1a;src用里面加个require&#xff0c;注意给 src 属性加: <el-image :src"require(../..…...

深入理解数仓开发(二)数据技术篇之数据同步

1、数据同步 数据同步我们之前在数仓当中使用了多种工具&#xff0c;比如使用 Flume 将日志文件从服务器采集到 Kafka&#xff0c;再通过 Flume 将 Kafka 中的数据采集到 HDFS。使用 MaxWell 实时监听 MySQL 的 binlog 日志&#xff0c;并将采集到的变更日志&#xff08;json 格…...