设置系统vm.max_map_count
临时解决办法(重启虚拟机会失效):
1.切换到root用户,执行命令:
sysctl -w vm.max_map_count=262144
2.查看结果:
sysctl -a|grep vm.max_map_count
永久解决办法
在/etc/sysctl.conf文件最后添加一行:vm.max_map_count=262144
设置文件夹权限
chmod -R 777 /data/es
docker-compose.yaml
version: '3.1'services:es01: # 服务名称image: docker.elastic.co/elasticsearch/elasticsearch:7.13.4 # 使用的镜像container_name: es01 # 容器名称restart: always # 失败自动重启策略environment:- node.name=es01 # 节点名称,集群模式下每个节点名称唯一# - network.publish_host={ip} # 用于集群内各机器间通信,其他机器访问本机器的es服务# - network.host=0.0.0.0 # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,- discovery.seed_hosts=es02,es03 # es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点- cluster.name=ms-es-cluster # 集群名称,相同名称为一个集群- cluster.initial_master_nodes=es01,es02,es03 # es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master,可填ip- bootstrap.memory_lock=true # 内存交换的选项,官网建议为true- "ES_JAVA_OPTS=-Xms1024m -Xmx1024m" # 设置内存ulimits:memlock:soft: -1hard: -1volumes:# - ./elasticsearch/1/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml # 将容器中es的配置文件映射到本地,设置跨域, 否则head插件无法连接该节点- ./elasticsearch/1/data:/usr/share/elasticsearch/data # 存放数据的文件, 注意:这里的esdata为 顶级volumes下的一项。- ./elasticsearch/1/plugins:/usr/share/elasticsearch/plugins #插件目录- ./elasticsearch/1/logs:/usr/share/elasticsearch/logs #插日志目录ports:- 9200:9200 # http端口- 9300:9300 # es节点直接交互的端口,非httpnetworks:- elastices02: # 服务名称image: docker.elastic.co/elasticsearch/elasticsearch:7.13.4 # 使用的镜像container_name: es02 # 容器名称restart: always # 失败自动重启策略environment:- node.name=es02 # 节点名称,集群模式下每个节点名称唯一# - network.publish_host={ip} # 用于集群内各机器间通信,其他机器访问本机器的es服务# - network.host=0.0.0.0 # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,- discovery.seed_hosts=es01,es03 # es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点- cluster.name=ms-es-cluster # 集群名称,相同名称为一个集群- cluster.initial_master_nodes=es01,es02,es03 # es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master,可填ip- bootstrap.memory_lock=true # 内存交换的选项,官网建议为true- "ES_JAVA_OPTS=-Xms1024m -Xmx1024m" # 设置内存ulimits:memlock:soft: -1hard: -1volumes:# - ./elasticsearch/2/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml # 将容器中es的配置文件映射到本地,设置跨域, 否则head插件无法连接该节点- ./elasticsearch/2/data:/usr/share/elasticsearch/data # 存放数据的文件, 注意:这里的esdata为 顶级volumes下的一项。- ./elasticsearch/2/plugins:/usr/share/elasticsearch/plugins #插件目录- ./elasticsearch/2/logs:/usr/share/elasticsearch/logs #插日志目录networks:- elastices03: # 服务名称image: docker.elastic.co/elasticsearch/elasticsearch:7.13.4 # 使用的镜像container_name: es03 # 容器名称restart: always # 失败自动重启策略environment:- node.name=es03 # 节点名称,集群模式下每个节点名称唯一# - network.publish_host={ip} # 用于集群内各机器间通信,其他机器访问本机器的es服务# - network.host=0.0.0.0 # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,- discovery.seed_hosts=es01,es02 # es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点- cluster.name=ms-es-cluster # 集群名称,相同名称为一个集群- cluster.initial_master_nodes=es01,es02,es03 # es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master,可填ip- bootstrap.memory_lock=true # 内存交换的选项,官网建议为true- "ES_JAVA_OPTS=-Xms1024m -Xmx1024m" # 设置内存ulimits:memlock:soft: -1hard: -1volumes:# - ./elasticsearch/3/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml # 将容器中es的配置文件映射到本地,设置跨域, 否则head插件无法连接该节点- ./elasticsearch/3/data:/usr/share/elasticsearch/data # 存放数据的文件, 注意:这里的esdata为 顶级volumes下的一项。- ./elasticsearch/3/plugins:/usr/share/elasticsearch/plugins #插件目录- ./elasticsearch/3/logs:/usr/share/elasticsearch/logs #插日志目录networks:- elasticnetworks:elastic:driver: bridge
访问验证
浏览器访问:IP:9200
