elasticsearch7.1.1入门之集群的基础配置

操作系统win10,慕课网在一两年前出了这个es的基础教程,然后最近才开始学习,哪知道已经到了7.1.1的版本了(下面的内容都有官方文档,只是用来记录一下自己的学习过程)

先了解下他的基础概念

文档:ES是面向文档的,他不同与传统的关系型数据库,存一个对象要制定相应的列来表达他的某个属性,他是面向整个对象(文档)的,在创建索引时,要描述这个文档的每个字段的数据类型。所以可以把文档近似于对象,但是这个文档是描述顶级对象或最终对象,他被序列化为json并存储到es中

分片:分片是底层的基本读写单元,他是为了分割巨大的索引,支持读写并行操作,由多个节点共同完成,他是存放数据的地方,文档就保存在分片内,他分为主分片和副分片,以主分片的数据为准,从分片要等主分片被成功写入后再被写入。

索引:引致官方文档

索引(名词):

如前所述,一个 索引 类似于传统关系数据库中的一个 数据库 ,是一个存储关系型文档的地方。 索引 (index) 的复数词为 indices 或 indexes 。

索引(动词):

索引一个文档 就是存储一个文档到一个 索引 (名词)中以便它可以被检索和查询到。这非常类似于 SQL 语句中的 INSERT 关键词,除了文档已存在时新文档会替换旧文档情况之外。 

到这里以后,可以了解到 一个索引拥有多个分片,一个分片拥有多个文档,而节点、分片分别保证分布式系统的中的服务可用性

和数据可用性

类型:表示一类相似的文档,一个索引里面可以有多个类型,用于区分同一个索引中的不同细分(后面没有这个概念了)。

 

节点:

运行中的es实例

主节点:

负责管理集群的工作、管理集群变更

node.master: true(该配置会被认为是具有选举为master的资格),主节点可以作为数据节点,但是在生产环境中减少工作量可以配置 node.data: false

数据节点:

负责数据相关的操作:增删改查、搜索、聚合 配置方式:node.data:true

预处理节点:

可以在起到拦截处理的作用,在写入数据之前,经由该节点处理 配置方式:node.ingest:true

协调节点:

路由的作用

基础的概念就介绍到这里,如果想了解更多,需要自己去深入了解,看看文档和相关的视频

那接下来说一下安装:

首先肯定要有jvm环境啦,这里通过zip包解压,最好不要用那个msi的方式下载,因为好像做集群没有zip包方便(就从跟着慕课网的老师视频来学习的角度来说)zip包地址

解压好后,配置相关的文件,这里我解压了三个,这里如果直接复制的话,在window下面好像有点坑,然后配置跟着视频配置相应的文件

主节点:

http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.name: lele
node.name: master
node.master: true
network.host: 127.0.0.1
#node.data: false

数据节点1:

cluster.name: lele
node.name: slave1
network.host: 127.0.0.1
http.port: 8200
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]
node.data: true

cluster.name是集群的名称,node.name是节点名字,要保证对应的节点对应上集群名称,而后设置相应的端口,还有主节点的ip地址

数据节点2就是把端口号、节点名、改一下就可以了

集群的健康状态 

green 健康状态,所有主副分片都正常分配,yellow指所有主分片都正常分配,但是有副分片为正常分配,red有主分片未分配

这里说一下我遇到的坑,当时启动时突然出现找不到jvm.options这个文件,后来上网查询了是没有权限。。所以以系统管理员运行bat命令就可以了,先启动主节点再启动从节点,然后关于可视化的那个界面按着视频做就可以了,那里需要用到node的环境。大概的步骤就是先下载那个压缩包,解压,然后npm install,npm run start

然后看一下效果:

后面又接触到了另外的可视化界面cerebro,感觉更加好用,功能更强大,而启动的方式也从配置文件改为参数启动,-E参数

elasticsearch -Ecluster.name=lele -Epath.data=./data/node1 -Enode.name=node1 -Ehttp.port=9200 -d

这里再记录一下索引的分片和副本的关系,分片是把数据分成一个个部分,副本则是这些分片的副本可以通过

	"number_of_shards":2,
		"number_of_replicas":"2",

来设置,那么这里其实有2*(2+1)个分片,需要主分片有2个,每个主分片有2个副本,应该每个节点上都有两个主分片的数据。

然后如果为3个主分片,1个副本的话,也是六个分片,其中把数据分成3部分,每个部分有1个副本。

当磁盘空间不够时,可能为导致索引不能分配,这时候可以设置cluster.routing.allocation.disk.threshold_enabled为false,在cerebro中的集群配置里面

最后附上慕课网链接,瓦力老师声音挺好听的!

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值