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

Linux安装Elasticsearch集群-----docker安装es集群

目录

技术背景

1.2 实验目标

二、实验内容

1.1 服务器规划

二、传统方式安装Elasticsearch集群

2.1 安装Java环境(10.1.1.6/8)

2.3 配置集群节点(以10.1.1.6)

2.4 启动服务

ES Data节点1(10.1.1.8)

2.5 其他节点配置

测试

二、Docker安装方式任务分工

编写docker-compose.yml


技术背景

Elasticsearch(ES)作为分布式搜索引擎,其核心价值在于通过集群部署实现高可用性和数据冗余。本实验对比两种典型部署方案:

原生Linux部署:直接安装ES服务,适用于生产环境,资源利用率高,但需手动管理多节点。

Docker容器化部署:通过容器快速搭建集群,适合测试或动态扩展场景,具备资源隔离和快速回滚优势。

1.2 实验目标

掌握原生Linux环境下ES集群(≥2节点)的搭建与配置。

掌握Docker Compose部署ES集群的方法。

集成Kibana实现数据可视化。

对比两种部署方式的效率、资源占用及运维复杂度。

二、实验内容

环境准备

所有节点

# 关闭SELinux

sudo setenforce 0

sudo sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

# 调整内核参数

echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf

sudo sysctl -p

#关闭防火墙

systemctl stop firewalld

# 开放防火墙端口

sudo firewall-cmd --permanent --add-port={9200/tcp,9300/tcp,5601/tcp}

sudo firewall-cmd --reload

1.1 服务器规划

角色 IP地址 部署方式

ES Master节点1 10.1.1.6 传统安装/Docker

ES Date节点1 10.1.1.8 传统安装/Docker

Kibana节点 10.1.1.7 传统安装/Docker

1.2 系统要求

CentOS 7.x/8.x

Java 8+ (Elasticsearch依赖)

Docker 20.10+ (Docker部署方式需要)

防火墙开放端口:9200(HTTP), 9300(TCP传输), 5601(Kibana)

二、传统方式安装Elasticsearch集群

2.1 安装Java环境(10.1.1.6/8)

sudo yum install java-11-openjdk-devel

java -version

报错

# 选择 Java 11 作为默认版本(输入选项 2)

sudo alternatives --config java

2.2 安装Elasticsearch

# 下载RPM包(以7.17.4为例)

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.4-x86_64.rpm

sudo rpm --install elasticsearch-7.17.4-x86_64.rpm

2.3 配置集群节点(以10.1.1.6)

sudo vi /etc/elasticsearch/elasticsearch.yml

修改以下配置:

cluster.name: my-es-cluster

node.name: es-master-1

node.roles: [master, data]

network.host: 0.0.0.0

discovery.seed_hosts: ["10.1.1.6", "10.1.1.8"]

cluster.initial_master_nodes: ["es-master-1", "es-master-2"]

http.port: 9200

transport.port: 9300

2.4 启动服务

sudo systemctl daemon-reload

sudo systemctl start elasticsearch

sudo systemctl enable elasticsearch

ES Data节点1(10.1.1.8)

步骤1:安装Java环境(同上)

步骤2:安装Elasticsearch(同上)

步骤3:配置Elasticsearch

 cluster.name: my-es-cluster

 node.name: es-data-1

 node.roles: [data] # 纯Data节点

 network.host: 0.0.0.0

 discovery.seed_hosts: ["10.1.1.6", "10.1.1.8"]

 cluster.initial_master_nodes: ["es-master-1"]

 http.port: 9200

 transport.port: 9300

2.5 其他节点配置

重复2.2-2.4步骤,修改node.name和IP地址,确保discovery.seed_hosts包含所有节点IP。

 Kibana节点(10.1.1.7)

步骤1:安装Kibana

 wget https://artifacts.elastic.co/downloads/kibana/kibana-7.17.4-x86_64.rpm

 sudo rpm --install kibana-7.17.4-x86_64.rpm

步骤2:配置Kibana

 sudo vi /etc/kibana/kibana.yml

修改配置:

 server.host: "0.0.0.0"

 elasticsearch.hosts: ["http://10.1.1.6:9200", "http://10.1.1.7:9200"]

步骤3:启动服务

 sudo systemctl start kibana

 sudo systemctl enable kibana

测试

10.1.1.8

成功

如果报错

Java版本与elastic版本不同步,查看Java版本版本太低则需要重新安装

