Elasticsearch集群

1. why?

  • 提高负载能力
  • 提高存储容量上限
  • 实现高可用
  • 提高并发处理能力

2. 数据分片(Shard)

​ es集群把数据拆分成多份,每一份存储到不同节点(node),从而实现减少每个节点的数据量,减少单个服务器的压力,构成分布式搜索。它通过将一个索引切分为多个底层物理的Lucene索引完成索引数据的分割存储功能,这每一个物理的Lucene索引称为一个分片(shard)。当集群规模扩大或者缩小时, Elasticsearch 会自动的在各节点中迁移分片,使得数据仍然均匀分布在集群里。

​ 分片的数量只能在索引创建前指定,并且索引创建后不能更改。前一篇留下的创建索引库时设置属性的知识点(https://blog.csdn.net/qq_34928194/article/details/117093434),在这里就可以学到了:

PUT /first_index
{"settings" : {"number_of_shards" : 3,"number_of_replicas" : 1}
}
# number_of_shards 分片数量,即这个index切为几个分片
# number_of_replicas 副本数量,保存几个副本

3. 数据备份(replica)

​ es可以给每个分片数据进行备份,存储到其它节点,防止数据丢失,即分片副本(replica)。replica是一个分片的复制,每个分片可以有零个或多个副本。副本的作用一是提高系统的容错性,当某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。

​ es实现数据备份,首先将数据分片,存储到不同节点上,然后对每个分片进行备份,放在其他节点,完成互相备份。

​ 以上文创建/first_index 的例子,使用head插件查看索引的的分片和副本效果如图:

first_index 分为三个分片:0 1 2

first_index每个分片有一个副本,分布在不同节点中

4. 集群搭建

在第一篇单机版的基础上进行集群搭建:

ElasticSearch 1. 认识和安装

node-1配置文件修改:

#集群名称
cluster.name: my-application
#节点名称
node.name: node-1
#是不是可做主节点
node.master: true
#是否存储数据
node.data: true
#数据存储目录
path.data: /path/data
#日志存储目录
path.logs: /path/logs
#⽹关地址
network.host: 192.168.75.130
#http端口,默认9200
http.port: 9200
#集群内tcp通讯端口,默认9300
transport.tcp.port: 9300
#最⼤集群节点数
node.max_local_storage_nodes: 3
#es7.x 之后新增的配置,写⼊候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["192.168.75.130:9300", "192.168.75.131:9300","192.168.75.132:9300"]
#es7.x 之后新增的配置,初始化⼀个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-1","node-2","node-3"]

建立node-2、node-3,使用统一集群名称,修改对应的"节点名称"和"网关地址"

#集群名称
cluster.name: my-application
#节点名称
node.name: node-2
#是不是可做主节点
node.master: true
#是否存储数据
node.data: true
#数据存储目录
path.data: /path/data
#日志存储目录
path.logs: /path/logs
#⽹关地址
network.host: 192.168.75.131
#http端口,默认9200
http.port: 9200
#集群内tcp通讯端口,默认9300
transport.tcp.port: 9300
#最⼤集群节点数
node.max_local_storage_nodes: 3
#es7.x 之后新增的配置,写⼊候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["192.168.75.130:9300", "192.168.75.131:9300","192.168.75.132:9300"]
#es7.x 之后新增的配置,初始化⼀个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
#集群名称
cluster.name: my-application
#节点名称
node.name: node-3
#是不是可做主节点
node.master: true
#是否存储数据
node.data: true
#数据存储目录
path.data: /path/data
#日志存储目录
path.logs: /path/logs
#⽹关地址
network.host: 192.168.75.132
#http端口,默认9200
http.port: 9200
#集群内tcp通讯端口,默认9300
transport.tcp.port: 9300
#最⼤集群节点数
node.max_local_storage_nodes: 3
#es7.x 之后新增的配置,写⼊候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["192.168.75.130:9300", "192.168.75.131:9300","192.168.75.132:9300"]
#es7.x 之后新增的配置,初始化⼀个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-1","node-2","node-3"]

新节点接入时使用统一集群名称和新的节点名称

需注意的是:

建立集群时,要把数据存储目录中的旧数据清除掉或者使用新的路径,否则可能会同步数据报错

5. 集群安全性设置

原文链接:https://blog.csdn.net/wzh8108/article/details/105202077

(1) 创建认证

执行:

bin/elasticsearch-certutil ca

依次输入回车(文件使用默认名),密码

(2) 生成证书

执行

bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

依次输入上一个步骤的密码。回车(文件使用默认名),密码(建议与上一步密码相同)

执行bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password 并输入第一步输入的密码

执行bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password 并输入第一步输入的密码

(3) 多节点配置

将生成的elastic-certificates.p12、elastic-stack-ca.p12移动至config目录

将生成的elastic-certificates.p12、elastic-stack-ca.p12和config目录下的elasticsearch.keystore复制到其他节点服务器的config目录

记得给elastic用户授权这些文件

(4) 修改配置文件

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

重启各节点,此时访问9200提示需要输入用户名密码

(5) 设置密码

执行

bin/elasticsearch-setup-passwords interactive

依次输入管理员用户elastic和其他内置用户的密码

至此,完成

此时访问9200,输入用户名密码即可访问
查看集群状态
http://192.168.75.130:9200/_cluster/health?pretty

ElasticSearch 5. 搭建ES集群相关推荐

  1. Kubernetes 搭建 ES 集群(存储使用 local pv)

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  2. ElasticSearch(二):ES集群安装

    安装Elasticsearch 创建普通用户 ES不能使用root用户来启动,必须使用普通用户来安装启动.这里我们创建一个普通用户以及定义一些常规目录用于存放我们的数据文件以及安装包等. 创建一个es ...

  3. Kubernetes 搭建 ES 集群(存储使用 cephfs)

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  4. linux搭建es集群

    准备 安装docker. 安装好Docker Compose. 注意:运行内存最好8g以上,es运行会占用很多内存(2-3g) 方式1: 单机多节点. 参考官网的方式创建(docker-compose ...

  5. docker es持久化_Docker 搭建 ES 集群并整合 Spring Boot

    一.前言 什么是 Elasticsearch ? Elasticsearch 是一个基于 Apache Lucene(TM) 的开源搜索引擎.无论在开源还是专有领域,Lucene 可以被认为是迄今为止 ...

  6. Elasticsearch——Windows下ES集群部署 Linux下ES单节点、集群部署

    1.开篇 在之前的两篇文章中,说白了就是在windows下部署的ES单节点的环境. 这篇文章主要是说一下windows下部署ES集群.Linux下单节点部署. 单台 Elasticsearch 服务器 ...

  7. python连接es数据库_Python Elasticsearch API操作ES集群

    环境Centos 7.4 Python 2.7 Pip 2.7 MySQL-python 1.2.5 Elasticsearc 6.3.1 Elasitcsearch6.3.2 知识点调用Python ...

  8. elasticsearch系列八:ES 集群管理(集群规划、集群搭建、集群管理)

    一.集群规划 搭建一个集群我们需要考虑如下几个问题: 1. 我们需要多大规模的集群? 2. 集群中的节点角色如何分配? 3. 如何避免脑裂问题? 4. 索引应该设置多少个分片? 5. 分片应该设置几个 ...

  9. es集群搭建_滴滴Elasticsearch 集群跨版本升级与平台重构之路

    前不久,滴滴ES团队将维护的30多个ES集群,3500多个ES节点,8PB的数据,从2.3.3跨大版本无缝升级到6.6.1.在对用户查询写入基本零影响和改动的前提下,解决了ES跨大版本协议不兼容.文件 ...

最新文章

  1. Scala的异常处理
  2. python编程基础是什么-一 python编程基础
  3. 冷却负载、人为因素影响传统数据中心效率
  4. 数据库面试题【十九、count(字段) count(主键 id) count(1)count(*)的区别】
  5. 浅析Linux开发工具之Makefile
  6. 计算机基础项目任务教学重构,面向计算思维培养的中职课程项目式重构研究
  7. Android 壁纸设置代码 详解
  8. 海岸鸿蒙甲醇中8种苯系物,甲醇中8种苯系物混合溶液标准物质-8种VOC
  9. selenium课程笔记2--selenium操作chrome浏览器
  10. PHP写webservice服务端
  11. MySQL游标循环取出空值的BUG
  12. 搭建cacti 期间问题总结
  13. 下载网页中的html5视频之手动方法
  14. python中pygame怎么安_Python中pygame安装方法图文详解
  15. 深度学习:YOLO算法与其优化
  16. 四川多多开店:拼多多如何检查聊天记录
  17. Python 的图形用户界面
  18. oracle 8002,ORACLE 8.1.7 数据库ORA-600 4194故障恢复
  19. 百度云实现语音识别及语音合成
  20. python培训班价格-少儿编程培训机构哪家好,儿童编程价格多少钱?家长知多少...

热门文章

  1. RKNN模型训练转换部署
  2. Burp Suite Professional 2023.1 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
  3. Endnote: 文献条目的添加编辑+引用文献全称与缩写的互相转换
  4. Android-传感器-加速度传感器(Accelerometer sensor)
  5. ffmpeg命令对视频文件进行截图(及命令解释)
  6. 页面禁止保存、复制、右键、查看源代码、下载、嵌套等【js禁用】【js屏蔽快捷键】
  7. Django 分页 (PageNumberPagination)
  8. 大宽带服务器有什么优势?
  9. 记录一次linux内网完整渗透测试
  10. linux遍历目录漏洞,ubuntu linux 目录遍历漏洞(CVE-2019-14452)