ElasticSearch学习大纲


一、ES集群规划:

关系型数据库(比如Mysql)非关系型数据库(Elasticsearch)非关系型数据库(Elasticsearch)
centos7hadoop103192.168.148.3
centos7hadoop104192.168.148.4
centos7hadoop105192.168.148.5

二、集群环境搭建:

2.1.Docker部署ES-7.12集群:

第1步:.编写docker-compose文件:

version: '2.2'
services:es01:image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1container_name: es01environment:- node.name=es01- cluster.name=es-docker-cluster- discovery.seed_hosts=es02,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data01:/usr/share/elasticsearch/dataports:- 9200:9200networks:- elastices02:image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1container_name: es02environment:- node.name=es02- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data02:/usr/share/elasticsearch/datanetworks:- elastices03:image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1container_name: es03environment:- node.name=es03- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es02- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data03:/usr/share/elasticsearch/datanetworks:- elasticvolumes:data01:driver: localdata02:driver: localdata03:driver: localnetworks:elastic:driver: bridge

第2步:执行docker-compose文件:

docker-compose up

2.2.直接搭建方式(基于ES-7.8.0):

第1步:下载ES

  • 1.解压压缩包:tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz -C /opt/module
    在这里插入图片描述
  • 2.将文件名更改成es-cluster:mv elasticsearch-7.8.0 es-cluster:
    在这里插入图片描述

第2步:创建用户:

  • 1.创建用户:Elasticsearch 因为安全问题,不允许 root 用户直接运行,所以要在每个节点中创建新用户,在 root 用户中创建新用户
useradd es #新增 es 用户
passwd es #为 es 用户设置密码
userdel -r es #如果错了,可以删除再加
chown -R es:es /opt/module/es-cluster #文件夹所有者

在这里插入图片描述

  • 2.将软件分发到另外两台服务器上:
    在这里插入图片描述

第3步:更改配置

  • 1.配置目录:安装完毕后会生成很多文件,包括配置文件日志文件等等,下面几个是最主要的配置文件路径
    • /opt/module/es-cluster/ # elasticsearch 安装目录
    • /opt/module/es-cluster/config/elasticsearch.yml #elasticsearch的配置文件
    • /opt/module/es-cluster/config/jvm.options #JVM相关的配置,内存大小等等
    • /data/elk1/data # 数据存放路径
    • /data/elk1/logs # 日志存放路径
  • 2.创建用于存放数据与日志的目录:数据文件会随着系统的运行飞速增长,所以默认的日志文件与数据文件的路径不能满足我们的需求,需要手动创建日志与数据文件路径
mkdir -p /data/elk1/data
mkdir -p /data/elk1/logs
  • 3.集群配置:vim /opt/module/es-cluster/config/elasticsearch.yml(yml文件有严格的语法要求,在配置的时候,一定要注意语法,这里容易出现错误)
# 加入如下配置
# #集群名称cluster.name: cluster-es
# 节点名称,每个节点的名称不能重复node.name: node-1
#ip 地址,每个节点的地址不能重复network.host: hadoop103
#是不是有资格主节点node.master: truenode.data: truehttp.port: 9200
## head 插件需要这打开这两个配置http.cors.allow-origin: "*"http.cors.enabled: truehttp.max_content_length: 200mb
##es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 mastercluster.initial_master_nodes: ["node-1"]
##es7.x 之后新增的配置,节点发现discovery.seed_hosts: ["192.168.148.3:9300","192.168.148.4:9300","192.168.148.5:9300"]gateway.recover_after_nodes: 2network.tcp.keep_alive: truenetwork.tcp.no_delay: truetransport.tcp.compress: true
##集群内同时启动的数据任务个数,默认是 2 个cluster.routing.allocation.cluster_concurrent_rebalance: 16
##添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个cluster.routing.allocation.node_concurrent_recoveries: 16
##初始化数据恢复时,并发恢复线程的个数,默认 4 个cluster.routing.allocation.node_initial_primaries_recoveries: 16
# 加入如下配置
# #集群名称cluster.name: cluster-es
# 节点名称,每个节点的名称不能重复node.name: node-2
#ip 地址,每个节点的地址不能重复network.host: hadoop104
#是不是有资格主节点node.master: truenode.data: truehttp.port: 9200
## head 插件需要这打开这两个配置http.cors.allow-origin: "*"http.cors.enabled: truehttp.max_content_length: 200mb
##es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 mastercluster.initial_master_nodes: ["node-1"]
##es7.x 之后新增的配置,节点发现discovery.seed_hosts: ["192.168.148.3:9300","192.168.148.4:9300","192.168.148.5:9300"]gateway.recover_after_nodes: 2network.tcp.keep_alive: truenetwork.tcp.no_delay: truetransport.tcp.compress: true
##集群内同时启动的数据任务个数,默认是 2 个cluster.routing.allocation.cluster_concurrent_rebalance: 16
##添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个cluster.routing.allocation.node_concurrent_recoveries: 16
##初始化数据恢复时,并发恢复线程的个数,默认 4 个cluster.routing.allocation.node_initial_primaries_recoveries: 16
# 加入如下配置
# #集群名称cluster.name: cluster-es
# 节点名称,每个节点的名称不能重复node.name: node-3
#ip 地址,每个节点的地址不能重复network.host: hadoop105
#是不是有资格主节点node.master: truenode.data: truehttp.port: 9200
## head 插件需要这打开这两个配置http.cors.allow-origin: "*"http.cors.enabled: truehttp.max_content_length: 200mb
##es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 mastercluster.initial_master_nodes: ["node-1"]
##es7.x 之后新增的配置,节点发现discovery.seed_hosts: ["192.168.148.3:9300","192.168.148.4:9300","192.168.148.5:9300"]gateway.recover_after_nodes: 2network.tcp.keep_alive: truenetwork.tcp.no_delay: truetransport.tcp.compress: true
##集群内同时启动的数据任务个数,默认是 2 个cluster.routing.allocation.cluster_concurrent_rebalance: 16
##添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个cluster.routing.allocation.node_concurrent_recoveries: 16
##初始化数据恢复时,并发恢复线程的个数,默认 4 个cluster.routing.allocation.node_initial_primaries_recoveries: 16
  • 三台机器不一样的elasticsearch.yml配置点如下
