docker安装集群版ElasticSearch

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: docker安装集群版ElasticSearch

新建一个网络,后期把kibana、es都加入改网络里

docker network create es-net

下载elasticsearch镜像

 docker pull elasticsearch:7.6.2;

修改虚拟内存区域大小,否则会因为过小而无法启动:

sysctl -w vm.max_map_count=262144

新建目录
新建一个目录,创建三个文件夹:node-1、node-2、node-3
image.png

在每个节点文件夹下创建config,data文件夹
image.png

修改每个节点文件夹下data目录的权限(不修改后面会报错,权限不够)

chmod 777 data/

编写配置文件(elasticsearch.yml)

#进入node-1目录下的config目录
cd node-1/config
#创建elasticsearch.yml
vim elasticsearch.yml
  • node-1
    #-------------------------------------------
    # es1
    # 集群的名称(各节点*集群名称*需要保持一致)
    cluster.name: "myt-escluster"
    # # # 节点的名称
    node.name: node-1
    # # # 此节点是否可以用作master节点
    node.master: true
    # # # 此节点是否是存储节点
    node.data: true
    # # # 此节点是否是预处理节点 如果是master节点的话 建议这里是true
    node.ingest: true
    #设置主机IP 0.0.0.0时外网可以访问到
    network.host: 0.0.0.0
    # 配置端口
    http.port: 9201
    # 集群通信端口
    transport.port: 9301
    #集群内节点信息 每个节点会共享自己的此参数
    discovery.seed_hosts: ["es1:9301","es2:9302","es3:9303"]
    #集群的master候选节点目录。只有在初始化的时候才生效。
    #这里只写node-1 并且配置这个参数 是用于快速搭建集群。集群已启动自动node-1   是master
    cluster.initial_master_nodes: ["node-1"]
    #cross 跨域访问 配置这个之后 head就可以用了
    http.cors.enabled:  true
    http.cors.allow-origin:  "*"
    
  • node-2
#进入node-2目录下的config目录
cd node-2/config
#创建elasticsearch.yml
vim elasticsearch.yml
# es2
# 集群的名称(各节点*集群名称*需要保持一致)
cluster.name: "myt-escluster"
# # # 节点的名称
node.name: node-2
# # # 此节点是否可以用作master节点
node.master: true
# # # 此节点是否是存储节点
node.data: true
# # # 此节点是否是预处理节点 如果是master节点的话 建议这里是true
node.ingest: true
#设置主机IP 0.0.0.0时外网可以访问到
network.host: 0.0.0.0
# 配置端口
http.port: 9202
# 集群通信端口
transport.port: 9302
#集群内节点信息 每个节点会共享自己的此参数
discovery.seed_hosts: ["es1:9301","es2:9302","es3:9303"]
#集群的master候选节点目录。只有在初始化的时候才生效。
#这里只写node-1 并且配置这个参数 是用于快速搭建集群。集群已启动自动node-1   是master
cluster.initial_master_nodes: ["node-1"]
#cross 跨域访问 配置这个之后 head就可以用了
http.cors.enabled:  true
http.cors.allow-origin:  "*"
  • node-3
#进入node-3目录下的config目录
cd node-3/config
#创建elasticsearch.yml
vim elasticsearch.yml
# es3
# 集群的名称(各节点*集群名称*需要保持一致)
cluster.name: "myt-escluster"
# # # 节点的名称
node.name: node-3
# # # 此节点是否可以用作master节点
node.master: true
# # # 此节点是否是存储节点
node.data: true
# # # 此节点是否是预处理节点 如果是master节点的话 建议这里是true
node.ingest: true
#设置主机IP 0.0.0.0时外网可以访问到
network.host: 0.0.0.0
# 配置端口
http.port: 9203
# 集群通信端口
transport.port: 9303
#集群内节点信息 每个节点会共享自己的此参数
discovery.seed_hosts: ["es1:9301","es2:9302","es3:9303"]
#集群的master候选节点目录。只有在初始化的时候才生效。
#这里只写node-1 并且配置这个参数 是用于快速搭建集群。集群已启动自动node-1   是master
cluster.initial_master_nodes: ["node-1"]
#cross 跨域访问 配置这个之后 head就可以用了
http.cors.enabled:  true
http.cors.allow-origin:  "*"

