Elasticsearch(ES)的安装核心是「**环境依赖(Java)→ 下载解压 → 基础配置 → 启动验证**」

Elasticsearch 安装与配置指南(Windows/Linux/Mac 通用)

Elasticsearch(ES)的安装核心是「环境依赖(Java)→ 下载解压 → 基础配置 → 启动验证」,支持 Windows、Linux、Mac 系统,以下是 step-by-step 实操教程,含单节点部署(开发/测试)和核心配置说明,适合新手快速上手。

一、前置条件:安装 Java 环境(必做)

ES 基于 Java 开发,必须安装 Java 8 或 Java 11(推荐 Java 11,兼容性最好),不支持 Java 17+ 部分版本,需提前配置环境变量。

1. 检查是否已安装 Java

打开终端/命令提示符,输入以下命令,若显示版本号则已安装(需满足 1.8.x11.x):

java -version

示例合格输出(Java 11):

openjdk version "11.0.20" 2023-07-18 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.20.0.8-1.el7_9) (build 11.0.20+8-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.20.0.8-1.el7_9) (build 11.0.20+8-LTS, mixed mode, sharing)

2. 安装 Java(未安装时操作)

方式 1:手动安装(推荐,稳定)
  • 下载地址(Oracle JDK 11,需注册 Oracle 账号):
    https://www.oracle.com/java/technologies/downloads/#java11
  • 或 OpenJDK 11(无需注册,免费):
    https://adoptium.net/temurin/releases/?version=11
方式 2:命令行安装(Linux/Mac)
  • Linux(CentOS/RHEL):
    yum install java-11-openjdk-devel -y
    
  • Linux(Ubuntu/Debian):
    apt-get install openjdk-11-jdk -y
    
  • Mac(Homebrew):
    brew install openjdk@11
    

3. 配置 Java 环境变量(关键)

Windows 系统:
  1. 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」;
  2. 新建「系统变量」:
    • 变量名:JAVA_HOME
    • 变量值:Java 安装路径(如 C:\Program Files\Java\jdk-11.0.20);
  3. 编辑「系统变量」中的 Path,新增 2 条:
    • %JAVA_HOME%\bin
    • %JAVA_HOME%\jre\bin(若 JDK 11 无 jre 目录,可执行 bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre 生成);
  4. 验证:重启命令提示符,输入 java -version 显示版本即生效。
Linux/Mac 系统:
  1. 编辑环境变量配置文件(如 ~/.bashrc/etc/profile):
    vi ~/.bashrc
    
  2. 新增以下内容(Java 安装路径需替换为实际路径,可通过 which java 查找):
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.20.0.8-1.el7_9.x86_64
    export PATH=$JAVA_HOME/bin:$PATH
    
  3. 生效配置:
    source ~/.bashrc  # 或 source /etc/profile
    
  4. 验证:输入 java -version 显示版本即生效。

二、安装 Elasticsearch(3 种系统通用流程)

1. 下载 ES 安装包

推荐安装 8.x 稳定版(如 8.15.0,最新稳定版可在官网查询):

  • 官网下载地址:https://www.elastic.co/cn/downloads/elasticsearch
  • 选择对应系统(Windows/Linux/Mac),下载「ZIP/TAR」包(无需安装,解压即可用)。

2. 解压安装包(避免中文路径)

  • Windows:解压到无中文、无空格目录(如 D:\Elasticsearch\elasticsearch-8.15.0);
  • Linux/Mac:解压到 /usr/local 或自定义目录(如 ~/elasticsearch):
    # Linux/Mac 示例:下载后解压到 /usr/local
    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.15.0-linux-x86_64.tar.gz
    tar -zxvf elasticsearch-8.15.0-linux-x86_64.tar.gz -C /usr/local/
    # 重命名(可选,方便操作)
    mv /usr/local/elasticsearch-8.15.0 /usr/local/elasticsearch
    

3. 重要提醒:禁止用 root 用户启动(Linux/Mac)

ES 不允许 root 用户直接启动,需创建普通用户并授权:

# 1. 创建普通用户(如 esuser)
useradd esuser
# 2. 授权 ES 目录给该用户
chown -R esuser:esuser /usr/local/elasticsearch
# 3. 切换到普通用户
su esuser

三、核心配置(单节点部署,开发/测试环境)