node.name: node-1      #192.168.148.3
node.name: node-2      #192.168.148.4
node.name: node-3      #192.168.148.5
network.host: 192.168.148.3	#192.168.148.3
network.host: 192.168.148.4	#192.168.148.4
network.host: 192.168.148.5	#192.168.148.5
  • 4.JVM配置:
    • 由于Elasticsearch是Java开发的,所以可以通过/etc/elasticsearch/jvm.options配置文件来设定JVM的相关设定。如果没有特殊需求按默认即可。
    • 但是其中还是有两项最重要的-Xmx1g与-Xms1gJVM的最大最小内存。如果太小会导致Elasticsearch刚刚启动就立刻停止。太大会拖慢系统本身。
 vim /opt/module/es-cluster/config/jvm.options
-Xms1g   修改为 ===>  -Xms2g
-Xmx1g   修改为 ===>  -Xmx2g

第4步:修改配置

  • 1.修改/etc/sysctl.conf:添加如下配置后并重新加载:sysctl -p
vm.max_map_count=655360
  • 2.切换用户es后,切到es的安装目录后,启动服务:./bin/elasticsearch

2.3."_cat"集群命令介绍:

GET /_cat/nodes	 #查看所有节点。集群中会用到
GET /_cat/health  #查看es健康状况
GET /_cat/master  #查看主节点
GET /_cat/indices #查看所有索引 ,等价于mysql数据库的show databases;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

部署并运行Spike-Driven-Transformer或QKFormer

部署并运行Spike-Driven-Transformer或QKFormer 我将指导你如何部署和运行Spike-Driven-Transformer或QKFormer代码,并在CIFAR-10、CIFAR-100和ImageNet-1K数据集上进行训练和测试。 1. 环境准备 首先需要设置Python环境并安装必要的依赖项: # 创建conda环境(推荐) con…

爬虫-request处理POST

1.概念很少在URL写参数,都在form data里面POST 的主要作用是将客户端的数据提交给服务器。这些数据可以是表单输入、文件内容、JSON 数据、XML 数据等等POST 请求携带的数据放在 HTTP 消息的请求体中。这与 GET 请求形成鲜明对比:GET 请求的数据通常附加…

免U盘一键重装系统

免U盘一键重装系统 简单介绍 详细的看GitHub项目首页 GitHub地址 # 下载脚本 curl -O https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.sh || wget -O reinstall.sh $_ # 重装系统 bash reinstall.sh ubuntu # 重启 rebootPS: 重启过程中, 可能需要手动选择r…

自动化一次通过率

自动化测试中的“一次通过率”(First-pass Pass Rate)​​ 是指自动化测试脚本在首次执行(无人工干预、无重试)​时,​成功通过的测试用例数占总执行用例数的百分比。​核心概念解析​​​“一次”的含义​​首次运行​…

111111事件

1.抽取 minio 当做文件对象存储服务器,在上面封装一层api,方便操作。 (文件上传,指定路径上传,随机命名上传,前端获取token直接传,适合大对象,图片压缩) 2.规范整个java项…

Qt的ui文件的编译和使用

Qt中的ui文件编译的类 要么继承 ,要么实例化一个变量个人觉得还是继承好点,这样每次调用控件时,不用都要在控件前加上 ui.1 上面使用的是继承的关系,这样就可以直接使用控件.属性,而不用 ui.控件.树形2 QT中UI文件…

