当前位置: 首页 > news >正文

Linux中安装es

好的,这是一个非常详细的、分步的教程,指导您在 Linux 系统上部署 Elasticsearch 7.13.4。

部署前准备

  1. 系统要求:
    ◦ 内存:建议至少 4GB RAM,生产环境推荐 8GB 或更多。Elasticsearch 默认使用 1GB 堆内存,这对于学习测试足够,但生产需要调整。

    ◦ 磁盘空间:根据您的数据量决定,建议至少 10GB 可用空间。

    ◦ 操作系统:大多数现代 Linux 发行版(如 Ubuntu, CentOS, Red Hat 等)均可。

  2. 软件依赖:
    ◦ Java JDK:Elasticsearch 7.13.4 需要 Java 11。请确保已安装并配置好正确的 Java 版本。OpenJDK 是官方推荐的选择。

  3. 下载安装包:
    ◦ 从官方镜像站或官网下载 elasticsearch-7.13.4-linux-x86_64.tar.gz。

    ◦ 您可以使用 wget 命令直接下载到服务器:
    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.4-linux-x86_64.tar.gz

    ◦ 下载后,验证 SHA 校验码以确保文件完整(可选但推荐):
    shasum -a 512 elasticsearch-7.13.4-linux-x86_64.tar.gz
    # 将输出与从官网下载页获得的 SHA512 码进行对比

详细部署步骤

步骤 1:安装 Java JDK 11

如果您的系统没有安装 Java 11,请先安装。

• 对于 Ubuntu/Debian:
sudo apt update
sudo apt install openjdk-11-jdk

• 对于 CentOS/RHEL:
sudo yum install java-11-openjdk-devel

• 验证安装:
java -version

输出应显示 openjdk version "11.0.x"。

步骤 2:创建专用用户

出于安全原因,Elasticsearch 不允许使用 root 用户运行。我们必须创建一个专用用户。

创建一个名为 elasticsearch 的用户组

sudo groupadd elasticsearch

创建一个名为 elasticsearch 的用户,并将其添加到该用户组,同时创建家目录

sudo useradd -m -g elasticsearch -s /bin/bash elasticsearch

为 elasticsearch 用户设置密码(可选,用于切换用户)

sudo passwd elasticsearch

步骤 3:解压安装包

假设您将安装包下载到了 /opt 目录,这是一个常见的软件安装位置。

切换到安装包所在目录

cd /opt

解压压缩包

sudo tar -xzf elasticsearch-7.13.4-linux-x86_64.tar.gz

将解压后的目录重命名为一个更简洁的名字(可选但推荐)

sudo mv elasticsearch-7.13.4 elasticsearch

将目录的所有权授予我们刚创建的 elasticsearch 用户

sudo chown -R elasticsearch:elasticsearch /opt/elasticsearch

步骤 4:修改系统配置(重要)

Elasticsearch 可能需要比默认限制更多的资源。

  1. 修改文件描述符和线程数限制:
    编辑 /etc/security/limits.conf 文件,在文件末尾添加:
    elasticsearch - nofile 65535
    elasticsearch - memlock unlimited

    • soft nproc 4096
    • hard nproc 4096

    ◦ nofile 65535:允许 Elasticsearch 同时打开大量文件(索引由文件组成)。

    ◦ memlock unlimited:允许锁定内存,防止交换(SWAP)影响性能。

  2. 修改虚拟内存映射限制:
    Elasticsearch 使用 mmap 来高效存储索引。编辑 /etc/sysctl.conf 文件,添加:
    vm.max_map_count=262144

    然后应用更改:
    sudo sysctl -p

步骤 5:配置 Elasticsearch

主要配置文件是 /opt/elasticsearch/config/elasticsearch.yml。使用 nano 或 vim 进行编辑。
sudo -u elasticsearch nano /opt/elasticsearch/config/elasticsearch.yml

找到并修改以下关键配置(取消注释并修改值):

---------------------------------- Cluster -----------------------------------

集群名称,默认是 elasticsearch。同一集群内的节点应使用相同的名称。

cluster.name: my-es-cluster

------------------------------------ Node ------------------------------------

节点名称,默认是随机生成的UUID。建议赋予一个有意义的名称。

node.name: node-1

该节点是否有资格成为主节点(Master-eligible node)

node.master: true

该节点是否存储数据(Data node)

node.data: true

----------------------------------- Paths ------------------------------------

数据目录路径。可以配置多个路径(用逗号分隔)。

path.data: /opt/elasticsearch/data

日志目录路径。

path.logs: /opt/elasticsearch/logs

----------------------------------- Memory -----------------------------------

启动时锁定内存,与之前在 limits.conf 中的配置对应。

bootstrap.memory_lock: true

---------------------------------- Network -----------------------------------

设置绑定的主机地址。0.0.0.0 表示绑定所有网络接口,允许外部访问。

警告:生产环境请结合防火墙设置,不要随意开放为 0.0.0.0。

network.host: 0.0.0.0

设置HTTP访问端口,默认是 9200。

http.port: 9200

--------------------------------- Discovery ----------------------------------

设置初始主节点的地址列表,用于节点发现和组建集群。

对于单节点部署,填写本机节点名称。

discovery.seed_hosts: [“localhost”]
cluster.initial_master_nodes: [“node-1”]

保存并退出编辑器。

步骤 6:启动 Elasticsearch

切换到 elasticsearch 用户,并启动服务。

切换到 elasticsearch 用户

sudo -u elasticsearch -s