ES 配置文件在 config 目录下,核心文件为 elasticsearch.yml(主配置)和 jvm.options(JVM 内存配置),无需复杂配置,修改以下关键项即可。

1. 修改 JVM 内存配置(config/jvm.options

ES 默认 JVM 堆内存为 1GB,需根据服务器内存调整(建议设为物理内存的 50%,最大不超过 31GB):

  • 编辑 config/jvm.options,找到以下两行,修改为合适值:
    -Xms4g  # 最小堆内存(如 4GB,根据实际内存调整)
    -Xmx4g  # 最大堆内存(必须与最小堆内存一致,避免频繁扩容)
    
  • 示例:8GB 物理内存设为 4g,16GB 设为 8g,32GB 设为 16g(不超过 31GB)。

2. 修改主配置(config/elasticsearch.yml

打开 config/elasticsearch.yml,添加/修改以下配置(单节点部署核心项):

# 1. 集群名称(默认 elasticsearch,可自定义,多节点需一致)
cluster.name: my-elasticsearch-cluster

# 2. 节点名称(默认随机生成,可自定义)
node.name: node-1

# 3. 数据存储路径(默认在 data 目录,建议自定义,避免重装丢失)
path.data: /usr/local/elasticsearch/data  # Linux/Mac
# path.data: D:\Elasticsearch\elasticsearch-8.15.0\data  # Windows

# 4. 日志存储路径(默认在 logs 目录,可自定义)
path.logs: /usr/local/elasticsearch/logs  # Linux/Mac
# path.logs: D:\Elasticsearch\elasticsearch-8.15.0\logs  # Windows

# 5. 网络配置(允许外部访问,单节点设为 0.0.0.0)
network.host: 0.0.0.0

# 6. 端口配置(默认 9200 为 HTTP 通信端口,9300 为集群内部端口)
http.port: 9200

# 7. 单节点部署关键配置(禁用集群发现,避免自动寻找节点)
discovery.type: single-node

# 8. 关闭内存锁定(避免启动失败,开发环境可选)
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

# 9. 跨域配置(允许 Kibana、Python 客户端等外部工具访问,开发环境必开)
http.cors.enabled: true
http.cors.allow-origin: "*"  # 允许所有来源(生产环境需指定具体 IP)
http.cors.allow-headers: Authorization,Content-Type

# 10. 认证配置(8.x 默认开启 HTTPS 和密码认证,开发环境可简化)
# 禁用 HTTPS(开发环境可选,方便调试,生产环境建议开启)
xpack.security.enabled: false  # 关闭密码认证(开发环境)
xpack.security.transport.ssl.enabled: false  # 关闭传输层 SSL

配置说明:

  • 生产环境需开启 xpack.security.enabled: true(密码认证)和 HTTPS,下文会补充;
  • 路径配置(path.data/path.logs)需确保当前用户有读写权限(Linux/Mac 需 chown -R esuser:esuser 授权);
  • network.host: 0.0.0.0 允许外部设备访问(如 Windows 部署后,局域网内其他电脑可通过 IP 访问)。

四、启动 Elasticsearch

1. Windows 系统启动:

  1. 打开「命令提示符」(以普通用户运行,无需管理员);
  2. 切换到 ES 解压目录的 bin 文件夹:
    cd D:\Elasticsearch\elasticsearch-8.15.0\bin
    
  3. 启动 ES:
    elasticsearch.bat
    
  4. 启动成功标志:终端显示 started(无报错,日志无红色异常)。

2. Linux/Mac 系统启动:

  1. 切换到普通用户(su esuser);
  2. 切换到 ES 目录的 bin 文件夹:
    cd /usr/local/elasticsearch/bin
    
  3. 启动 ES:
    • 前台启动(测试用,关闭终端即停止):
      ./elasticsearch
      
    • 后台启动(生产用,推荐):
      ./elasticsearch -d  # -d 表示后台运行
      
  4. 启动成功检查:
    # 查看 ES 进程是否存在
    ps -ef | grep elasticsearch
    # 查看日志(确认无报错)
    tail -f /usr/local/elasticsearch/logs/my-elasticsearch-cluster.log
    

常见启动失败问题:

  • Java 环境未配置:报错 Could not find or load main class org.elasticsearch.bootstrap.Elasticsearch,检查 JAVA_HOME 配置;
  • 端口被占用:报错 port 9200 is already in use,关闭占用 9200/9300 端口的程序,或修改 http.port 配置;
  • 权限不足:Linux/Mac 报错 Permission denied,确保 path.data/path.logs 目录已授权给普通用户;
  • 内存不足:报错 Java heap space,调整 jvm.options 中的 -Xms/-Xmx 为更小值(如 2GB)。

五、验证 ES 是否启动成功

1. 浏览器/Postman 验证:

打开浏览器,输入 http://localhost:9200(本地访问)或 http://[ES服务器IP]:9200(外部访问),若返回以下 JSON 即成功:

{
  "name" : "node-1",
  "cluster_name" : "my-elasticsearch-cluster",
  "cluster_uuid" : "xxxxxxxxxxxxxxxxxxxxxxxx",
  "version" : {
    "number" : "8.15.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "xxxxxxxxxxxxxxxxxxxxxxxx",
    "build_date" : "2024-05-21T10:02:17.694373207Z",
    "build_snapshot" : false,
    "lucene_version" : "9.10.0",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

2. 命令行验证(curl):

终端输入以下命令,返回上述 JSON 即成功:

curl http://localhost:9200

六、生产环境补充配置(可选)

若用于生产环境,需开启认证、优化性能,以下是关键补充配置:

1. 开启密码认证(config/elasticsearch.yml

xpack.security.enabled: true  # 开启密码认证
xpack.security.transport.ssl.enabled: true  # 开启传输层 SSL
xpack.security.http.ssl.enabled: true  # 开启 HTTP 层 SSL(HTTPS)
xpack.security.http.ssl.certificate: config/certs/http_ca.crt  # 证书路径(默认自动生成)
  • 重启 ES 后,执行以下命令设置内置用户密码(elastic 为超级管理员):
    cd /usr/local/elasticsearch/bin
    ./elasticsearch-setup-passwords interactive  # 交互式设置密码,记牢 elastic 用户密码
    
  • 验证:访问 https://localhost:9200,输入用户名 elastic 和密码,返回集群信息即生效。

2. 性能优化配置(生产环境)

# 磁盘水位线(避免磁盘满,默认 85%/90%/95%)
cluster.routing.allocation.disk.watermark.low: 85%
cluster.routing.allocation.disk.watermark.high: 90%
cluster.routing.allocation.disk.watermark.flood_stage: 95%

# 索引刷新间隔(非实时场景设为 30s,减少刷盘开销)
index.refresh_interval: 30s

# 线程池优化(根据 CPU 核心数调整)
thread_pool.write.size: 4  # 写入线程池大小(建议 CPU 核心数的 50%)
thread_pool.search.size: 8  # 搜索线程池大小(建议 CPU 核心数)

3. 防火墙配置(Linux 生产环境)

开放 9200 端口(HTTP/HTTPS),允许应用服务器访问:

# CentOS/RHEL
firewall-cmd --permanent --add-port=9200/tcp
firewall-cmd --reload

# Ubuntu/Debian
ufw allow 9200/tcp
ufw reload

七、停止 Elasticsearch

1. Windows 系统:

直接关闭启动 ES 的命令提示符窗口,或在任务管理器中结束 elasticsearch.exe 进程。

2. Linux/Mac 系统:

# 1. 查找 ES 进程 ID
ps -ef | grep elasticsearch
# 2. 杀死进程(替换为实际 PID)
kill -9 [ES_PID]
# 或用 ES 自带脚本停止(后台启动时)
cd /usr/local/elasticsearch/bin
./elasticsearch-stop.sh

八、总结:安装配置核心流程

安装 Java 11 → 下载 ES 并解压 → 配置 JVM 内存 → 修改 elasticsearch.yml(网络/跨域/路径)→ 启动 ES → 验证访问

关键要点:

  1. Java 环境是前提,必须匹配版本(8/11);
  2. 路径避免中文/空格,Linux/Mac 需用普通用户启动;
  3. 开发环境可关闭认证,生产环境必须开启密码和 HTTPS;
  4. 堆内存配置为物理内存的 50%,最大不超过 31GB。

按以上步骤,即可完成 ES 单节点部署,后续可结合 Kibana 可视化、Python 客户端进行数据分析或全文检索开发。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Bol5261

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

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

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

打赏作者

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

抵扣说明:

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

余额充值