搭建 Elasticsearch 集群:完整教程

本文将详细介绍如何在 Linux 环境下搭建一个 Elasticsearch 集群,涵盖环境准备、配置优化、服务启动等多个环节。


一、环境准备

  1. 创建安装目录

    复制代码
    mkdir /es
    cd /es
  2. 解压 Elasticsearch 安装包

    复制代码
    tar -xzf elasticsearch-7.10.1-linux-x86_64.tar.gz -C /es
  3. 配置环境变量 编辑 ~/.bashrc 文件,加入以下内容:

    复制代码
    export JAVA_HOME=/es/elasticsearch-7.10.1/jdk
    export ES_JAVA_HOME=/es/elasticsearch-7.10.1/jdk
    export CLASSPATH=$JAVA_HOME/lib
    export PATH=$JAVA_HOME/bin:$PATH

    执行以下命令以生效:

    复制代码
    source ~/.bashrc
  4. 创建运行用户和分配权限

    复制代码
    groupadd es
    useradd es -g es -p 12345678
    chown -R es:es /es/elasticsearch-7.10.1/

二、配置 Elasticsearch

  1. 修改配置文件 编辑 /es/elasticsearch-7.10.1/config/elasticsearch.yml

    复制代码
    cluster.name: my-application
    node.name: node-2
    path.data: /data/data
    path.logs: /data/logs
    network.host: 0.0.0.0
    network.publish_host: 172.16.0.80
    node.attr.ip: 172.16.0.80
    http.port: 9200
    discovery.seed_hosts: ['172.16.0.80','172.16.0.26','172.16.0.250']
    cluster.initial_master_nodes: ['node-1', 'node-2', 'node-3']
    action.destructive_requires_name: true
    node.roles: [master, data]
  2. 挂载数据盘

    复制代码
    lsblk
    mkfs.ext4 /dev/vdb
    mount /dev/vdb /data
    lsblk
    chown -R es:es /data/
  3. 调整虚拟内存 编辑 /etc/sysctl.conf 文件,添加以下内容:

    复制代码
    vm.max_map_count = 262144

    立即生效:

    复制代码
    sysctl -p

三、启动服务

  1. 以运行用户启动 Elasticsearch 切换到 es 用户并启动服务:

    复制代码
    su es
    ./elasticsearch -d
  2. 验证集群节点状态 使用以下命令查看节点状态:

    复制代码
    curl -X GET "localhost:9200/_cat/nodes?v&h=ip,node.role,name"

四、附加说明

  1. 修复权限问题 如果运行过程中出现权限问题,可以执行以下命令:

    复制代码
    chown -R es:es /es/elasticsearch-7.10.1/
    chown -R es:es /data
    chmod +x /es/elasticsearch-7.10.1/jdk/jre/bin/java

通过上述步骤,您应该能够成功搭建并运行一个 Elasticsearch 集群。希望本文对您有所帮助!如有问题,欢迎留言讨论。


相关推荐
Johnstons2 天前
Wireshark ExpertInfo是什么?一文讲透异常分级、适用场景、和传统抓包阅读的区别与排查标准
网络·测试工具·wireshark·es
Johnstons7 天前
网络故障定位工具怎么搭配:Wireshark、tcpdump、监控平台各自该在什么时候上场?
数据分析·wireshark·php·es·tcpdump·网络故障定位工具搭配与选型
Johnstons8 天前
网络诊断工具怎么选:从监控告警到抓包定位的完整方法论
服务器·网络·php·es·抓包分析·网络诊断工具选型与排障方法
Johnstons8 天前
抓包工具怎么选:Wireshark、tcpdump 与流量回溯平台的边界、场景与排障判断标准
测试工具·数据分析·wireshark·es·tcpdump·抓包工具选型与流量回溯
深念Y23 天前
从字典到向量:索引技术的演进
向量·es·索引·倒排索引·向量数据库·字典·倒排文件索引
A__tao1 个月前
Elasticsearch Mapping 一键生成 Go Struct,支持嵌套解析
elasticsearch·es
A__tao1 个月前
告别手写!ES Mapping 自动生成 Go Struct(支持嵌套)
elasticsearch·golang·es
尽兴-1 个月前
微服务日志采集与分析系统实战:ELK 架构全解析与落地
elk·微服务·架构·kibana·es·logstash·filebeat
rainFFrain1 个月前
Elasticsearch索引创建与搜索
es
1104.北光c°1 个月前
深入浅出 Elasticsearch:从搜索框到精准排序的架构实战
java·开发语言·elasticsearch·缓存·架构·全文检索·es