elasticsearch笔记

#基本概念

  • 索引库(indices):indices是index的复数,代表许多的索引
  • 类型(type):类型是模拟mysql中的table概念,一个索引库下可以有不同类型的索引,比如商品索引,订单索引,其数据格式不同。不过这会导致索引库混乱,因此未来版本中会移除这个概念
  • 文档(document):存入索引库原始的数据。比如每一条商品信息,就是一个文档
  • 字段(field):文档中的属性
  • 映射配置(mappings):字段的数据类型、属性、是否索引、是否存储等特性
  • 索引集(Indices,index的复数):逻辑上的完整索引
  • 分片(shard):数据拆分后的各个部分
  • 副本(replica):每个分片的复制

集群部署

  1. 1、ES JVM heap 最大可以设置32G ,30G heap大概能处理的数据量10T。如果内存很大如128G,可在一台机器上运行多个ES节点实例。两类应用场景:A. 用于构建业务搜索功能模块,且多是垂直领域的搜索。数据量级几千万到数十亿级别。一般2-4台机器的规模。B. 用于大规模数据的实时OLAP(联机处理分析),经典的如ELK Stack,数据规模可能达到千亿或更多。几十到上百节点的规模。
  2. 2、集群中的三种节点角色
    Master:处理客户端请求,cpu消耗内存一般
    node.master: true
    DataNode:存储数据,消耗内存
    node.data: true
    Coordinate node: 协调节点:接收请求、转发请求到其他节点、汇总各个节点返回数据等功能的节点。将上两个配置设为false。
    一个节点可以充当一个或多个角色,默认三个角色都有。A. 小规模集群,不需严格区分。B. 中大规模集群(十个以上节点),应考虑单独的角色充当。特别并发查询量大,查询的合并量大,可以增加独立的协调节点。角色分开的好处是分工分开,不互影响。如不会因协调角色负载过高而影响数据节点的能力。
  3. 分片和副本的设置。
    分片数指定后不能修改,副本数可以修改。分片和副本的数量要根据实际情况来设置,分片建多了会消耗相应的文件句柄, 内存和CPU资源。副本多浪费存储空间、占用资源、影响性能。在开始阶段, 一个好的方案是根据你的节点数量按照1.5~3倍的原则来创建分片. 例如,如果你有3个节点, 则推荐你创建的分片数最多不超过9(3x3)个。当性能下降时,增加节点,ES会平衡分片的放置。副本数量一般设置为2即可。
  4. 集群的脑裂问题。
    一个集群中只有一个A主节点,A主节点因为需要处理的东西太多或者网络过于繁忙,从而导致其他从节点ping不通A主节点,这样其他从节点就会认为A主节点不可用了,就会重新选出一个新的主节点B。过了一会A主节点恢复正常了,
    这样就出现了两个主节点,导致一部分数据来源于A主节点,另外一部分数据来源于B主节点,出现数据不一致问题,这就是脑裂。
    1)尽量避免脑裂,需要添加最小数量的主节点配置:
    discovery.zen.minimum_master_nodes: (有master资格节点数/2) + 1,这个参数控制的是,选举主节点时需要看到最少多少个具有master资格的活节点,才能进行选举。官方的推荐值是(N/2)+1,其中N是具有master资格的节点的数量。
    2)常用做法(中大规模集群):
    Master 和 dataNode 角色分开,配置奇数个master,如单播发现机制,配置master资格节点:
    discovery.zen.ping.multicast.enabled: false —— 关闭多播发现机制,默认是关闭的。discovery.zen.ping.unicast.hosts: [“master1”, “master2”, “master3”] —— 配置单播发现的主节点ip地址,其他从节点要加入进来,就得去询问单播发现机制里面配置的主节点我要加入到集群里面了,主节点同意以后才能加入,然后主节点再通知集群中的其他节点有新节点加入
    3.)配置选举发现数,及延长ping master的等待时长
    discovery.zen.ping_timeout: 30(默认值是3秒)——其他节点ping主节点多久时间没有响应就认为主节点不可用了
    discovery.zen.minimum_master_nodes: 2 —— 选举主节点时需要看到最少多少个具有master资格的活节点,才能进行选举

restful语法
#创建索引

PUT /索引库名
{
  "settings": {
	  "number_of_shards": 3,   
	  "number_of_replicas": 2
	}
}

查看索引

GET /索引库名

删除索引

DELETE /索引库名

映射配置

  • 类型名称:就是前面将的type的概念,类似于数据库中的不同表
  • 字段名:任意填写,可以指定许多属性,例如:
  • type:类型,可以是text、long、short、date、integer、object等
  • index:是否索引,默认为true
  • store:是否存储,默认为false
  • analyzer:分词器,这里的ik_max_word即使用ik分词器
<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值