Elasticsearch【集群概念、搭建集群】(七)-全面详解(学习总结---从入门到深化)

目录

Elasticsearch集群_概念

Elasticsearch集群_搭建集群


Elasticsearch集群_概念

在单台ES服务器上,随着一个索引内数据的增多,会产生存储、效率、安全等问题。

1、假设项目中有一个500G大小的索引,但我们只有几台200G硬盘 的服务器,此时是不可能将索引放入其中某一台服务器中的。 

2、此时我们需要将索引拆分成多份,分别放入不同的服务器中,此时这几台服务器维护了同一个索引,我们称这几台服务器为一个集群,其中的每一台服务器为一个节点,每一台服务器中的数据 称为一个分片。 

3、此时如果某个节点故障,则会造成集群崩溃,所以每个节点的分 片往往还会创建副本,存放在其他节点中,此时一个节点的崩溃 就不会影响整个集群的正常运行。 

 节点(node):一个节点是集群中的一台服务器,是集群的一部分。它存储数据,参与集群的索引和搜索功能。集群中有一个为主 节点,主节点通过ES内部选举产生。

集群(cluster):一组节点组织在一起称为一个集群,它们共同持 有整个的数据,并一起提供索引和搜索功能。

分片(shards):ES可以把完整的索引分成多个分片,分别存储在 不同的节点上。

副本(replicas):ES可以为每个分片创建副本,提高查询效率, 保证在分片数据丢失后的恢复。

注: 分片的数量只能在索引创建时指定,索引创建后不能再更改 分片数量,但可以改变副本的数量。

为保证节点发生故障后集群的正常运行,ES不会将某个分片 和它的副本存在同一台节点上。 

实时学习反馈

1. 在Elasticsearch中,可以保证数据丢失后的恢复

A 节点

B 集群

C 分片

D 副本 

2. 一组节点组织在一起称为一个

A 索引

B 集群

C 分片

D 副本

Elasticsearch集群_搭建集群

安装第一个ES节点 

1、安装

#解压:
tar -zxvf elasticsearch-7.17.0-linux-x86_64.tar.gz#重命名:
mv elasticsearch-7.17.0 myes1#移动文件夹:
mv myes1 /usr/local/#安装ik分词器
unzip /elasticsearch-analysis-ik-7.17.0.zip -d
/usr/local/myes1/plugins/analysis-ik#安装拼音分词器
unzip /elasticsearch-analysis-pinyin-7.17.0.zip -d
/usr/local/myes1/plugins/analysis-pinyin#es用户取得该文件夹权限:
chown -R es:es /usr/local/myes1

2、修改配置文件

#打开节点一配置文件:
vim /usr/local/myes1/config/elasticsearch.yml

配置如下信息:

#集群名称,保证唯一
cluster.name: my_elasticsearch#节点名称,必须不一样
node.name: node1#可以访问该节点的ip地址
network.host: 0.0.0.0#该节点服务端口号
http.port: 9200#集群间通信端口号
transport.tcp.port: 9300#候选主节点的设备地址
discovery.seed_hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]#候选主节点的节点名
cluster.initial_master_nodes: ["node1","node2","node3"]

3 、启动

#切换为es用户:
su es#后台启动第一个节点:
ES_JAVA_OPTS="-Xms512m -Xmx512m" /usr/local/myes1/bin/elasticsearch -d

安装第二个ES节点

1、安装

#解压:
tar -zxvf elasticsearch-7.17.0-linux-x86_64.tar.gz#重命名:
mv elasticsearch-7.17.0 myes2#移动文件夹:
mv myes2 /usr/local/#安装ik分词器
unzip elasticsearch-analysis-ik-7.17.0.zip -d /usr/local/myes2/plugins/analysis-ik#安装拼音分词器
unzip /elasticsearch-analysis-pinyin-7.17.0.zip -d /usr/local/myes2/plugins/analysis-pinyin#es用户取得该文件夹权限:
chown -R es:es /usr/local/myes2

2、修改配置文件

#打开节点二配置文件:
vim /usr/local/myes2/config/elasticsearch.yml

配置如下信息:

#集群名称,保证唯一
cluster.name: my_elasticsearch#节点名称,必须不一样
node.name: node2#可以访问该节点的ip地址
network.host: 0.0.0.0#该节点服务端口号
http.port: 9201#集群间通信端口号
transport.tcp.port: 9301#候选主节点的设备地址
discovery.seed_hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]#候选主节点的节点名
cluster.initial_master_nodes: ["node1","node2","node3"]