二、Docker安装方式任务分工

1. 所有节点(6/7/8)

步骤1:安装Docker和docker compose

sudo yum install -y docker

sudo systemctl start docker

sudo systemctl enable docker

编写docker-compose.yml

sudo yum install docker-compose-plugin

2. ES Master节点1(10.1.1.6)

步骤3:创建Docker Compose文件

 version: '3.8'

 services:

 es-master1:

 image: elasticsearch:7.17.4

 container_name: es-master1

 environment:

 - node.name=es-master1

 - cluster.name=docker-es-cluster

 - discovery.seed_hosts=es-data1

 - cluster.initial_master_nodes=es-master1

 - "ES_JAVA_OPTS=-Xms512m -Xmx512m"

 ulimits:

 memlock:

 soft: -1

 hard: -1

 volumes:

 - es-master1-data:/usr/share/elasticsearch/data

 ports:

 - "9200:9200"

 networks:

 - es-net

 volumes:

 es-master1-data:

 networks:

 es-net:

 driver: bridge

步骤4:启动容器

 docker-compose up -d

3. ES Data节点1(8)

步骤3:创建Docker Compose文件

 version: '3.8'

 services:

 es-data1:

 image: elasticsearch:7.17.4

 container_name: es-data1

 environment:

 - node.name=es-data1

 - cluster.name=docker-es-cluster

 - discovery.seed_hosts=es-master1

 - "ES_JAVA_OPTS=-Xms512m -Xmx512m"

 ulimits:

 memlock:

 soft: -1

 hard: -1

 volumes:

 - es-data1-data:/usr/share/elasticsearch/data

 networks:

 - es-net

 volumes:

 es-data1-data:

 networks:

 es-net:

 driver: bridge

步骤4:启动容器(同上)

4. Kibana节点(7)

步骤3:创建Docker Compose文件

 version: '3.8'

 services:

 kibana:

 image: kibana:7.17.4

 container_name: kibana

 environment:

 ELASTICSEARCH_HOSTS: http://es-master1:9200

 ports:

 - "5601:5601"

 networks:

 - es-net

 depends_on:

 - es-master1

 networks:

 es-net:

 driver: bridge

五、集群验证

在任意节点执行以下命令:

 curl -XGET "http://10.1.1.7:9200/_cluster/health?pretty"

 curl -XGET "http://10.1.1.7:9200/_cat/nodes?v&pretty"

或通过浏览器访问Kibana:http://10.1.1.7:5601

- es-data1-data:/usr/share/elasticsearch/data

networks:

- es-net

volumes:

es-ma

六、总结

传统部署适合长期稳定运行的环境,需手动管理依赖和配置。

Docker部署便于快速扩展和隔离环境,适合测试或动态调整资源。

Kibana提供直观的集群监控和数据可视化界面。

注意事项:生产环境需配置安全认证(X-Pack)

调整JVM内存避免OOM

定期备份集群数据

监控磁盘空间和节点负载


http://www.mrgr.cn/news/95172.html

相关文章:

  • 工业相机选型
  • liunx银河麒麟v10安装MYSQL8.3.0
  • c语言基础编程入门练习题
  • Kafka 八股文
  • 使用 Spring 的 FactoryBean 创建和获取 Bean 对象
  • SpringBoot 第二课(Ⅰ) 整合springmvc(详解)
  • 备赛蓝桥杯之第十六届模拟赛3期职业院校组
  • ffmpeg库视频硬解码使用流程
  • C语言每日一练——day_8
  • 【Dive Into Stable Diffusion v3.5】1:开源项目正式发布——深入探索SDv3.5模型全参/LoRA/RLHF训练
  • Linux驱动学习笔记(四)
  • ffmpeg库视频硬编码使用流程
  • 正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-6.2uboot启动流程-lowlevel_init,s_init,_main函数执行
  • mysql-innodb存储引擎主键索引叶子结点数据结构(非单纯的双向链表)
  • atop命令介绍(全面资源监控:同时监控CPU、内存、磁盘、网络和进程活动)性能监控、资源数据
  • 前端iView面试题及参考答案
  • 分布式数据库系统(DDBS)
  • Java 大视界 -- Java 大数据在智能体育赛事直播数据分析与观众互动优化中的应用(142)
  • UE4学习笔记 FPS游戏制作7 敌人的自动寻路
  • openEuler24.03 LTS下安装Hadoop3完全分布式