ES集群管理
角色分配
①设置某台机器只做主节点,不做索引和shard,负责cluster内部的协调,数据的读取由集群的各个节点,共同完成的,但是数据的修改只有在master上完成。
node.master:true
node.data:false
②设置某台机器做索引和shard,不做主节点
node.master:false
node.data:true
③只做负载均衡器
node.master:false
node.data:fasle
(确定一个节点为master,其他的应该反着设置)
路径保存
①配置文件保存路径(this file and logging.yml)
path.conf:/path/
②这个节点的索引数据文件的存放路径
path.data:/path/to/data
path.data:/path/to/data1,/path/to/data2
插件设置
如果某个节点下面参数后的插件没有安装,将不会成功启动,保持默认值即可plugin mandatory
Recover设置
恢复过程需要等到集群中5个节点启动
gateway.recover_after_nodes:5
上述参数个数的集群节点启动成功后5分钟,开始恢复过程gateway.recover_after_time:5m
优先级高于上面,集群中的节点数成功启动5个后,即刻开始数据恢复gateway.expected_nodes:5
ES集群优化
软件层面
索引
分词器*
设置要合理,否则会使得索引变得相当庞大
Segment数量**
1.删除不用的索引
2.关闭索引 (文件仍然存在于磁盘,只是释放掉内存)。需要的时候可以重新打开。
3.定期对不再更新的索引做optimize (ES2.0以后更改为force merge api)。这Optimze的实质是对segment file强制做合并,可以节省大量的segment memory。

PS:wait_for_merge
参数,比较耗性能,一般保持默认值:false
分片数量
多:会导致交互多*
少:会导致分片大**
策略:冷热分离,依据时间戳建索引,先定一个小目标:30GB,到30GB后,可以再新建一个索引,将之前的保存至Hdfs上,一来可以备份,二来可以实现冷(hdfs)热(ES集群)分离的效果。
副本数量*
副本太多,性能会下降,通常副本数量设置为1即可。
(也可以设置为0,但前提是基于数据的重要程度以及是否有其他的备份机制)
系统层面
Linux,Centos,测试最大文件打开数。
ulimit -a

修改linux系统文件最大打开数
临时生效
ulimit -SHn 65535
:修改当前系统,文件最大打开数为65535
永久生效
vim /etc/security/limits.conf
末尾添加:* - nofile 65535
保存文件后重启即可
Linux(Centos )的网络内核参数优化来提高服务器并发处理能力
物理层面
内存:单实例分配32G(多了无济于事,内存锁定,给OS预留)**
硬盘:尽量大,Raid10,SSD**
CPU:配置尽量高***
网络:千兆,最好万兆***
(代表重要程度,数量越多越重要)
ES集群监控
免费:Head &Bigdesk
收费:mavel(天上不掉馅饼)
网友评论