3、启动

#切换为es用户:
su es#后台启动第二个节点:
ES_JAVA_OPTS="-Xms512m -Xmx512m" /usr/local/myes2/bin/elasticsearch -d

安装第三个ES节点

1、安装

#解压:
tar -zxvf elasticsearch-7.17.0-linux-x86_64.tar.gz#重命名:
mv elasticsearch-7.17.0 myes3#移动文件夹:
mv myes3 /usr/local/#安装ik分词器
unzip elasticsearch-analysis-ik-7.17.0.zip -d /usr/local/myes3/plugins/analysis-ik#安装拼音分词器
unzip /elasticsearch-analysis-pinyin-7.17.0.zip -d /usr/local/myes3/plugins/analysis-pinyin#es用户取得该文件夹权限:
chown -R es:es /usr/local/myes3

2、修改配置文件

#打开节点一配置文件:
vim /usr/local/myes3/config/elasticsearch.yml

配置如下信息:

#集群名称,保证唯一
cluster.name: my_elasticsearch#节点名称,必须不一样
node.name: node3#可以访问该节点的ip地址
network.host: 0.0.0.0#该节点服务端口号
http.port: 9202#集群间通信端口号
transport.tcp.port: 9302#候选主节点的设备地址
discovery.seed_hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]#候选主节点的节点名
cluster.initial_master_nodes:["node1","node2","node3"]

3、启动

#切换为es用户:
su es#后台启动第三个节点:
ES_JAVA_OPTS="-Xms512m -Xmx512m" /usr/local/myes3/bin/elasticsearch -d

测试集群

访问 http://虚拟机IP:9200/_cat/nodes 查看是否集群搭建成功。

kibana连接es集群 

1、在kibana中访问集群

# 打开kibana配置文件
vim /usr/local/kibana-7.17.0-linux-x86_64/config/kibana.yml

添加如下配置

# 该集群的所有节点
elasticsearch.hosts: ["http://虚拟机IP:9200","http://虚拟机IP:9201","http://虚拟机IP:9202"]

2、启动kibana

#切换为es用户:
su es#启动kibana:
/usr/local/kibana-7.17.0-linux-x86_64/bin/kibana

3、访问kibana: http://虚拟机IP:5601

实时学习反馈

1. 在Elasticsearch中,查看是否集群搭建成功的请求路径为

A /_cat/nodes

B /nodes

C /_cat/node

D node

复习:

Elasticsearch介绍_全文检索

Elasticsearch是一个全文检索服务器

全文检索是一种非结构化数据的搜索方式 

  • 结构化数据:指具有固定格式固定长度的数据,如数据库中的字段。
  • 非结构化数据:指格式和长度不固定的数据,如电商网站的商品详情。

 

结构化数据一般存入数据库,使用sql语句即可快速查询。但由于非结构化数据的数据量大且格式不固定,我们需要采用全文检索的方式进行搜索。全文检索通过建立倒排索引加快搜索效率。 

实时学习反馈

1. 什么是非结构化数据?

A 格式和长度固定的数据

B 格式和长度不固定的数据

C 格式固定的数据

D 长度固定的数据

2. 全文检索是

A 一种非结构化数据的搜索方式

B 一种结构化数据的搜索方式

C 一种非结构化数据的保存方式

D 一种结构化数据的保存方式 

Elasticsearch介绍_倒排索引

索引 

将数据中的一部分信息提取出来,重新组织成一定的数据结构,我 们可以根据该结构进行快速搜索,这样的结构称之为索引。 索引即目录,例如字典会将字的拼音提取出来做成目录,通过目录 即可快速找到字的位置。 索引分为正排索引倒排索引

正排索引(正向索引)

将文档id建立为索引,通过id快速可以快速查找数据。如数据库中 的主键就会创建正排索引。

倒排索引(反向索引) 

非结构化数据中我们往往会根据关键词查询数据。此时我们将数据中的关键词建立为索引,指向文档数据,这样的索引称为倒排索引。

创建倒排索引流程:

实时学习反馈

1. 索引分为

A 正排索引和无序索引

B 正排索引和倒排索引

C 无序索引和有序索引

D 有序索引和倒排索引

2. 将数据中的关键词建立为索引,指向文档数据,这样的索引称为

A 无序索引

B 有序索引

C 正排索引

D 倒排索引 

