ElasticSearch学习笔记——配置参数

集群参数

1.cluster.name 集群名称

也可以在注释后在es的启动命令添加 -Ecluster.name=XXX,默认为elasticsearch

 

节点参数

1.node.name 节点名称

也可以在注释后在es的启动命令添加 -Enode.name=XXX

2.node.name 节点角色

有如下参数:

node.master: false

node.data: true

node.ingest: false

node.ml: true

xpack.ml.enabled: true

参考:笔记五十二:常见的集群部署方式

 

ElasticSearch node的角色可以分成5种:

1.Master eligible nodes:主节点:

  负责集群状态(cluster state)的管理,使用低配置的 CPU,RAM 和磁盘

  从高可用 & 避免脑裂的角色出发:一般在生产环境中配置 3 台;可以有多个master节点,但是同时只能有一个活跃的主节点,在cerebro上活跃的主节点会带有*号;负载分片管理,索引创建,集群管理等操作

  如果和数据节点或者 Coordinate 节点混合部署:数据节点相对有比较大的内存占用;Coordinate 节点有时候可能会有开销很高的查询,导致 OOM;这些都有可能影响 Master 节点,导致集群的不稳定

2.Data Node:数据节点:

  负责数据存储及处理客户端请求,使用高配置的 CPU,RAM 和磁盘

3.Coordinating Node:协调节点,也称为client节点:

  生产环境中,建议为一些大的集群配置 Coordinating Only Nodes,Medium / High CPU; Medium / High RAM; Low Disk

  扮演 Load Balancers。 降低 Master 和 Data Nodes 的负载

  负载搜索结果的 Gather / Reduce

  有时候无法预知客户端会发生怎样的请求

  大量占用内存的结合操作,一个深度聚合可能引发 OOM

4.Ingest Node:ingest节点:

  负责数据处理,使用高配置的 CPU ; 中等配置的 RAM; 低配置的磁盘

5.Machine learning:机器学习节点

2.node.attr 节点属性

Elasticsearch支持给节点打标签,具体方式是在elasticsearch.yml文件中增加

node.attr.{attribute}: {value}

比如用于进行节点的业务隔离或者冷热分离,business1,business2,hot,warm等等,也可以注释后在es的启动命令添加 -Enode.attr.box_type=$xxxx

参考:Elasticsearch冷热分离原理和实践

也可以用于机架的隔离 node.attr.rack: r1

 

路径参数

1.path.data data路径

比如 path.data: /data01/xxx, /data02/xxx

也可以在启动命令中添加 -Epath.data=$datadir

2.path.logs log路径

比如path.logs: /data01/logs/xxx

也可以在启动命令中添加 -Epath.logs=$logdir

内存参数

1bootstrap.memory_lock 

锁定jvm只用内存,不使用硬盘

网络参数

1.network.host 绑定监听IP

默认是注释的

如果不限制主机的访问和节点的交互(client节点需要这么配置),可以修改成0.0.0.0

如果发布给集群中其他节点知道的地址,可以修改成"_bond1:ipv4_"

2.http.port http端口

也可以在启动命令中添加 -Ehttp.port=$http_port;其他还有tcp的端口,比如 -Etransport.tcp.port=$tcp_port

3.http.enabled 是否为 Elasticsearch 服务启用 HTTP

如果是client节点的话,true,并且

http.cors.enabled: true
http.cors.allow-origin: "*"

如果是其他节点的话,false

参考:Elasticsearch 服务配置属性 

3.其他http参数

参考:ElasticSearch 配置文件

 

发现机制参数

1.discovery.zen.ping.unicast.hosts  集群中其他节点ip:tcp端口,用来联系集群中其他节点,一般只用配置主节点地址即可

比如 discovery.zen.ping.unicast.hosts: ["host1:9300","host2:9300","host3:9300","host4:9300","host5:9300"]

2.discovery.zen.minimum_master_nodes 最小主节点数目,为了防止脑裂,需要设置发现超过半数的主节点候选者才能组成集群

比如节点的主节点数量为5,这里就是3;如果是3,那么就是2

 

线程池参数

1.thread_pool.bulk.queue_size 

The queue_size allows to control the size of the queue of pending requests that have no threads to execute them. By default, it is set to -1 which means its unbounded. When a request comes in and the queue is full, it will abort the request.

比如设置成5000

参考:https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-threadpool.html

posted @ 2016-02-20 21:52  tonglin0325  阅读(506)  评论(0编辑  收藏  举报