docker安装es集群(三台)

news2024/11/16 19:44:59

文章目录

  • 1、防火墙设置,开启所需端口
  • 2、创建目录,并更改目录权限
  • 3 设置系统参数
  • 4 启动
  • 5 安装ik分词器
  • 6 配置
  • 7 安装elasticsearch-head(用于访问es,界面化工具)
  • 8、 修改es中每次返回的数据数量参数(默认10000),解决分页不全问题,修改为100万,按需设置,海量数据那就不设置。

1、防火墙设置,开启所需端口

firewall-cmd --permanent --zone=public --add-port=9200/tcp
firewall-cmd --permanent --zone=public --add-port=9300/tcp
firewall-cmd --permanent --zone=public --add-port=9100/tcp

2、创建目录,并更改目录权限

mkdir -p /data/docker_data/elasticsearch7.13.3/logs /data/docker_data/elasticsearch7.13.3/data /data/docker_data/elasticsearch7.13.3/docker-compose

chmod 777 -R logs data

3 设置系统参数

[root@localhost ~]# vi /etc/security/limits.conf
在文件的末尾加上
elasticsearch soft nofile 65536
elasticsearch hard nofile 65536
elasticsearch soft nproc 4096
elasticsearch hard nproc 4096

4 创建docker-compose目录

/data/docker_data/elasticsearch7.13.3/下创建docker-compose目录,创建
docker-compose.yml文件,es-node1在其他服务器上用es-node2、es-node3
需要注意的是discovery.zen.ping.unicast.hosts参数和discovery.seed_hosts参数不能同时配置,新旧版本问题
配置cluster.name(每个服务器上的都是一样的) 配置node.name(每个节点的服务器都是不一样的) 跨域的设置
node.master = true // 代表有可能被选举成master节点 node.data = true //
代表可以对数据的增删改查 禁止 swap,一旦允许内存与磁盘的交换,会引起致命的性能问题。可以通过在 elasticsearch.yml 中
bootstrap.memory_lock: true,以保持 JVM 锁定内存,保证 ES 的性能
-discovery.zen.minimum_master_nodes=2#本次没有配置这项,因为在最新版7.x中, minimum_master_node 这个参数已经被移除了,这一块内容完全由es自身去管理,这样就避免了脑裂的问题,选举也会非常快。

docker-compose.yml文件如下:

version: '3'
services:
  es-node1:
    image: elasticsearch:7.13.3
    container_name: es-node1
    restart: always
    environment:
      - cluster.name=elasticsearch-cluster
      - node.name=es-node1
      - network.publish_host=131.0.4.11
      - node.master=true
      - node.data=true
      - bootstrap.memory_lock=true
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - cluster.initial_master_nodes=131.0.4.11,131.0.4.12,131.0.4.13
      - discovery.seed_hosts=131.0.4.11,131.0.4.12,131.0.4.13
      - xpack.monitoring.collection.enabled=true
      - xpack.monitoring.enabled=true
      - "ES_JAVA_OPTS=-Xms16g -Xmx16g"
      - network.host=0.0.0.0
      - http.port=9200
      - transport.tcp.port=9300
    ulimits:
      nproc: 65535
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /data/docker_data/elasticsearch7.13.3/data:/usr/share/elasticsearch/data
      - /data/docker_data/elasticsearch7.13.3/logs:/usr/share/elasticsearch/logs
    ports:
      - 9200:9200
      - 9300:9300

4 启动

docker-compose up -d

5 安装ik分词器

1)下载分词器压缩包(和es的版本要相同)

wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.13.3/elasticsearch-analysis-ik-7.13.3.zip

2)将压缩包拷贝到容器中

docker cp ./elasticsearch-analysis-ik-7.13.3.zip es-node1:/usr/share/elasticsearch/plugins

3)进入容器

docker exec -it es-node1 bash

4)创建目录

mkdir /usr/share/elasticsearch/plugins/ik

5)将文件压缩包移动到ik中

mv /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.13.3.zip /usr/share/elasticsearch/plugins/ik

6)进入目录

cd /usr/share/elasticsearch/plugins/ik

7)解压

unzip elasticsearch-analysis-ik-7.13.3.zip

8)删除压缩包

rm -rf elasticsearch-analysis-ik-7.13.3.zip

9)退出容器,重启es容器

exit;
docker restart es-node1

每一台都要装,装三次ik分词器

6 配置

1)进入elasticsearch容器

docker exec -it es-node1 bash

2)修改elasticsearch.yml文件

