安装Elasticsearch
本文档介绍如何在Linux (Ubuntu)和Windows系统下安装Elasticsearch。
Linux (Ubuntu)
演示系统
阿里云 ubuntu_24_04_arm64_20G_alibase_20251031.vhd
内核版本:arm 6.8.0-87-generic
安装说明
本文档安装的Elasticsearch版本:
- Elasticsearch: 8.8.0
重要提示
Elasticsearch 需要 Java 运行环境,建议使用 OpenJDK 1.8 或更高版本。
方式一:单机部署 Elasticsearch
步骤1:检查系统架构
# 查看系统架构
uname -m
# 或
dpkg --print-architecture输出结果:
x86_64或amd64:使用 amd64 版本aarch64或arm64:使用 arm64 版本
步骤2:下载 Elasticsearch 软件包(ARM64 架构)
下载 ARM64 版本(华为云镜像,速度快)
wget https://mirrors.huaweicloud.com/elasticsearch/8.7.1/elasticsearch-8.7.1-linux-aarch64.tar.gz架构匹配重要提示
必须下载与系统架构匹配的安装包(本文档使用 ARM64),否则会报错:
package architecture (amd64) does not match system (arm64)步骤3:安装 Elasticsearch
# 解压文件
tar -zxvf elasticsearch-8.7.1-linux-aarch64.tar.gz配置 ES 内存限制(推荐)
在移动文件之前,建议先配置 Elasticsearch 的内存限制。编辑 JVM 配置文件:
vim elasticsearch-8.7.1/config/jvm.options找到以下两行(通常在文件开头):
-Xms4g
-Xmx4g修改为(限制为 1GB):
-Xms1g
-Xmx1g内存配置说明
-Xms:JVM 初始堆内存大小-Xmx:JVM 最大堆内存大小- 建议将两个值设置为相同,避免运行时动态调整内存
- 1GB 适用于小型项目或测试环境,生产环境请根据实际需求调整(建议为系统内存的一半,但不超过 32GB)
继续安装:
# 移动到安装目录
sudo mv elasticsearch-8.7.1 /usr/local/elasticsearch
# 创建数据和日志目录
sudo mkdir -p /usr/local/elasticsearch/data
sudo mkdir -p /usr/local/elasticsearch/logs
# 创建elasticsearch用户(ES不允许root用户运行)
sudo useradd -r -s /bin/bash elasticsearch
# 设置目录权限
sudo chown -R elasticsearch:elasticsearch /usr/local/elasticsearch重要提示
Elasticsearch 不允许使用 root 用户运行,必须创建专用用户。
步骤4:修改 Elasticsearch 配置文件
编辑配置文件:
sudo vim /usr/local/elasticsearch/config/elasticsearch.ymlVim 编辑器使用提示
- 按
i进入编辑模式 - 编辑完成后按
Esc退出编辑模式 - 输入
:wq保存并退出 - 输入
:q!不保存直接退出
添加或修改以下配置:
# 集群名称
cluster.name: my-application
# 数据存储路径
path.data: /usr/local/elasticsearch/data
# 日志存储路径
path.logs: /usr/local/elasticsearch/logs
# 网络地址(0.0.0.0 表示允许所有IP访问)
network.host: 0.0.0.0
# HTTP 端口
http.port: 9200
# 单节点模式
discovery.type: single-node
# 禁用安全认证(无密码访问)
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
xpack.security.http.ssl.enabled: false
xpack.security.transport.ssl.enabled: false安全提示
此配置禁用了安全认证,任何人都可以无密码访问Elasticsearch。仅适用于开发测试环境!
步骤5:启动 Elasticsearch 服务
方式一:直接启动(后台运行)
sudo /usr/local/elasticsearch/bin/elasticsearch -d方式二:创建 systemd 服务(推荐)
创建服务文件:
sudo vim /etc/systemd/system/elasticsearch.service添加以下内容:
[Unit]
Description=Elasticsearch
Documentation=https://www.elastic.co
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=elasticsearch
Group=elasticsearch
ExecStart=/usr/local/elasticsearch/bin/elasticsearch
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target启动服务:
# 重新加载 systemd
sudo systemctl daemon-reload
# 启动并设置开机自启
sudo systemctl enable --now elasticsearch.service
# 查看服务状态
sudo systemctl status elasticsearch.service
# 检查端口监听
sudo netstat -tnulp | grep -E '9200|9300'步骤6:验证安装
# 直接访问,无需密码
curl http://localhost:9200成功返回示例:
{
"name" : "your-hostname",
"cluster_name" : "my-application",
"cluster_uuid" : "QaG0eioMRHGgDx3ZZUBrVw",
"version" : {
"number" : "8.8.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "...",
"build_date" : "...",
"build_snapshot" : false,
"lucene_version" : "9.11.1",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}查看节点信息:
curl http://localhost:9200/_cat/nodes安装IK分词器插件(可选)
IK分词器是Elasticsearch的中文分词插件,支持自定义词库。
版本兼容性
IK插件版本必须与Elasticsearch版本保持一致!当前使用8.7.1版本,请下载对应的 elasticsearch-analysis-ik-8.7.1.zip
步骤1:下载IK分词器
访问IK分词器下载页面:https://release.infinilabs.com/analysis-ik/stable/
或直接下载:
# 进入ES插件目录
cd /usr/local/elasticsearch/plugins/
# 创建IK插件目录
sudo mkdir ik
cd ik
# 下载IK分词器(8.7.1版本)
sudo wget https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-8.7.1.zip
# 解压插件
sudo unzip elasticsearch-analysis-ik-8.7.1.zip
# 删除压缩包
sudo rm elasticsearch-analysis-ik-8.7.1.zip步骤2:重启Elasticsearch服务
注意
如果提示 Unit elasticsearch.service not found,说明你没有创建 systemd 服务,请使用下面的"直接启动方式"重启。
使用 systemd 服务方式重启:
sudo systemctl restart elasticsearch.service使用直接启动方式重启:
# 1. 查找ES进程
ps aux | grep elasticsearch
# 2. 停止进程(替换PID为实际进程ID)
sudo kill <PID>
# 3. 重新启动
sudo /usr/local/elasticsearch/bin/elasticsearch -d步骤3:验证IK分词器
# 测试IK分词器
curl -X POST "localhost:9200/_analyze?pretty" -H 'Content-Type: application/json' -d'
{
"analyzer": "ik_max_word",
"text": "中华人民共和国国歌"
}'成功安装后会返回分词结果。
IK分词器的两种分词模式:
ik_max_word:最细粒度分词,会将文本做最细粒度的拆分ik_smart:智能分词,会做最粗粒度的拆分
自定义词库(可选):
如需自定义词库,编辑配置文件:
sudo vim /usr/local/elasticsearch/plugins/ik/config/IKAnalyzer.cfg.xml在配置文件中添加自定义词典路径,然后创建对应的词典文件。
Windows
📚 参考资料
如需更详细的Windows安装教程,可以参考官方文档或相关博客教程。
前置要求
- Windows 10/11 或 Windows Server
- Java 11 或更高版本(Elasticsearch 7.x 需要)
安装步骤
步骤1:安装 Java
- 下载并安装 OpenJDK 11 或更高版本
- 配置 JAVA_HOME 环境变量
步骤2:下载 Elasticsearch
访问官方下载页面:
- Elasticsearch 下载
- 下载 ZIP 压缩包(如
elasticsearch-7.17.28-windows-x86_64.zip)
步骤3:解压文件
将下载的 ZIP 文件解压到任意目录,例如:
C:\ElasticsearchD:\Program Files\Elasticsearch
步骤4:修改配置文件(可选)
编辑 config\elasticsearch.yml 文件:
# 集群名称
cluster.name: my-application
# 网络地址
network.host: localhost
# HTTP 端口
http.port: 9200
# 单节点模式
discovery.type: single-node步骤5:启动 Elasticsearch
打开命令提示符(CMD)或 PowerShell,切换到 Elasticsearch 目录:
cd C:\Elasticsearch\elasticsearch-7.17.28
# 启动 Elasticsearch
bin\elasticsearch.bat步骤6:验证安装
打开浏览器或新的命令提示符窗口:
# 使用 curl 或浏览器访问
curl http://localhost:9200
# 或在浏览器中打开
# http://localhost:9200安装为 Windows 服务(可选)
如果需要将 Elasticsearch 安装为 Windows 服务:
# 以管理员身份运行 CMD,切换到 Elasticsearch 目录
cd C:\Elasticsearch\elasticsearch-7.17.28
# 安装服务
bin\elasticsearch-service.bat install
# 启动服务
bin\elasticsearch-service.bat start
# 停止服务
bin\elasticsearch-service.bat stop
# 卸载服务
bin\elasticsearch-service.bat remove常用命令
# 启动 Elasticsearch(前台运行)
bin\elasticsearch.bat
# 安装为服务
bin\elasticsearch-service.bat install
# 启动服务
bin\elasticsearch-service.bat start
# 停止服务
bin\elasticsearch-service.bat stop
# 查看服务状态
bin\elasticsearch-service.bat status配置说明
配置文件位置:
- 主配置文件:
config\elasticsearch.yml - JVM 配置:
config\jvm.options - 日志配置:
config\log4j2.properties
JVM 内存设置:
编辑 config\jvm.options 文件:
# 设置堆内存大小(建议设置为系统内存的一半,但不超过 32GB)
-Xms2g
-Xmx2g注意事项
- Windows 版本的 Elasticsearch 性能可能不如 Linux 版本
- 生产环境建议使用 Linux 系统
- 确保防火墙允许 9200 和 9300 端口
- 定期备份数据目录
常见问题
1. 启动失败
- 检查 Java 是否正确安装
- 查看日志文件:
logs\elasticsearch.log - 确保端口 9200 和 9300 未被占用
2. 内存不足
- 调整 JVM 堆内存设置
- 确保系统有足够的可用内存
3. 无法访问
- 检查防火墙设置
- 确认
network.host配置正确 - 验证服务是否正常运行

