创建es集群

mac 环境,es6.6.0 * 3

es下载 : https://repo.huaweicloud.com/elasticsearch/7.2.0/?C=N&O=D
ik分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.6.0/elasticsearch-analysis-ik-6.6.0.zip
pinyin分词器下载地址:https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v6.6.0
kibana下载: https://mirrors.huaweicloud.com/kibana/6.6.0/
elasticsearch-head下载:https://github.com/mobz/elasticsearch-head
如果ik分词器下载慢,可以下载源代码,切换tag再打包。
git clone https://github.com/medcl/elasticsearch-analysis-ik
cd elasticsearch-analysis-ik
git checkout tags/{version}         【git checkout v7.3.0】
mvn clean
mvn compile
mvn package
cluster.name: xly-es
node.name: node00
node.master: true
network.host: 127.0.0.1
http.port: 9200
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]
discovery.zen.minimum_master_nodes: 2
#允许其他插件访问
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.name: xly-es
node.name: node01
node.master: true
network.host: 127.0.0.1
http.port: 9200
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]
discovery.zen.minimum_master_nodes: 2
#允许其他插件访问
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.name: xly-es
node.name: node02
node.master: true
network.host: 127.0.0.1
http.port: 9200
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]
discovery.zen.minimum_master_nodes: 2
#允许其他插件访问
http.cors.enabled: true
http.cors.allow-origin: "*"

下载并启动elasticsearch-head

npm start

启动后访问http://localhost:9100 连接http://localhost:9200
在这里插入图片描述

es集群存储

  1. es采取分片存储数据
  2. 分片都均衡地分布在每一个节点中
  3. 主分片不能和自己的副本分片存储在同一个节点中
  4. 主分片可以进行读写,保证集群对外提供能力

只有一个master节点,是否会成为集群的性能瓶颈?
数据存储主要看分片,主分片主要存储在主、从节点中,应此从节点也具有读写能力,
分担每一个服务器的读写能力,应此master不会成为性能瓶颈。

集群节点说明:
1. ⭐️ 主节点 (master节点)
2. ⭕️ 副本节点 (slave节点,node节点)

主分片/副本分片:
1.边框比较粗,主分片(primary shard)
2. 边框比较细,副本分片 (replica shard)
节点类型:
1.master节点
维护集群状态
2.数据节点
存储数据(索引)
3.协调节点
根据路由算法,把请求转发给相应的分片进行处理。

节点类型:配置
1.master
node.master : true — 具有参与选举成为master的候选节点,true是默认
node.data : true — 既可以作为master节点,也可以存储数据,true是默认
2. 数据节点
node.master : false
node.data : true – 只能存储数据,不能参与master选举
3. 协调节点:
每个节点都可以作为协调节点
注意:每一个节点默认具有3中身份角色(master候选,数据存储节点,协调节点)

在这里插入图片描述

问题:
1.为什么索引一旦写入磁盘(内存),就不可更改
1)数据无需更改,就可以防止兵法修改,不需要加锁,不需要担心多个线程同时写索引库,保护索引库的安全。
2)防止索引库,索引被频繁修改,写入,浪费性能,占用io资源
3)把索引写入内存,索引不能被修改,索引一直驻留在内存中,搜索时候只需要命中内存索引即可,提升搜索效率。

2.索引不能被修改,索引在segment中进行存储,相当于是segment也不能修改,如何实现curd?

  1. 添加 ---- 直接添加一个新的segment
  2. 删除 — 不是真正的删除,而是在一个commit point 文件中记录删除的文档id,标记删除。等segment合并再执行删除
    3)更新-- 先删除,再添加
    4)查询 — 从多个段中查询,把查询的结果进行合并
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值