elasticsearch.yml:
cluster.name: yyk-es-cluster
集群名称,每个节点一样
node.name: node-100
节点名称,每个节点不同
path.data: /data/es/data1,/data/es/data2
数据存储的地址,可以有多个,用逗号隔开,不要在es安装项目下,以免重新安装es时将数据删除
path.logs: /data/es/logs
日志存储的地址
bootstrap.memory_lock: true
锁住内存,防止内存交换导致es集群性能骤降
(锁住内存需要权限,修改/etc/security/limits.conf
添加
es soft memlock unlimited
es hard memlock unlimited
es为启动es项目的用户,用*代替,给所有用户授权)
bootstrap.system_call_filter: false
默认值是true,CentOS7可以使用默认值,但是CentOS6不支持SecComp,不设置为false启动时会报错:
system call filters failed to
install
; check the logs and fix your configuration or disable system call filters at your own risk
network.host: 192.168.226.100
本节点的ip地址
http.port: 9200
本节点使用的端口号
transport.tcp.port: 11006
tcp协议使用的端口
discovery.zen.ping.unicast.hosts: ["192.168.226.100:11006", "192.168.226.101:11006","192.168.226.102:11006","192.168.226.103:11006"]
单播列表,集群每个节点的ip
discovery.zen.minimum_master_nodes: 3
最小主节点数,防止脑裂(变成多个集群),设置为 master候选节点数/2+1
gateway.recover_after_nodes: 8
gateway.expected_nodes: 10
gateway.recover_after_time: 5m
阻止集群在少于多少个节点之前进行数据恢复,具体数字由个人喜好决定
集群中应该有多少个节点
我们愿意为这些节点等待多长时间
上面的配置意味着 Elasticsearch 会采取如下操作:
* 等待集群至少存在 8个节点
* 等待 5 分钟,或者10 个节点上线后,才进行数据恢复,这取决于哪个条件先达到。
这三个设置可以在集群重启的时候避免过多的分片交换。这可能会让数据恢复从数个小时缩短为几秒钟。
jvm.options
设置java堆内存
-Xms1g
-Xmx1g
默认1G,太小了。
确保堆内存最小值( Xms )与最大值( Xmx )的大小是相同的,防止程序在运行时改变堆内存大小, 这是一个很耗系统资源的过程。
建议把50%可用内存分配给es,剩下的留给lucene。
不要超过32G(31G不错),这与java内存指针压缩技术有关java内存指针压缩。