elasticsearch 第二篇(配置篇)
来源:互联网 发布:网络信息发布平台 编辑:程序博客网 时间:2024/05/01 14:50
配置
在es启动之前可以通过设置启动命令行启动参数、环境变量、文件等方式优化和配置es进行参数
环境变量
系统配置
- 设置系统允许打开的文件描述符数量,建议设置为32k或64k, 可通过命令ulimit -n进行查询,示例:
ulimit -n 65535
后重启服务
可以在启动时添加参数-Des.max-open-files=true查看允许打开的文件描述符数量
也可以通过RESTAPI查看nodes信息,输入:GET /_nodes/process?pretty
输出:
1234567891011121314151617181920
{ "cluster_name": "elasticsearch", "nodes": { "eE4eHSOWTK-j6IO7JJzcDQ": { "name": "Specialist", "transport_address": "inet[silence/192.168.1.111:9300]", "host": "silence", "ip": "192.168.1.111", "version": "1.6.0", "build": "cdd3ac4", "http_address": "inet[/192.168.1.111:9200]", "process": { "refresh_interval_in_millis": 1000, "id": 6212, "max_file_descriptors": -1, "mlockall": false } } }}
虚拟内存设置
es采用混合的mmapfs/niofs目录默认存储索引,在mmap计数太低时可能导致存储器异常,可通过sysctl vm.max_map_count查询,需要设置使用命令sysctl -w vm.max_map_count=262144
或者在/etc/sysctl.conf中进行永久设置
内存设置
在操作系统为尽量多的使用内存,会将不用的应用程序内存换出存储在swap文件系统中,交换会降低系统的性能和节点的稳定性,需要禁止,可通过三种方法进行设置:
禁用swap分区
在linux中可通过swapoff -a
或在/etc/fstab中注释所有行中swap的内容
在windows中在”系统属性”->”高级”->”性能”->”高级”->”虚拟内存”中设置配置swappiness
通过sysctl vim.swappiness=0减少内核进行的swap交换mlockall
在*nux上使用mlockall或者在window上使用VirtualLocx尽量锁定进程的地址空间到RAM,防止es内存被换出,可通过elasticsearch.yml进行配置
在es配置文件中添加:bootstrap.mlockall: true
并重启服务即可
通过RESTAPI查看nodes信息,输入:GET /_nodes/process?pretty
在*nux系统下可能有两个原因导致mlockall设置失败:
1.es进程所属用户不具有锁定内存的权限,需要使用ulimit -l进行设置
2./tmp目录设置了noexec选项,可通过在启动es时设置-Djna.tmpdir=/path/to/new/dir解决
es配置
在ES_HOME/conf目录下两个配置文件分别为elasticsearch.yml和logging.yml, elasticsearch.yml为es所有模块提供配置, logging.yml为日志记录提供配置
- elasticsearch.yum解读
1.network设置
network.host: 设置bind host和publish
2.path设置
path.logs: 设置日志存储目录
path.data: 设置数据存储目录
3.cluster设置
cluster.name: 设置集群标识
4.node设置
node.name: 设置节点标识
5.index设置
es支持创建存储到内存中的索引,可以在创建索引或者在进程启动时指定默认存储方式
a.在yum配置文件中配置index.store.type:memory
b.在es进程启动时通过参数-Des.index.store.type=memory设置
c.在创建index时通过参数提交,输入:
12345678
PUT http://localhost:9200/m_index_test2/{ "index" :{ "store": { "type": "memory" } }}
说明:存储在内存中的索引在重启服务器后数据会丢失
6.在yum配置文件中可设置为环境变量的引用,比如在环境变量中定义节点的名称ES_NODE_NAME, 则可在yum配置文件中设置node.name=${ES_NODE_NAME}
7.可在es进程启动时通过进程启动参数进行设置,如-Des.node.name=silence
8.可以在es进程启动时通过-Des.config=/path/to/config/file重新指定config文件
- logging.yum配置可参考log4j
- elasticsearch 第二篇(配置篇)
- ElasticSearch入门 第二篇:集群配置
- Elasticsearch:配置篇
- Elasticsearch Alias第二篇 Alias 过滤器和路由
- 第二篇 应用elasticsearch进行简单的商品管理
- ELK第二篇:Elasticsearch的CRUD常用REST接口
- elasticsearch学习总结——配置篇
- 云计算平台(检索篇)-Elasticsearch-配置篇
- Fluentd+ElasticSearch+Kibana 搭建日誌類文件分析器 配置篇
- 剖析Elasticsearch集群系列第二篇 分布式的三个C、translog和Lucene段
- Elasticsearch中文分词插件IK Analyer安装操作指导(本博第二篇)
- Elasticsearch配置
- Elasticsearch配置
- elasticsearch配置
- elasticsearch配置
- elasticsearch配置
- ElasticSearch配置
- elasticsearch配置
- 机器学习实战--KNN
- 硬盘与磁盘的盘片、盘面、磁道、扇区
- 文本规范化(字符串模拟)
- 【 BZOJ 3721】 PA2014 Final Bazarek 贪心
- LitePal学习笔记
- elasticsearch 第二篇(配置篇)
- 图像数据预处理
- request的set-getParameter及getAttribute
- 基础练习 十六进制转八进制
- 学校要选择一个地方作为超市的位置,学校每个有K个部门,每个部门去超市的频率不一样,要求在可以设置的地点中选择一个最优的地点
- 百练2790:迷宫
- maven常用命令
- POJ 2632-Crashing Robots(模拟-robot移动)
- 郁闷的出纳员 treap模板