如果提示符变了,说明切换成功。然后进入 Elasticsearch 的 bin 目录

cd /opt/elasticsearch/bin/

在后端启动 Elasticsearch (使用 -d 参数)

./elasticsearch -d

• -d 参数表示以守护进程(daemon)模式运行。

步骤 7:验证安装

等待十几秒后,通过 HTTP API 检查 Elasticsearch 是否运行正常。
curl -X GET “localhost:9200/”

或者,如果您的服务器有图形界面浏览器,也可以从另一台机器访问 http://<您的服务器IP>:9200/。

您应该会收到一个类似以下的 JSON 响应:
{
“name” : “node-1”,
“cluster_name” : “my-es-cluster”,
“cluster_uuid” : “abcd1234…”,
“version” : {
“number” : “7.13.4”,
“build_flavor” : “default”,
“build_type” : “tar”,
“build_hash” : “…”,
“build_date” : “2021-07-14T…”,
“build_snapshot” : false,
“lucene_version” : “8.8.2”,
“minimum_wire_compatibility_version” : “6.8.0”,
“minimum_index_compatibility_version” : “6.0.0-beta1”
},
“tagline” : “You Know, for Search”
}

步骤 8(可选):配置为系统服务

手动启动不方便管理,最好配置为 systemd 服务。

  1. 创建服务文件:
    sudo nano /etc/systemd/system/elasticsearch.service

  2. 将以下内容写入文件:
    [Unit]
    Description=Elasticsearch
    Documentation=https://www.elastic.co
    After=network.target

    [Service]
    Type=simple
    User=elasticsearch
    Group=elasticsearch
    Environment=“ES_JAVA_OPTS=-Xms1g -Xmx1g”
    Environment=“ES_PATH_CONF=/opt/elasticsearch/config”
    ExecStart=/opt/elasticsearch/bin/elasticsearch
    Restart=always
    LimitNOFILE=65535
    LimitMEMLOCK=infinity

    [Install]
    WantedBy=multi-user.target

    ◦ User 和 Group:指定运行服务的用户和组。

    ◦ ES_JAVA_OPTS:设置 JVM 堆内存大小。-Xms1g -Xmx1g 表示初始和最大堆内存均为 1GB。生产环境请根据服务器内存调整(通常不超过物理内存的50%)。

    ◦ ES_PATH_CONF:指定配置目录路径。

  3. 重新加载 systemd 并启动服务:
    sudo systemctl daemon-reload
    sudo systemctl enable elasticsearch # 设置开机自启
    sudo systemctl start elasticsearch # 启动服务
    sudo systemctl status elasticsearch # 查看服务状态

现在,您可以使用 systemctl 命令来管理 Elasticsearch 了(start, stop, restart, status)。

故障排除

• 无法绑定到 9200 端口:检查是否有其他进程占用了该端口 (netstat -tulpn | grep :9200)。

• 内存锁定失败:确保已正确配置 /etc/security/limits.conf 并且用户是 elasticsearch。查看日志 /opt/elasticsearch/logs/my-es-cluster.log 获取详细信息。

• 无法用外网 IP 访问:

1.  确认 network.host 设置为 0.0.0.0。
2.  检查服务器防火墙(如 ufw 或 firewalld)是否放行了 9200 端口。▪   UFW (Ubuntu):sudo ufw allow 9200/tcp▪   Firewalld (CentOS):sudo firewall-cmd --add-port=9200/tcp --permanent && sudo firewall-cmd --reload

• 查看日志:日志文件是解决问题的第一选择,路径在 /opt/elasticsearch/logs/。

恭喜您!现在您已经成功在 Linux 上部署并运行了 Elasticsearch 7.13.4。接下来您可以开始安装 Kibana 作为可视化界面,或者开始学习如何插入和查询数据。

http://www.dtcms.com/a/418532.html

相关文章:

  • flink批处理-水位线
  • Unity单元测试:C语言轻量级框架实战
  • 网站怎么做搜索引擎优化、中建官网
  • 构建并运行最小 Linux 内核
  • 粤港澳全运会网络安全防御体系深度解析:威胁态势与实战防护
  • 数据结构——包装类泛型
  • 中国建设银行贵州分行网站安卓app制作入门教程
  • 17. 整个网站建设中的关键是专业客户管理系统
  • RuoYi 学习笔记 2:常用功能
  • 负载均衡式的在线OJ项目编写(五)
  • USBKey智能密码钥匙:从硬件安全到未来信任架构的深度技术解析
  • K8s日志架构:Sidecar容器实践指南
  • 前端开发,iframe 相关经验总结
  • 前端-JS基础-day3
  • MIT 6.S081 文件系统的崩溃恢复
  • 图片展示模块网站做一个多少钱影视vip网站建设教程
  • 环境搭建,Ubuntu 安装、客户端使用与性能认知
  • 合肥市城乡和建设网站南充建设企业网站
  • Music Muse AI音乐生成器全面解析:免费创作高质量音乐的核心要素
  • Go 语言中的结构体
  • Nest 文件上传与下载
  • 2025-9-28学习笔记
  • 深度学习(十三):向量化与矩阵化
  • 矩阵结构体 图片绘制 超级玛丽demo6
  • 承接网站开发 app开发学校网站建设责任书
  • 网站 管理检察内网门户网站建设
  • LeetCode 390 消除游戏
  • 汕头seo建站新品发布会的作用
  • 基于深度学习的CT扫描图像肝脏肿瘤智能检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】
  • Edge 浏览器安装selenium