Elasticsearch安装

本文介绍了Elasticsearch的安装与启动,以7.8.0版本为例,涵盖Windows和Linux两个版本。Windows版解压即安装,进入bin目录双击文件启动;Linux版介绍了下载、安装和启动步骤。还提及了Windows版启动的常见问题及解决办法。

Elasticsearch 的官方地址:https://www.elastic.co/cn/
下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
以7.8.0版本为例,也推荐新手以这个版本练习。

1、window版本

1.1、下载及安装

下载 WINDOWS sha版本
image.png
win版的elasticsearch安装很简单,解压即安装完毕,解压后的elasticsearch的目录结构如下:
image.png

目录含义
bin可执行脚本目录
config配置目录
jdk内置JDK目录
lib类库
logs日志目录
modules模块目录
plugins插件目录

1.2、启动

进入bin目录,双击elasticsearch.bat文件启动ES服务。
注意:9300端口为ES集群间组件的通信端口,9200端口为浏览器访问的http协议restful端口。
启动之后,浏览器输入http://localhost:9200进行测试,出现以下结果,说明启动成功
image.png

1.3、常见问题

  1. ES是使用Java开发的,依赖于JDKES自带JDK,如果系统配置了JAVA_HOME,那么使用系统默认的JDK,如果没有配置使用自带的JDK,一般建议使用系统配置的JDK(但是要确定好 es版本和jdk版本的对应关系,如果不确定的话,有个小技巧,将系统JAVA_HOME名修改成其他名字,比如JAVA_HOME8,这样的话ES就会被迫使用自带的JDK,从而不需要我们担心版本对应的问题)
  2. 第一次启动有可能会卡住不动,大概率是因为内存空间不足,需要修改config/jvm.options配置文件,将内存设置的小一点即可。

image.png

2、linux版本

2.1、下载

下载LINUX X86_64 sha版本
image.png

2.2、安装

# 1.解压
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz -C /software/elasticsearch/
# 2.创建用户,因为安全问题,elasticsearch不允许root用户直接运行,所以要创建新用户,在root用户中创建新用户
useradd es #新增es用户
passwd es #为es用户设置密码

userdel -r es #如果错了,可以删除再加
chown -R es:es /software/elasticsearch/elasticsearch-7.8.0/ #文件夹所有者,添加权限

# 3.修改配置以下文件

vim /software/elasticsearch/elasticsearch-7.8.0/config/elasticsearch.yml
#添加下面配置
cluster.name: elasticsearch
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]

vim /etc/security/limits.conf
# 在文件末尾中增加下面内容
# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536

vim /etc/security/limits.d/20-nproc.conf
# 在文件末尾中增加下面内容
# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
# 操作系统级别对每个用户创建的进程数的限制
* hard nproc 4096
# 注:* 带表 Linux 所有用户名称

vim /etc/sysctl.conf
# 在文件中增加下面内容
# 一个进程可以拥有的 VMA(虚拟内存区域)的数量,默认值为 65536
vm.max_map_count=655360

# 4.重新加载
sysctl -p

2.3、启动