Elasticsearch介绍_Elasticsearch的出现

 多年前,一个刚结婚的名叫Shay的失业开发者,跟着妻子去了伦敦,他的妻子在那里学习厨师。Shay使用全文检索工具—— lucene,给他的妻子做一个食谱搜索引擎。

但Lucene的操作非常复杂,且Lucene是一个单机软件,不支持联网访问。因此 Shay基于Lucene开发了开源项目 Elasticsearch。 Elasticsearch本质是一个java语言开发的web项目,我们可以通过 RESTful风格的接口访问该项目内部的Lucene,从而让全文搜索变得简单。 

从此以后,Elasticsearch成为了Github上最活跃的项目之一, Elastic公司围绕Elasticsearch提供商业服务,并开发新的特性。 Elasticsearch将永远开源并对所有人可用。

实时学习反馈

1. Elasticsearch本质是一个

A python语言开发的web项目

B javascript语言开发的web项目

C java语言开发的web项目

D java语言开发的普通项目 

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

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

相关文章

windows凭据收集

实验目的 掌握windows凭据的收集方法 实验环境 windows server 2008 实验工具 mimikatz procdump 实验原理 用户凭证获取,一般是指 ntlm hash 或者可以直接利用的明文密码。 实验内容 使用mimikatz获取用户信息 使用procdump获取当前用户的明文密码 实验步骤…

RabbitMQ在SpringBoot中的高级应用(2)

过期时间 1.单独的设置队列的存活时间,队列中的所有消息的过期时间一样 Bean//创建交换机public DirectExchange ttlQueueExchange(){// 交换机名称 是否持久化 是否自动删除return new DirectExchange("ttl_queue_log",true,false);}Bean//创建队列publ…

若依@DataScope

DataScope : 根据sys_role 中的 data_scope中的值,来设置数据该怎么过滤,, data_scope 取值: 1 : 不需要过滤2 : 自定义过滤 : 根据 sys_role_dept 这个表关联出来的 dept_id 过滤…

函数指针数组的概念和应用

函数指针数组 是什么? 函数指数组是存放函数指针的数组 int Add(int x, int y) {return x y; }int Sub(int x, int y) {return x - y; }int Mul(int x, int y) {return x * y; }int Div(int x, int y) {return x / y; }int main() {int(*parr[4])(int, int) { …

Ubuntu 20.04 LTS 安装 nvidia 驱动 + cuda 11.8 从开始到放弃!

升级 sources.list # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restri…

回归预测 | MATLAB实现WOA-DNN鲸鱼算法优化深度神经网络的数据多输入单输出回归预测

回归预测 | MATLAB实现WOA-DNN鲸鱼算法优化深度神经网络的数据多输入单输出回归预测 目录 回归预测 | MATLAB实现WOA-DNN鲸鱼算法优化深度神经网络的数据多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 回归预测 | MATLAB实现WOA-DNN鲸鱼算法优化深度…

什么是Qt Widgets?一组创建经典桌面应用UI的界面组件!

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 Qt Widgets模块提供…

spring-依赖注入的方式

setter注入-可选依赖注入 简单类型&#xff1a; 1.配置类 2.set方法 引用类型&#xff1a; 构造器注入-强制依赖注入 简单类型&#xff1a; 引用类型&#xff1a; 通过有参构造&#xff0c;获得需要注入的对象 <construct-arg />标签中name属性中填写的时构造方…

Linux--进程

什么叫做进程&#xff1f; 程序加载到内存就叫进程&#xff08;看不懂是吧&#xff0c;看下面更详细一些&#xff09; 进程对应的代码和数据进程对应的PCB结构体

Stable Diffusion系列课程上:安装、提示词入门、常用模型(checkpoint、embedding、LORA)、放大算法、局部重绘、常用插件

文章目录 一、Stable Diffusion简介与安装二、文生图&#xff08;提示词解析&#xff09;2.1 提示词入门2.2 权重2.3 负面提示词&#xff08; Negative prompt&#xff09;2.4 出图参数设置2.5 新手念咒方法 三、图生图3.1 图生图入门3.2 随机种子解析3.3 图生图拓展 四、模型4…

【C++进阶】bitset位图介绍以及模拟实现

文章目录 位图介绍一、位图的引入二、位图的概念 位图模拟实现一、构造函数二、set&#xff0c;reset&#xff0c;test函数三、代码测试四、完整代码 位图介绍 一、位图的引入 先来看下边一道面试题&#xff1a; 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符…

基于SpringBoot+Vue的影城管理系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…