以下是 Elasticsearch (ES) 通过 .tar.gz
压缩包安装的详细步骤(适用于 Linux/macOS 系统):
1. 准备工作
1.1 检查系统依赖
-
Java 环境 :ES 需要 JDK,推荐 OpenJDK 11/17 (ES 7.x/8.x 兼容版本)。
bashjava -version # 检查是否已安装
-
如果未安装,使用以下命令安装(以 Ubuntu 为例):
bashsudo apt update sudo apt install openjdk-11-jdk
-
1.2 创建专用用户
-
Elasticsearch 禁止以 root 用户运行 ,需创建普通用户:
bashsudo useradd -m elasticsearch sudo passwd elasticsearch # 设置密码 sudo usermod -aG sudo elasticsearch # 授予 sudo 权限(可选)
2. 下载并解压 Elasticsearch
2.1 下载最新版本
-
从 Elastic 官网 获取
.tar.gz
包(以 8.13.0 为例):bashwget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.0-linux-x86_64.tar.gz
2.2 校验文件完整性
bash
sha512sum elasticsearch-8.13.0-linux-x86_64.tar.gz # 对比官网提供的 SHA512
2.3 解压到目标目录
bash
sudo tar -xzf elasticsearch-8.13.0-linux-x86_64.tar.gz -C /usr/local/
sudo mv /usr/local/elasticsearch-8.13.0 /usr/local/elasticsearch
2.4 设置权限
bash
sudo chown -R elasticsearch:elasticsearch /usr/local/elasticsearch
3. 配置 Elasticsearch
3.1 修改配置文件
-
编辑主配置文件
/usr/local/elasticsearch/config/elasticsearch.yml
:bashsudo su elasticsearch cd /usr/local/elasticsearch/config nano elasticsearch.yml
-
基础配置示例 (按需调整):
yamlcluster.name: my-es-cluster # 集群名称 node.name: node-1 # 节点名称 path.data: /var/lib/elasticsearch # 数据存储路径(需提前创建并授权) path.logs: /var/log/elasticsearch # 日志路径 network.host: 0.0.0.0 # 允许所有 IP 访问(生产环境建议限制) discovery.type: single-node # 单节点模式(集群需配置其他节点) xpack.security.enabled: true # 启用安全功能(8.x 默认开启)
-
3.2 设置 JVM 堆内存
-
修改
/usr/local/elasticsearch/config/jvm.options
:bash-Xms2g # 最小堆内存(建议不超过物理内存的 50%) -Xmx2g # 最大堆内存
4. 启动 Elasticsearch
4.1 切换到专用用户
bash
sudo su elasticsearch
cd /usr/local/elasticsearch
4.2 启动服务(前台运行)
bash
./bin/elasticsearch
-
如果看到类似以下输出,说明启动成功:
plaintext[2024-07-07T10:00:00,000][INFO ][o.e.n.Node] [node-1] started
4.3 验证运行状态
-
新开终端访问:
bashcurl -XGET "http://localhost:9200/" --user elastic:<password>
-
首次启动会生成默认密码(在终端日志中查找),或手动重置:
bash./bin/elasticsearch-reset-password -u elastic
-
5. 设置为系统服务(可选)
5.1 创建 systemd 服务文件
bash
sudo nano /etc/systemd/system/elasticsearch.service
-
内容如下:
ini[Unit] Description=Elasticsearch After=network.target [Service] User=elasticsearch Group=elasticsearch ExecStart=/usr/local/elasticsearch/bin/elasticsearch Restart=always LimitNOFILE=65536 # 解决 "max file descriptors" 错误 [Install] WantedBy=multi-user.target
5.2 启动并开机自启
bash
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
sudo systemctl status elasticsearch # 检查状态
6. 常见问题解决
6.1 内存锁定失败
-
错误:
memory locking requested for elasticsearch process but memory is not locked
-
解决方案:
bashsudo nano /etc/security/limits.conf
添加:
plaintextelasticsearch soft memlock unlimited elasticsearch hard memlock unlimited
6.2 最大文件描述符不足
-
错误:
max file descriptors [4096] for elasticsearch process is too low
-
解决方案:
bashsudo nano /etc/security/limits.conf
添加:
plaintextelasticsearch - nofile 65536
总结
- 安装 JDK → 2. 下载解压 ES → 3. 配置
elasticsearch.yml
→ 4. 启动服务 → 5. 验证访问
- 生产环境建议:
- 使用 systemd 托管服务。
- 启用 安全配置(如 HTTPS、RBAC)。
- 监控 堆内存使用情况(避免 OOM)。
官方文档参考:Elasticsearch Install Guide