购买咨询
微信咨询
电话咨询
预约演示
跳转到内容

安装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:检查系统架构

bash
# 查看系统架构
uname -m
# 或
dpkg --print-architecture

输出结果:

  • x86_64amd64:使用 amd64 版本
  • aarch64arm64:使用 arm64 版本

步骤2:下载 Elasticsearch 软件包(ARM64 架构)

下载 ARM64 版本(华为云镜像,速度快)
bash
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

bash
# 解压文件
tar -zxvf elasticsearch-8.7.1-linux-aarch64.tar.gz

配置 ES 内存限制(推荐)

在移动文件之前,建议先配置 Elasticsearch 的内存限制。编辑 JVM 配置文件:

bash
vim elasticsearch-8.7.1/config/jvm.options

找到以下两行(通常在文件开头):

-Xms4g
-Xmx4g

修改为(限制为 1GB):

-Xms1g
-Xmx1g

内存配置说明

  • -Xms:JVM 初始堆内存大小
  • -Xmx:JVM 最大堆内存大小
  • 建议将两个值设置为相同,避免运行时动态调整内存
  • 1GB 适用于小型项目或测试环境,生产环境请根据实际需求调整(建议为系统内存的一半,但不超过 32GB)

继续安装:

bash
# 移动到安装目录
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 配置文件

编辑配置文件:

bash
sudo vim /usr/local/elasticsearch/config/elasticsearch.yml

Vim 编辑器使用提示

  • i 进入编辑模式
  • 编辑完成后按 Esc 退出编辑模式
  • 输入 :wq 保存并退出
  • 输入 :q! 不保存直接退出

添加或修改以下配置:

yaml
# 集群名称
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 服务

方式一:直接启动(后台运行)

bash
sudo /usr/local/elasticsearch/bin/elasticsearch -d

方式二:创建 systemd 服务(推荐)

创建服务文件:

bash
sudo vim /etc/systemd/system/elasticsearch.service

添加以下内容:

ini
[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

启动服务:

bash
# 重新加载 systemd
sudo systemctl daemon-reload

# 启动并设置开机自启
sudo systemctl enable --now elasticsearch.service

# 查看服务状态
sudo systemctl status elasticsearch.service

# 检查端口监听
sudo netstat -tnulp | grep -E '9200|9300'

步骤6:验证安装

bash
# 直接访问,无需密码
curl http://localhost:9200

成功返回示例:

json
{
  "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"
}

查看节点信息:

bash
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/

或直接下载:

bash
# 进入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 服务方式重启:

bash
sudo systemctl restart elasticsearch.service

使用直接启动方式重启:

bash
# 1. 查找ES进程
ps aux | grep elasticsearch

# 2. 停止进程(替换PID为实际进程ID)
sudo kill <PID>

# 3. 重新启动
sudo /usr/local/elasticsearch/bin/elasticsearch -d

步骤3:验证IK分词器

bash
# 测试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:智能分词,会做最粗粒度的拆分

自定义词库(可选):

如需自定义词库,编辑配置文件:

bash
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

  1. 下载并安装 OpenJDK 11 或更高版本
  2. 配置 JAVA_HOME 环境变量

步骤2:下载 Elasticsearch

访问官方下载页面:

步骤3:解压文件

将下载的 ZIP 文件解压到任意目录,例如:

  • C:\Elasticsearch
  • D:\Program Files\Elasticsearch

步骤4:修改配置文件(可选)

编辑 config\elasticsearch.yml 文件:

yaml
# 集群名称
cluster.name: my-application

# 网络地址
network.host: localhost

# HTTP 端口
http.port: 9200

# 单节点模式
discovery.type: single-node

步骤5:启动 Elasticsearch

打开命令提示符(CMD)或 PowerShell,切换到 Elasticsearch 目录:

cmd
cd C:\Elasticsearch\elasticsearch-7.17.28

# 启动 Elasticsearch
bin\elasticsearch.bat

步骤6:验证安装

打开浏览器或新的命令提示符窗口:

cmd
# 使用 curl 或浏览器访问
curl http://localhost:9200

# 或在浏览器中打开
# http://localhost:9200

安装为 Windows 服务(可选)

如果需要将 Elasticsearch 安装为 Windows 服务:

cmd
# 以管理员身份运行 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

常用命令

cmd
# 启动 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 配置正确
  • 验证服务是否正常运行

调问-专业的开源问卷表单系统