elasticsearch集群搭建与优化

一、集群节点角色有哪些,各自起着什么作用?

master节点:

        主要功能是维护元数据,管理集群各个节点的状态,数据的导入和查询都不会走master节点,所以master节点的压力相对较小,因此master节点的内存分配也可以相对少些;但是master节点是最重要的,如果master节点挂了或者发生脑裂了,你的元数据就会发生混乱,那样你集群里的全部数据可能会发生丢失,所以一定要保证master节点的稳定性。

        机器配置建议:稳定、普通服务器即可(CPU 内存 消耗一般)

        配置方法:node.master: true   node.data: false

data节点:

        是负责数据的查询和导入的,它的压力会比较大,它需要分配多点的内存,选择服务器的时候最好选择配置较高的机器(大内存,双路CPU,SSD... 土豪~);data node要是坏了,可能会丢失一小份数据。     

        机器配置建议:性能高(主要消耗磁盘,内存

        配置方法:node.master: false   node.data: true

client节点 :

        该节点只能处理路由请求,处理搜索,分发索引操作等,从本质上来说该客户节点表现为智能负载平衡器。独立的客户端节点在一个比较大的集群中是非常有用的,他协调主节点和数据节点,客户端节点加入集群可以得到集群的状态,根据集群的状态可以直接路由请求。 

        警告:添加太多的客户端节点对集群是一种负担,因为主节点必须等待每一个节点集群状态的更新确认!客户节点的作用不应被夸大,数据节点也可以起到类似的作用 

        机器配置建议:普通服务器即可(如果要进行分组聚合操作的话,建议这个节点内存也分配多一点)

        配置方法:node.master: false   node.data: false

tribe节点(用的少):

        部落节点可以跨越多个集群,它可以接收每个集群的状态,然后合并成一个全局集群的状态,它可以读写所有节点上的数据

二、集群搭建步骤?

    window下(要jdk1.8环境):

    1、elasticsearch-2.3.2\bin\elasticsearch.in.sh文件:


    2、elasticsearch-2.3.2\config\elasticsearch.yml文件:(一定要记得开头带空格,冒号后面带空格

  •  cluster.name: my-application(集群名称,所有节点需保持一致)
  •  node.name: node-1(节点名称,必须都不一样)
  •  node.master (根据情况设置true或者false,思路参考第一个问题)
  •  node.data(根据情况设置true或者false,思路参考第一个问题)
  •  network.host: 0.0.0.0 (使其支持外网访问
  • discovery.zen.ping.unicast.hosts: ["192.0.0.1","192.0.0.2"] (设置了自动发现的节点)http.enabled: false
  • http.enabled: false (关闭node节点的http功能,其他节点不设置)
  • discovery.zen.minimum_master_nodes :默认值是1,该属性定义的是为了组成一个集群,相互连接的候选主结点的最小数目,强烈推荐该属性的设置使用多数原则:(master_eligible_nodes / 2) + 1,既能避免出现脑裂(split-brain),又能在故障发生后,快速选举出新的主结点,例如,有5个候选主结点,推荐把该属性设置为3
  • bootstrap.mlockall: true (锁定物理内存地址)

三、集群优化建议?

1、节点越多越好,每个节点各司其职。根据机器配置设置节点的类型。

2、索引分片数不要太多,尽量控制在5~10之内。副本数根据情况来,至少设置为1,在一定范围内,副本数越多,效率越高

3、一台机器上最好只部署一个节点,如果配置很高,那就无所谓

4、关闭data 节点的http 功能:将其中的配置参数这样设置:http.enabled: false,同时也不要安装head, bigdesk, marvel等监控插件,这样保证data节点服务器只需处理创建/更新/删除/查询索引数据等操作

5、ES内存设置:不要超过32G(即便你有足够的内存,也尽量不要超过32G,因为它浪费了内存,降低了CPU的性能,还要让GC应对大内存)

6、设置memory_lock来锁定进程的物理内存地址:修改elasticsearch.yml文件,设置bootstrap.memory_lock: true(版本2.4.3之后)、bootstrap.mlockall: true(版本2.4之后)

7、清除已删除文档:curl -XPOST 'http://192.168.80.10:9200/zhouls/_forcemerge?only_expunge_deletes=true'

8、将log的输出级别改为info(index.search.slowlog)




  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值