数据结构之树,二叉树,二叉搜索树

一.树1.形状2. 相关概念节点的度:一个节点含有的子树的个数称为该节点的度; 如上图:A的为6叶节点或终端节点:度为0的节点称为叶节点; 如上图:B、C、H、I...等节点为叶节点非终端节点或分支节点:…

LLM微调随记录

【如何把领域文献批量转换为可供模型微调的数据集?】 https://www.bilibili.com/video/BV1y8QpYGE57/?share_sourcecopy_web&vd_source8f9078186b93d9eee26026fd26e8a6ed 几个问题 首先要先搞清楚这几个问题 LLM 训练方法如何选择合适的训练方式如何判断是否…

高效处理大体积Excel文件的Java技术方案解析

高效处理大体积Excel文件的Java技术方案解析 引言 在数据密集型应用中,处理数百MB甚至GB级的Excel文件已成为业务刚需。传统基于DOM模型的Excel解析方式(如Apache POI的XSSF)在处理大规模数据时存在严重的内存瓶颈。本文将深入探讨Java生态中…

JVM垃圾回收机制深度解析

🗑️ JVM垃圾回收机制深度解析 文章目录🗑️ JVM垃圾回收机制深度解析🔍 垃圾判定算法🔢 引用计数法🌐 可达性分析算法🔄 垃圾回收算法🏷️ 标记-清除算法📋 复制算法🔧 …

Docker:容器化技术的基石与实践指南

在现代软件开发和部署中,Docker 作为一种领先的容器化平台,已经成为了开发人员和运维工程师不可或缺的工具。它不仅简化了应用的部署过程,还提高了应用的可移植性和可扩展性。本文将深入探讨 Docker 的核心概念、基本操作以及如何在实际项目中…

java web7(黑马)

Filter简介概念: Filter 表示过滤器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。过滤器一般完成一些通用的操作,比如:权限控制、统一编码处理、敏感字符处理等等.快速入…

React-forwardRef-useImperativeHandle

forwardRef 暴露dom节点作用:使用ref暴露DOM节点给父组件案例例如在父组件中想要获取子组件input的输入值,和让input获取焦点父组件import { Button } from antd-mobile import Son from "./components/son"; import { useState,useRef } fro…

Unity 用AI自动开发游戏----Cursor研究(实现一套利用Cursor生成模板快速实现原型的框架)

Unity 快速原型开发框架(基于 Cursor AI) 🧩 框架简介 本框架结合了 AI 编程助手 Cursor 的代码生成能力,构建出一套适用于 Unity 项目的模块化原型开发架构。它旨在极大提升开发效率、降低试错成本,特别适用于快速搭…

D触发器实现2分频verilog及电路

使用D触发器完成2分频电路即通过时钟的上升沿或下降沿到来时进行翻转得到,信号的两个状态所占时间长度相同,因此它的输出时钟的占空比为50%。 D触发器实现2分频的电路图如下所示:通过将D触发器2分频电路级联,可实现输入时钟的2N倍…

UniApp完美对接RuoYi框架开发企业级应用

UniApp完美对接RuoYi框架的完整方案及可开发系统类型,结合企业级实践与开源项目经验整理而成,涵盖技术对接、系统设计及实战案例。 🔧 一、UniApp与RuoYi对接全流程 1. 后端配置(RuoYi-Vue/RuoYi-Cloud) 跨域支持 在网…

【通识】深度学习理论基础

1. 深度学习导论 导论和简介的基础知识和路径。 深度学习的各项涵盖范围:深度学习MLPs,然后是机器学习、逻辑回归,知识基础等等 1)连结神经网络等等:Cybernetics控制论,Connectionism连结主义&#xff0…

sql-labs(11-12)-万能密码登录

sql-labs(11-12)万能密码登录 第十一关: 这关是一个登陆口,也是一个sql注入的漏洞,也就是常说的万能密码。 在输入框账号密码种分别输入 1’ 和1’ 页面会报错。后台使用的单引符号进行的拼接。账号输入1’ or ‘1’‘1 密码输入 1’ or …

MsSql 其他(2)

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨Mysql中的MVCC 一、MVCC 的核心目标与设计背景 MVCC(Multi-Version Concurrency Control,多版本并发控制) 是 InnoDB 存储引擎为实现高并发事务处理而设计的核心机制。其核心目标是:在不牺牲事务隔…

解决本地部署n8n,域名访问为什么一直有connection lost的报错

问题:本地部署的n8n服务用IP访问一切都正常,但是使用域名后报错connection lost思路:首先怀疑是ngnix配置问题或者是docker中的环境问题查看docker logsOrigin header does NOT match the expected origin. (Origin: "nxxx.online:1181&…