vi config/elasticsearch.yml

在最下面添加2行
http.cors.enabled: true
http.cors.allow-origin: "*"

3)退出,重启容器

exit;
docker restart es-node1

4)设置自启动

docker update es-node1 --restart=always

7 安装elasticsearch-head(用于访问es,界面化工具)

1)下载镜像

docker pull mobz/elasticsearch-head:5

2 )创建\启动容器

docker run -itd --name elasticsearch-head --restart=always -p 9100:9100 mobz/elasticsearch-head:5

3) 设置解决elasticsearch-head查询406问题
将elasticsearch-head容器内vendor.js拷贝出来

docker cp elasticsearch-head:/usr/src/app/_site/vendor.js /data/docker_data/elasticsearch7.13.3

修改vendor.js

1)6886行 contentType: "application/x-www-form-urlencoded
改成
contentType: "application/json;charset=UTF-8"
2) 7574/7573行 var inspectData = s.contentType === "application/x-www-form-urlencoded"
改成
var inspectData = s.contentType === "application/json;charset=UTF-8"

将改完的vendor.js拷贝回镜像

docker cp /data/docker_data/elasticsearch7.13.3/vendor.js elasticsearch-head:/usr/src/app/_site

重启:

docker restart elasticsearch-head

浏览器打开测试: http://ip:9100,可以访问

8、 修改es中每次返回的数据数量参数(默认10000),解决分页不全问题,修改为100万,按需设置,海量数据那就不设置。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/738229.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

剑指offer55-II.平衡二叉树

我这个方法比较笨,用的是用的是昨天写的求二叉树深度的方法,先定义dfs求二叉树深度的方法,再定义cur方法,比较左子树和右子树的深度,递归比较每一个子树的左子树和右子树的深度,一旦有一个不平衡就把flag改…

vue3使用Eharts案例

文章目录 安装Eharts代码演示最终效果 安装Eharts 官方快速上手地址 npm install echarts --save代码演示 <script setup> import {onMounted, ref} from "vue"; // import echarts from "echarts"; import * as echarts from echarts; const opt…

聊聊「画图」和工具

经常被问&#xff1a;图怎么画&#xff0c;用啥工具&#xff1f; 01 每次遇到这个问题&#xff0c;脑回路都有一丝丝欢乐的氛围&#xff1b; 并不是问题奇怪&#xff1b; 而是自己对于画图这件事上并不专业&#xff0c;就算是涉及工作上的制图&#xff0c;也没特地去看过任何…

交换机远程登录telnet、SSH、禁止非法用户访问实验

交换机远程登录实验 交换机远程登录实验一、配置Console口登录设备二、配置Telnet远程登录三、Stelnet&#xff08;SSH&#xff09;配置四、远程登录实际中的配置五、禁止非法用户远程登录 交换机远程登录实验 ———————————————————————————————…

解锁数字化转型利器:探秘常用低代码工具大揭秘!

随着数字化转型的深入推进&#xff0c;越来越多的企业开始采用低代码工具来加快应用程序的开发速度。在本文中&#xff0c;我们将介绍常用的低代码工具有哪些&#xff1f;以帮助企业了解并选择适合自己的工具。 1、Zoho Creator Zoho Creator是一款低代码开发平台&#xff0c;提…

Docker配置阿里镜像加速源,超详细

1、首先登入阿里云账号,点击 控制台    2、搜索框查找 容器镜像服务    3、点击 镜像加速器 ,选择对应的操作系统    4、复制加速地址,在系统中配置 默认路径 /etc/docker/daemon.json 5、重启Docker systemctl daemon-reload systemctl restart docker6、验证 当…

【数据结构与算法】力扣:对称二叉树

对称二叉树 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true 示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false 来源&#xff1a;…

Windows+IDEA+Nginx反向代理本机实现简单集群

先简单创建一个项目&#xff0c;可以是Maven也可以是Spring Initializr&#xff0c;如果是 Maven则需要自己配置启动类 按照目录路径创建controller类 package com.cloud.SR.controller;import org.springframework.beans.factory.annotation.Autowired; import org.springfram…

mac intellij idea配置settings.xml报错解决

今天在配置环境的时候&#xff0c;发现在运行代码的时候不断报错提示maven没有能够成功地被sync&#xff0c;解决方法将以下三点解决了之后&#xff0c;程序最终跑起来了。 1.将maven的版本配置对&#xff0c;之前项目都用的maven-3.8.5这个版本&#xff0c;而我原先用的是mave…

MQ集群搭建

