ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【超详细】手把手教你ElasticSearch集群搭建 [打印本页]

作者: 灌篮少年    时间: 2022-9-1 23:12
标题: 【超详细】手把手教你ElasticSearch集群搭建
1. ElasticSearch快速入门

1.1. 基本介绍


注意: ES7之后Type被舍弃,只有Index(等同于数据库+表定义)和Document(文档,行记录)。
1.2 ElasticSearch安装


启动状态有green、yellow和red。 green是代表启动正常。
1.3  Kibana服务安装

Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。
1.4  ES的基础操作


在Console中输入命令进行操作。

因为单节点模式, 只有主节点信息:
删除重新创建:
  1. PUT orders
  2. {
  3.     "settings": {
  4.         "index": {
  5.             "number_of_shards": 2,
  6.             "number_of_replicas": 0
  7.         }
  8.     }
  9. }
复制代码
将分片数设为0, 再次查看, 则显示正常:


通过查询命令, 能查看到对应信息, 默认分片数和副本数都为1:
  1. "number_of_shards" : "1", ## 主分片数
  2. "number_of_replicas" : "1", ## 副分片数
复制代码

3.3 删除索引
  1. ## 删除索引
  2. DELETE orders
复制代码
3.4 索引的设置
  1. ## 设置索引
  2. PUT orders
  3. {
  4.   "settings": {
  5.     "index": {
  6.       "number_of_shards": 1,
  7.       "number_of_replicas": 0
  8.     }
  9.   }
  10. }
复制代码
1.5  ES数据类型

整体数据类型结构:


ES的Date类型允许可以使用的格式有:
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd
epoch_millis(毫秒值)
2. ES高可用集群配置

2.1  ElasticSearch集群介绍

2.2  ElasticSearch集群原理

2.2.1 集群分布式原理

ES集群可以根据节点数, 动态调整主分片与副本数, 做到整个集群有效均衡负载。
单节点状态下:

两个节点状态下, 副本数为1:

三个节点状态下, 副本数为1:

三个节点状态下, 副本数为2:

2.2.2 分片处理机制

设置分片大小的时候, 需预先做好容量规划, 如果节点数过多, 分片数过小, 那么新的节点将无法分片, 不能做到水平扩展, 并且单个分片数据量太大, 导致数据重新分配耗时过大。
假设一个集群中有一个主节点、两个数据节点。orders索引的分片分布情况如下所示:
  1. PUT orders
  2. {
  3.         "settings":{
  4.                 "number_of_shards":2,  ## 主分片 2
  5.                 "number_of_replicas":2  ## 副分片 4
  6.         }
  7. }
复制代码

整个集群中存在P0和P1两个主分片, P0对应的两个R0副本分片, P1对应的是两个R1副本分片。
2.2.3 新建索引处理流程


2.2.4 读取索引处理流程


2.3  ElasticSearch集群部署规划

准备一台虚拟机:
192.168.116.140: Node-1 (节点一),  端口:9200, 9300
192.168.116.140: Node-2 (节点二),端口:9201, 9301
192.168.116.140: Node-3 (节点三),端口:9202, 9302
2.4  ElasticSearch集群配置


2.5 ElasticSearch集群分片测试

修改kibana的配置文件,指向创建的集群节点:
  1. elasticsearch.hosts: ["http://192.168.116.140:9200","http://192.168.116.140:9201","http://192.168.116.140:9202"]
复制代码
重启kibana服务, 进入控制台:
http://192.168.116.140:5601/app/home#/
再次创建索引(副本数量范围内):
  1. PUT orders
  2. {
  3.     "settings": {
  4.         "index": {
  5.             "number_of_shards": 2,
  6.             "number_of_replicas": 2
  7.         }
  8.     }
  9. }
复制代码
可以看到, 这次结果是正常:

集群并非可以随意增加副本数量, 创建索引(超出副本数量范围):
  1. PUT orders
  2. {
  3.     "settings": {
  4.         "index": {
  5.             "number_of_shards": 2,
  6.             "number_of_replicas": 5
  7.         }
  8.     }
  9. }
复制代码
可以看到出现了yellow警告错误:

好了,至此ES集群搭建完毕,欢迎志同道合的小伙伴,一起交流学习成长。进阶架构师,Fighting!!!
本文由传智教育博学谷 - 狂野架构师教研团队发布
如果本文对您有帮助,欢迎关注和点赞;如果您有任何建议也可留言评论或私信,您的支持是我坚持创作的动力
转载请注明出处!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4