Elasticsearch5.4集群(一)安装部署
来源:互联网 发布:java weka 编辑:程序博客网 时间:2024/06/05 14:14
转载自:http://blog.csdn.net/u013673976/article/details/73883617
ES版本升级
生产环境用的是1.7,Elasticsearch5.x在性能上有了很大的提升,计划升级到5.4,先在线下部署验证,过程中发现很多配置项都改了,各种报错。
一定要看官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/_installation.html,网上找到的很多都过时的低版本配置,要么不对要么不全,还需要注意下breaking changes(不兼容变更项)。
节点功能分离
master、data、client分开部署,规划存储容量、内存、CPU(权威指南:https://www.elastic.co/guide/en/elasticsearch/guide/current/hardware.html)。master节点不存储数据,内存和cpu都比较低,一般部署3个master保证可靠。不建议用一块很大的磁盘,建议用多块SSD,可以并发IO。不是clien的节点可以不开启http服务的节点(http.enabled: false)同时也不要安装head, bigdesk, marvel等监控插件,这样保证data节点服务器只需处理创建/更新/删除/查询索引数据等操作。
内存分配
内存不要超过32G,java版本使用jdk1.8(We recommend installing Java version 1.8.0_131 or later),es最大分配-Xms32766m -Xmx32766m(内存对象指针压缩技术),GC使用G1不要设置-Xmn(参照垃圾回收配置:http://www.oracle.com/technetwork/articles/java/g1gc-1984535.html)。物理机上的内存之分一半给ES,另一半给Lucene,否则性能会受影响。128G内存的机器最多部署2个es实例。
系统配置修改
禁用swap(在一些内核版本,swappness=0会引发OOM)。vim /etc/sysctl.conf
修改 vm.swappiness=1,设置vm.max_map_count=262144(否则启动会报错:max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144])
修改es用户限制,不能用root启动Elasticsearch,比如使用tomcat用户(用户重新登录生效)
vim /etc/security/limits.conf
安装Elasticsearch5.4.1
安装步骤参照(https://www.elastic.co/downloads/elasticsearch),我们把es安装到/usr/local/目录下
建立软链接:更新安装目录/usr/local/elasticsearch/bin/elasticsearch启动脚本,修改查找jvm配置文件顺序,加入"$LEIDA_ES_HOME"/config/jvm.options,让虚拟机参数优先使用实例自己的配置,因为我们一个物理机上会启用多个es实例修改JVM参数的堆大小和G1GC方式(vim /usr/local/elasticsearch/config/jvm.options):mmseg分词器
下载elasticsearch-analysis-mmseg-5.4.1.zip
下载地址:https://github.com/medcl/elasticsearch-analysis-mmseg/releases
(elasticsearch.yml不支持参数path.plugins参数,如果一台机器上启多个实例,想配置每个实例自己的插件,比如master节点不加载head插件,需要改下源码读取路径和check验证,默认是读取安装路径下的/usr/local/elasticsearch/plugins/)
创建master
实例配置存放在/data/es/es_[tcpport]下
修改JVM堆大小,vim /data/es/es_9300/config/jvm.options,安装目录的默认-Xms32766m是给datanode用的,master的堆需要改小。cp /usr/local/elasticsearch/config/elasticsearch.yml /data/es/es_9300/config/elasticsearch.yml
修改elasticsearch.yml如下, IP、端口和存储路径需要自己替换,其他2个master的配置类似。为避免脑裂,discovery.zen.minimum_master_nodes设为2(非生产环境验证优先保证可用这里设为1)
启动脚本
因为一个物理机上只安装了一个es,但是要启用多个es实例,需要区分config文件的路径,把别的脚本拷贝过来改成我们的leidaES.sh,启动master
脚本内容其实就是加了些验证和start、stop参数,停止命令./leidaES.sh stop
创建datanode
和master节点的配置类似,注意node.master:false和node.data:true;node.name在集群中唯一。生产环境我们要做冷热分离,es1.7是通过分组来实现,ES5已改成node.attr.box_type。另外最好datanode和clientnode独立,非生产环境就合二为一了。cp /usr/local/elasticsearch/config/elasticsearch.yml /data/es/es_9301/config/elasticsearch.yml修改elasticsearch.yml如下:
启动数据节点
先启动3个master节点,再启动配置的多个数据节点,组成Es集群
创建动态模版
配置mmseg分词和默认一个分片,不要副本。每个doc都有time字段和存储日志的msg字段。
测试中文分词`mmseg_maxword` ,`mmseg_complex` ,`mmseg_simple`集群状态API接口测试
查看集群状态
curl 'localhost:9200/_cat/health?v'
创建索引(sense插件执行)
PUT /test
插入doc数据
POST /test/china/1
{"msg":"美国留给伊拉克的是个烂摊子吗"}
POST /test/china/2
{"msg":"公安部:各地校车将享最高路权"}
POST /test/china/3
{"msg":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"}
POST /test/china/4
{"msg":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"}
搜索数据,能搜到2条数据。
POST /test/china/_search?
{"query":{"bool":{"must":[{"match_phrase_prefix":{"msg":{"query":"中国"}}}],"must_not":[]}},"from":0,"size":40}
至此集群正常运行,还需安装监控插件,后续优化配置
- Elasticsearch5.4集群(一)安装部署
- Elasticsearch5.4集群(一)安装部署
- ElasticSearch5.1.1集群部署
- elasticsearch5.2集群部署
- CentOS上安装ElasticSearch5.4集群
- Elasticsearch5.1集群+kibana部署
- ElasticSearch5.6.3的安装部署以及集群部署、ElasticSearch-head的安装
- elasticsearch5.4集群超时
- ElasticSearch5.4集群搭建
- Centos7.3部署Elasticsearch5.4.0集群
- elasticsearch5 版本集群管理工具head安装
- elasticsearch5 版本集群管理工具head安装
- CentOS 6.8 安装elasticsearch5.2集群
- ElasticSearch5.x集群安装及测试
- elasticSearch5.x单实例和集群安装
- Elasticsearch5.4集群(二)java API升级
- Elasticsearch5.4集群(三)Flume1.6sink兼容
- elasticsearch集群一键部署安装
- 图像分基础习题1
- 理解存储
- JsonPath —— JSON 解析神器
- 常用的c语言操作符
- makefile的基本格式
- Elasticsearch5.4集群(一)安装部署
- MapReduce两种执行环境的搭建和测试
- angularjs购物车
- U盘系统安装
- sudo unable to resolve host错误
- redis-多数据库
- Slim Span POJ
- HttpServletRequest常用获取URL的方法
- js深拷贝和浅拷贝