1.⾸先&#xff0c;克隆⼀台IP地址为192.168.230.132的虚拟机&#xff0c;然后参考章节的内 容&#xff0c;在该主机上安装RabbitMQ等环境。再加上之前的虚拟机&#xff0c;这样我们就准备好了两台Linux服 务器。 修改/etc/hosts映射⽂件。 vim /etc/hosts 3.两台Linux主机修改…

python识别登录验证码图片中字符

应用场景&#xff1a;在测试接口时&#xff0c;需要先自动执行登录接口&#xff0c;登录接口需要输入图片中的字符验证码。 实现的步骤主要有以下几步&#xff1a; 一、执行/captcha接口&#xff0c;从接口响应中提取图形验证码的base64编码值&#xff1b; 二、去掉base64编码…

STM32CubeIDE使用示例(STM32CubeMX+STM32CubeIDE+Gcc+JLINK+STM32G030C8T6)

本文简单记录下STM32CubeIDE的使用方法&#xff0c;整体的环境是STM32CubeMXSTM32CubeIDEGccJLINKSTM32G030C8T6&#xff0c;实现的简单测试功能是让STM32G030C8T6板子上的LED闪烁&#xff0c;以STM32G030C8T6 PB4 脚做LED 输出闪烁为例&#xff0c;外部8MHZ 晶振,系统主频64MH…

word 目录创建与提取

前言 word实际上一直在用&#xff0c;但是笔者在写文档都没关注目录的概念&#xff0c;实际上目录就是富文本或markdown编辑器的标题&#xff0c;可以起到跳转的作用。笔者的毕业论文的目录居然还是手打的。 目录创建 实际上word书写的时候就需要设置标题&#xff0c;最近的…

雅思单词量要达到多少才能达到要求?

对于刚开始备考雅思的同学来说&#xff0c;雅思单词是考好雅思的基础&#xff0c;雅思单词量要达到多少才能过关呢&#xff1f;下面为大家介绍一下雅思词汇量的要求。 一、雅思词汇量要求 雅思听力词汇 3000&#xff5e;5000左右&#xff0c;雅思听力是以场景展开的&#xff…

51单片机--定时器与按键控制流水灯模式

文章目录 定时器定时器的介绍定时器的作用定时器框图定时器的工作模式计数器原理图&#xff1a; 中断系统中断程序流程STC89C52的中断资源定时器和中断系统 定时器的相关寄存器TCONTMODTH与TL有关中断的寄存器 按键控制流水灯模式 定时器 定时器的介绍 51单片机上的定时器是一…

率先布局 RWA 赛道,PoseiSwap 成为最具先进性的 DEX

RWA 全称为现实资产通证化&#xff0c;比如股票、期货、美债甚至房产等传统资产。RWA 正在成为加密行业发展的一个全新叙事方向&#xff0c;除了传统商业巨头比如高盛、西门子等开始向该领域深入布局外&#xff0c;以 MakerDAO、Binance、Aave、Maple Finance 等为代表的 Web3 …

MySQL_2

目录 一、函数 1、字符串函数 2、数值函数 3、日期函数 4、流程控制函数 二、约束 1、概念&#xff1a;约束是作用于表中字段上的规则&#xff0c;用于限制存储在表中的数据。 2、目的&#xff1a;保证数据库中数据的正确、有效性和完整性。 3、分类 4、外键约束 4…

命名管道使用示例

用命名管道实现client和server端进行通信 【实现步骤】 创建两个没有关系的进程--》编写client和server源文件&#xff0c;并分别编译成可执行程序&#xff1b;创建命名管道文件&#xff0c;用函数int mkfifo(const char *filename,mode_t mode);client端以写的方式打开管道文…

日志消息直接发送到kafka设计

背景&#xff1a; 日常工作中&#xff0c;我们一般都有需要分析业务日志的需求&#xff0c;有些业务日志记录了用户点击或者用户购买行为等有用的信息&#xff0c;所以我们一般都需要基于这些日志进行分析&#xff0c;本文我们就来看一下这种日志消息的流转图 技术方案&#…

阿里云ECS扩容硬盘空间及文件系统

一.通过阿里云控制台扩容硬盘 前往ECS实例详情页面的云盘页签。 登录ECS管理控制台。在左侧导航栏&#xff0c;选择实例与镜像 > 实例。在顶部菜单栏处&#xff0c;选择目标ECS实例所在地域。找到待扩容云盘所在的实例&#xff0c;单击实例ID。在实例详情页面&#xff0c;单…