# 切换到es用户
su es
# 启动
[root@zq elasticsearch-7.8.0]# cd bin/
[root@zq bin]# ./elasticsearch
# 后台启动
./elasticsearch -d
<think>好的,我需要帮助用户将Elasticsearch从7.9.1升级到8.11.4版本,并且要考虑到兼容性问题。首先,我得回顾一下Elasticsearch的升级流程,特别是大版本之间的升级,比如从7.x到8.x,通常会有较大的变化,需要注意备份、配置调整和依赖项更新。 根据用户提供的引用内容,他们之前是通过Docker安装的7.9.1版本,并且提到了IK分词器的安装以及Spring Boot集成。所以升级过程中需要考虑这些方面的影响。 首先,官方升级指南是必须参考的,用户需要按照步骤逐步升级,可能包括滚动升级或者全集群重启,但大版本升级通常需要全重启。备份数据是首要步骤,确保数据安全。 然后,检查兼容性。Elasticsearch 8.x的Java版本要求可能更高,用户之前用的是集成JDK11的7.9.1版本,但8.x可能需要至少JDK17,需要确认这一点。同时,Spring Boot的版本是否支持Elasticsearch 8.11.4,可能需要升级Spring Boot到较新的版本,比如3.x,因为旧版本可能不兼容。 配置文件的调整也很重要。例如,8.x默认启用安全功能,如SSL和认证,用户需要处理这些设置,可能需要生成新的证书或者配置用户名密码。另外,路径设置如path.data可能需要检查是否有变动,但根据引用[3]中的配置,用户已经自定义了数据存储位置,可能需要确认是否兼容。 IK分词器方面,用户需要下载对应8.11.4版本的IK插件,因为插件必须与Elasticsearch版本匹配。之前的引用[5]提到下载v7.9.1的IK分词器,现在需要换成v8.11.4的版本,并重新安装。 Docker方面,用户需要拉取8.11.4的镜像,并调整docker-compose或运行命令,可能需要更新挂载卷的配置,尤其是安全相关的文件,如证书和密钥。 测试环节,升级后必须进行全面的功能测试,特别是与Spring Boot集成的部分,查看是否有API变更或者连接问题。例如,Elasticsearch的Java客户端在8.x中有重大变化,可能需要调整代码中的连接配置,比如使用新的安全协议或者认证方式。 回滚计划也是关键,如果升级后出现问题,需要能够快速回退到旧版本,这时候备份的数据和配置就派上用场了。 最后,用户可能需要关注版本差异,比如新功能或废弃的功能,确保现有应用能够适应这些变化。可能还需要更新索引的映射或查询语句,以符合8.x的新规范。 总结下来,步骤应该是:备份数据、检查依赖、升级ES和插件、调整配置和安全设置、测试集成应用、准备回滚方案。同时,要确保所有相关组件如Spring Boot和IK分词器都兼容新版本。</think>### 逐步升级Elasticsearch 7.9.1至8.11.4的指南 #### 1. **准备工作** - **备份数据** 使用快照功能备份所有索引数据,防止升级失败导致数据丢失: ```bash curl -X PUT "localhost:9200/_snapshot/my_backup/snapshot_1?wait_for_completion=true" ``` 参考快照路径需与`elasticsearch.yml`中`path.repo`配置一致[^3]。 - **检查兼容性** - **Java版本**:Elasticsearch 8.11.4需要JDK 17或更高版本[^2]。若使用内置JDK可跳过,否则需升级系统JDK。 - **插件兼容性**:如IK分词器需下载对应8.11.4的版本[^5],命令调整为: ```bash ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.11.4/elasticsearch-analysis-ik-8.11.4.zip ``` #### 2. **升级步骤 **(分阶段升级)** - **步骤1:升级Elasticsearch服务** 1. 停止当前7.9.1集群节点。 2. 替换二进制文件:下载8.11.4版本并解压,覆盖原目录时保留`data`和`config`目录。 3. 更新配置文件`elasticsearch.yml`: ```yaml # 启用安全功能(8.x默认开启) xpack.security.enabled: true xpack.security.transport.ssl.enabled: true ``` 4. 启动节点并初始化密码: ```bash ./bin/elasticsearch-setup-passwords auto ``` - **步骤2:Docker环境升级** 若使用Docker部署[^1][^4]: ```bash # 拉取新镜像 docker pull elasticsearch:8.11.4 # 启动新容器(注意挂载目录和证书) docker run -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -v /path/data:/usr/share/elasticsearch/data -v /path/certs:/usr/share/elasticsearch/config/certs -p 9200:9200 elasticsearch:8.11.4 ``` #### 3. **Spring Boot集成调整** - **依赖升级** 在`pom.xml`中更新Elasticsearch客户端版本: ```xml <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>8.11.4</version> </dependency> ``` 若使用Spring Boot 3.x,需同步升级Spring Boot版本以兼容。 - **连接配置** 启用安全连接并配置认证: ```java @Bean public RestHighLevelClient elasticsearchClient() { return new RestHighLevelClient( RestClient.builder(new HttpHost("localhost", 9200, "https")) .setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder.setSSLContext(SSLContextBuilder.create().loadTrustMaterial(null, (chain, authType) -> true).build()) .setDefaultCredentialsProvider(new BasicCredentialsProvider().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("elastic", "password"))) ) ); } ``` #### 4. **验证与测试** - **集群健康检查** ```bash curl -u elastic:password -k "https://localhost:9200/_cluster/health" ``` - **数据完整性验证** 对比快照恢复后的索引状态是否一致。 #### 5. **回滚方案** 若升级失败,需: 1. 停止8.11.4节点。 2. 重新部署7.9.1容器或二进制文件[^4]。 3. 从快照恢复数据: ```bash curl -X POST "localhost:9200/_snapshot/my_backup/snapshot_1/_restore" ``` ### 兼容性注意事项 1. **API变更**:8.x废弃了部分REST API,需检查客户端调用逻辑。 2. **索引兼容性**:7.x创建的索引可直接在8.x使用,但新功能需重建索引。 3. **安全强化**:默认开启TLS和HTTP认证,需在客户端配置中显式声明[^4]。 ### 相关问题 1. Elasticsearch 8.x默认安全配置如何禁用? 2. 如何验证IK分词器在8.11.4版本中正常工作? 3. Spring Data Elasticsearch如何适配Elasticsearch 8.x? : 引用1,4 [^2]: 引用2 [^3]: 引用3 [^5]: 引用5
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深海@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值