编写docker-compose配置文件
docker-compose.yml与所有节点文件夹同级即可
image.png

vim docker-compose.yml

#docker-compose 文件格式的版本 3
version: "3"

services:
#服务名
  es1:
  #镜像名
    image: elasticsearch:7.6.2
  #容器实例名  
    container_name: es1
  #环境参数变量,设置JVM最大(小)可用内存 太小的话es启不起来
    environment:
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
  #端口映射 宿主机端口->容器实例内端口
    ports:
      - "9201:9201"
      - "9301:9301"
  #挂载容器数据卷(类似于reids中的rdb,aof持久化技术,将容器内的数据保存到宿主机磁盘上,前边树宿主机目录,后边是容器目录)
    volumes:
      - /usr/docker/elasticsearchCluster/node-1/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - /usr/docker/elasticsearchCluster/node-1/data:/usr/share/elasticsearch/data
  #自定义docker网络模式,在调用服务的时候不用写死IP 直接使用服务名调用
    networks: 
      - es-net

  es2:
    image: elasticsearch:7.6.2
    container_name: es2
    environment:
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
    ports:
      - "9202:9202"
      - "9302:9302"
    volumes:
      - /usr/docker/elasticsearchCluster/node-2/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - /usr/docker/elasticsearchCluster/node-2/data:/usr/share/elasticsearch/data
    networks: 
      - es-net

  es3:
    image: elasticsearch:7.6.2
    container_name: es3
    environment:
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
    ports:
      - "9203:9203"
      - "9303:9303"
    volumes:
      - /usr/docker/elasticsearchCluster/node-3/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - /usr/docker/elasticsearchCluster/node-3/data:/usr/share/elasticsearch/data
    networks: 
      - es-net

networks:
  es-net:

检查docker-compose.yml是否有语法错误

# 控制台什么都没有输出的话就是没有问题
docker-compose config -q;

image.png

如果提示找不到docker-compose命令,则在线安装即可:

# 安装docker-compose
curl -L https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

使用docker-compose一键启动容器实例
后台启动:

docker-compose up -d

image.png

如果执行docker-compose up -d后没反应,则删除docker-compose,重新下载就行
rm /usr/local/bin/docker-compose

docker-compose -version查询docker-compose版本

查看docker进程是否已经启动

docker ps

image.png

查看集群状态
访问: http://192.168.52.128:9201/_cluster/health
image.png

status状态为green,集群搭建成功;

docker-compose一键关闭容器实例

# 停掉容器
docker-compose stop;
# 停掉并删除容器
docker-compose down;

image.png

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
1月前
|
缓存 Prometheus 监控
Elasticsearch集群JVM调优设置合适的堆内存大小
Elasticsearch集群JVM调优设置合适的堆内存大小
291 1
|
7天前
|
NoSQL 关系型数据库 应用服务中间件
docker基础篇:安装tomcat
docker基础篇:安装tomcat
115 64
|
9天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
69 24
|
9天前
|
NoSQL 算法 Redis
docker高级篇(大厂进阶):安装redis集群
docker高级篇(大厂进阶):安装redis集群
62 24
|
8天前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
109 11
|
7天前
|
存储 负载均衡 监控
揭秘 Elasticsearch 集群架构,解锁大数据处理神器
Elasticsearch 是一个强大的分布式搜索和分析引擎,广泛应用于大数据处理、实时搜索和分析。本文深入探讨了 Elasticsearch 集群的架构和特性,包括高可用性和负载均衡,以及主节点、数据节点、协调节点和 Ingest 节点的角色和功能。
23 0
|
1月前
|
缓存 监控 Java
Elasticsearch集群JVM调优
Elasticsearch集群JVM调优
49 5
|
1月前
|
存储 缓存 监控
Elasticsearch集群JVM调优堆外内存
Elasticsearch集群JVM调优堆外内存
50 1
|
1月前
|
监控 Java 测试技术
Elasticsearch集群JVM调优垃圾回收器的选择
Elasticsearch集群JVM调优垃圾回收器的选择
55 1
|
1月前
|
监控 安全 网络安全
Elasticsearch集群的网络设置
Elasticsearch集群的网络设置
37 3

热门文章

最新文章