基于docker搭建elasticsearch集群
时间:2019-12-09
本文章向大家介绍基于docker搭建elasticsearch集群,主要包括基于docker搭建elasticsearch集群使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
- 基于单机搭建elasticsearch集群见官网 https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
本文旨在三台不同的服务器,搭建elasticsearch集群,版本为7.x.x
- 1、服务器列表即配置
172.168.50.40, 172.168.50.41, 172.168.50.240
尽量不要低于4G内存
选用172.168.50.41作为master节点
- 2、使用docker-compose以及配置文件
建立文件夹,/lizheng/elasticsearch (随意即可)
- 3、创建docker-compose.yml文件
touch docker-compose.yml
- 4、docker-compose.yml 的文件内容如下
version: '3'
services:
elasticsearch: # 服务名称
image: elasticsearch:7.3.1 # 使用的镜像
container_name: elasticsearch # 容器名称
restart: always # 失败自动重启策略
environment:
- node.name=41 # 节点名称,集群模式下每个节点名称唯一
- network.publish_host=172.168.50.41 # 用于集群内各机器间通信,其他机器访问本机器的es服务
- network.host=0.0.0.0 # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,
- discovery.seed_hosts=172.168.50.40,172.168.50.240,172.168.50.41 # es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
- cluster.initial_master_nodes=172.168.50.40,172.168.50.240,172.168.50.41 # es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
- cluster.name=es-cluster # 集群名称,相同名称为一个集群
- http.cors.enabled=true # 是否支持跨域,是:true
- http.cors.allow-origin="*" # 表示支持所有域名
- bootstrap.memory_lock=true # 内存交换的选项,官网建议为true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m" # 设置内存
ulimits:
memlock:
soft: -1
hard: -1
ports:
- 9200:9200
- 9300:9300
另外两台服务器也照着这个配置进行配置,但IP,以及节点名称需要改一下即可。
内存设置,三台服务器都需要
两种方式:
1、机器重启后需再次设置
sysctl -w vm.max_map_count=262144
2、直接修改配置文件, 进入sysctl.conf文件添加一行(解决容器内存权限过小问题)
vi /etc/sysctl.conf
sysctl vm.max_map_count=262144
sysctl -p 立即生效
- 然后三台服务器依次执行 docker-compose up -d
- 然后访问 http://172.168.50.41:9200/_cluster/health?pretty 查看是否集群正常运行, 正常运行会返回如下信息
{
"cluster_name" : "es-cluster",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 3,
"number_of_data_nodes" : 3,
"active_primary_shards" : 0,
"active_shards" : 0,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
原文地址:https://www.cnblogs.com/lz0925/p/12011026.html
- 异步数据存储声明
- 区块链学堂——公有链、私有链、联盟链、侧链、互联链
- 人工智能将让我们更擅长辩论
- ASP.NET路由系统实现原理:HttpHandler的动态映射
- 腾讯、卓健科技、恩泽医疗合力打造“互联网+智慧医院”
- 区块链,不是比特币(1)
- 小程序缓存 删不删你都该知道的事儿
- 32位 or 64位:Apache CloudStack系统VM架构选择
- Apache CloudStack系统VM架构选择
- ASP.NET MVC Controller激活系统详解:IoC的应用[下篇]
- 使用Docker的Alluxio群集设置
- 通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程[中]:管道如何处理请求
- ASP.NET MVC Model元数据及其定制: 初识Model元数据
- 如何在企业中融入机器学习
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- kubernetes(二十二) 服务网格化istio入门
- 使用Ngrok将本地服务映射为公网服务
- 前端图片下载
- 使用JDBC连接MySQL数据库--典型案例分析(七)----批量插入员工信息
- NIO删除文件提示文件AccessDeniedException
- 使用JDBC连接MySQL数据库--典型案例分析(八)----实现员工数据的分页查询
- RocketMQ源码之路(一)搭建RocketMQ源码环境
- docker安装filebeat
- Java Jar源码反编译工具对比
- 深入理解JVM虚拟机---垃圾回收与内存分配
- rxjs pipe和filter组合的一个实际例子的单步调试
- SAP Spartacus基于travis的持续集成
- Angular里如何测试一个具有外部依赖的Component
- Angular Component的DOM单元测试
- 对具有依赖的Angular服务进行单元测试的几种方式