elasticsearch的config文件夹里面有两个配置文件:elasticsearch.yml和logging.yml,第一个是es的基本 配置文件,第二个是日志配置文件,es也是使用log4j来记录日志的,所以logging.yml里的设置按普通log4j配置文件来设置就行了。

下面 主要讲解下elasticsearch.yml这个文件中可配置的东西。

配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。

  1. cluster.name: elasticsearch

节点名,默认随机指定一个name列表中名字,该列表在es的jar包中config文件夹里name.txt文件中,其中有很多作者添加的有趣名字。

  1. node.name: "Franz Kafka"

指定该节点是否有资格被选举成为node,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。

  1. node.master: true

指定该节点是否存储索引数据,默认为true。

  1. node.data: true

设置默认索引分片个数,默认为5片。

  1. index.number_of_shards: 5

设置默认索引副本个数,默认为1个副本。

  1. index.number_of_replicas: 1

设置配置文件的存储路径,默认是es根目录下的config文件夹。

  1. path.conf: /path/to/conf

设置索引数据的存储路径,默认是es根目录下的data文件夹

  1. path.data: /path/to/data

可以设置多个存储路径,用逗号隔开,例:

  1. path.data: /path/to/data1,/path/to/data2

设置临时文件的存储路径,默认是es根目录下的work文件夹。

  1. path.work: /path/to/work

设置日志文件的存储路径,默认是es根目录下的logs文件夹

  1. path.logs: /path/to/logs

设置插件的存放路径,默认是es根目录下的plugins文件夹

  1. path.plugins: /path/to/plugins

强制所有内存锁定,不要搞什么swap的来影响性能

设置为true来锁住内存。因为当jvm开始swapping时es的效率会降低,所以要保证它不swap,可以把ES_MIN_MEM和
ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。同时也要允许elasticsearch的进程可以锁住内
存,linux下可以通过`ulimit -l unlimited`命令。

  1. bootstrap.mlockall: true

设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0。

  1. network.bind_host: 192.168.0.1

设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址。

  1. network.publish_host: 192.168.0.1

这个参数是用来同时设置bind_host和publish_host上面两个参数。

  1. network.host: 192.168.0.1

设置节点间交互的tcp端口,默认是9300。

  1. transport.tcp.port: 9300

设置是否压缩tcp传输时的数据,默认为false,不压缩。

  1. transport.tcp.compress: true

设置对外服务的http端口,默认为9200。

  1. http.port: 9200

设置内容的最大容量,默认100mb

  1. http.max_content_length: 100mb

是否使用http协议对外提供服务,默认为true,开启。

  1. http.enabled: false

网络配置

  1. #network.tcp.keep_alive : true
  2. #network.tcp.send_buffer_size : 8192
  3. #network.tcp.receive_buffer_size : 8192

自动发现相关配置

  1. #discovery.zen.fd.connect_on_network_disconnect : true
  2. #discovery.zen.initial_ping_timeout : 10s
  3. #discovery.zen.fd.ping_interval : 2s
  4. #discovery.zen.fd.ping_retries  : 10

The gateway snapshot interval (only applies to shared gateways).

  1. #index.gateway.snapshot_interval : 1s

分片异步刷新时间间隔

  1. #index.refresh_interval : -1

Set to an actual value (like 0-all) or false to disable it.

  1. index.auto_expand_replicas

Set to true to have the index read only. false to allow writes and metadata changes.

  1. index.blocks.read_only

Set to true to disable read operations against the index.

  1. index.blocks.read

Set to true to disable write operations against the index.

  1. index.blocks.write

Set to true to disable metadata operations against the index.

  1. index.blocks.metadata

Lucene index term间隔,仅用于新创建的doc

  1. index.term_index_interval

Lucene reader term index divisor

  1. index.term_index_divisor

When to flush based on operations.

  1. index.translog.flush_threshold_ops

When to flush based on translog (bytes) size.

  1. index.translog.flush_threshold_size

When to flush based on a period of not flushing.

  1. index.translog.flush_threshold_period

Disables flushing. Note, should be set for a short interval and then enabled.

  1. index.translog.disable_flush

The maximum size of filter cache (per segment in shard). Set to -1 to disable.

  1. index.cache.filter.max_size

The expire after access time for filter cache. Set to -1 to disable.

  1. index.cache.filter.expire

merge policy

All the settings for the merge policy currently configured. A different merge policy can’t be set.

A node matching any rule will be allowed to host shards from the index.

  1. index.routing.allocation.include.*

A node matching any rule will NOT be allowed to host shards from the index.

  1. index.routing.allocation.exclude.*

Only nodes matching all rules will be allowed to host shards from the index.

  1. index.routing.allocation.require.*

Controls the total number of shards allowed to be allocated on a single node. Defaults to unbounded (-1).

  1. index.routing.allocation.total_shards_per_node

When using local gateway a particular shard is recovered only if
there can be allocated quorum shards in the cluster. It can be set to
quorum (default), quorum-1 (or half), full and full-1. Number values are
also supported, e.g. 1.

  1. index.recovery.initial_shards

Disables temporarily the purge of expired docs.

  1. index.ttl.disable_purge

默认索引合并因子

  1. #index.merge.policy.merge_factor : 100
  2. #index.merge.policy.min_merge_docs : 1000
  3. #index.merge.policy.use_compound_file : true
  4. #indices.memory.index_buffer_size : 5%

Gateway相关配置

当集群期望节点达不到的时候,集群就会处于block,无法正常索引和查询,说明集群中某个节点未能正常启动,这正是我们期望的效果,block住,避免照成数据的不一致。

gateway的类型,默认为local即为本地文件系统,可以设置为本地文件系统,分布式文件系统,hadoop的HDFS,和amazon的s3服务器,其它文件系统的设置方法下次再详细说。

  1. gateway.type: local

设置集群中N个节点启动时进行数据恢复,默认为1。

  1. gateway.recover_after_nodes: 1

设置初始化数据恢复进程的超时时间,默认是5分钟。

  1. gateway.recover_after_time: 5m

设置这个集群中节点的数量,默认为2,一旦这N个节点启动,就会立即进行数据恢复。

  1. gateway.expected_nodes: 2

初始化数据恢复时,并发恢复线程的个数,默认为4。

  1. cluster.routing.allocation.node_initial_primaries_recoveries: 4

添加删除节点或负载均衡时并发恢复线程的个数,默认为4。

  1. cluster.routing.allocation.node_concurrent_recoveries: 2

设置数据恢复时限制的带宽,如入100mb,默认为0,即无限制。

  1. indices.recovery.max_size_per_sec: 0

设置这个参数来限制从其它分片恢复数据时最大同时打开并发流的个数,默认为5。

  1. indices.recovery.concurrent_streams: 5

设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)。

  1. discovery.zen.minimum_master_nodes: 1

设置集群中自动发现其它节点时ping连接超时时间,默认为3秒,对于比较差的网络环境可以高点的值来防止自动发现时出错。

  1. discovery.zen.ping.timeout: 3s
  1. discovery.zen.ping.multicast.enabled: false

设置是否打开多播发现节点,默认是true。

当禁用multcast广播的时候,可以手动设置集群的节点ip

设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。

  1. discovery.zen.ping.unicast.hosts: ["host1", "host2:port", "host3[portX-portY]"]

下面是一些查询时的慢日志参数设置

  1. index.search.slowlog.level: TRACE
  2. index.search.slowlog.threshold.query.warn: 10s
  3. index.search.slowlog.threshold.query.info: 5s
  4. index.search.slowlog.threshold.query.debug: 2s
  5. index.search.slowlog.threshold.query.trace: 500ms
  6. index.search.slowlog.threshold.fetch.warn: 1s
  7. index.search.slowlog.threshold.fetch.info: 800ms
  8. index.search.slowlog.threshold.fetch.debug:500ms
  9. index.search.slowlog.threshold.fetch.trace: 200ms

1.设置cache大小和过期时间。

  1. index.cache.field.max_size
  2. index.cache.field.expire

例如设置:

  //index中每个segment中可包含的最大的entries数目

  1. index.cache.field.max_size: 50000

//过期时间为10分钟

  1. index.cache.field.expire: 10m

2.改变cache类型。

  1. index.cache.field.type: soft

默认类型为resident, 字面意思是常驻(居民), 一直增加,直到内存 耗尽。 改为soft就是当内存不足的时候,先clear掉 占用的,然后再往内存中放。设置为soft后,相当于设置成了相对的内存大小。resident的话,除非内存够大。

3.对数据进行处理。

文章中提到的是减小字段值长度,如将大写转成小写。

这点上,实际中可能将数据精炼。当然, 也可以把要做facet的字段做一个转化,用int型代替。

关于string转化int呢, 可以参考M大神的: https://github.com/medcl/elasticsearch-analysis-string2int

elasticsearch 配置说明的更多相关文章

  1. ElasticSearch配置说明

    配置文件位于%ES_HOME%/config/elasticsearch.yml文件中. cluster.name: elasticsearch 配置集群名称,默认elasticsearch node ...

  2. ELK安装使用教程

    一.说明 ELK是当下流行的日志监控系统.ELK是Elasticsearch.Logstash.Kibana三个软件的统称. 在ELK日志监控系统中,Logstash负责读取和结构化各类日志+发送给E ...

  3. ElasticSearch(八):elasticsearch.yml配置说明

    集群名称:cluster.name: my-application确保在不同的环境中的集群的名称不重复,否则,节点可能会连接到错误的集群上 节点名称:node.name: node-1默认情况下,当节 ...

  4. 第九章:Elasticsearch集群优化及相关节点配置说明

    Linux系统调优: Linux调整打开文件数(重新启动生效) 在/etc/security/limits.conf在文件中增加: * soft nofile 8192 * hard nofile 2 ...

  5. ElasticSearch安装及简单配置说明

      目录 1.      准备安装包... 1 2.      安装jdk7. 1 3.      安装ElasticSearch. 2 4.      安装maven. 3 5.      集成IK ...

  6. elasticsearch.yml基本配置说明

    一.基本配置 elasticsearch的config文件夹里面有两个配置文 件:elasticsearch.yml和logging.yml,第一个是es的基本配置文件,第二个是日志配置文件,es也是 ...

  7. elasticsearch.yml 配置说明

    cluster.name: 指定node所属的cluster. node.name: 本机的hostname. node.master: 是否可以被选举为master节点.(true or false ...

  8. 搜索引擎 ElasticSearch 之 步步为营 【主目录】

    ElasticSearch 是一款著名的分布式搜索引擎框架,采用Java编写.具有搜索速度快,实时搜索等特色. 以下为官网对ElasticSearch的介绍: Elasticsearch 是一款高可伸 ...

  9. Solr vs. Elasticsearch谁是开源搜索引擎王者

    当前是云计算和数据快速增长的时代,今天的应用程序正以PB级和ZB级的速度生产数据,但人们依然在不停的追求更高更快的性能需求.随着数据的堆积,如何快速有效的搜索这些数据,成为对后端服务的挑战.本文,我们 ...

随机推荐

  1. #define const extern

    将父类中的常量放到. m文件,子类就不会重复包含了.之后再.h文件中用extern NSSting * const ILScoreShowStartTime;// extern 用来声明变量和函数.c ...

  2. Linux openvswitch性能调优

    Increasing the flow-eviction threshold The threshold is a type of limit on the number of flows that ...

  3. TCP/IP,http,socket,长连接,短连接

    TCP/IP TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应 ...

  4. 辨别 ShopEX Ecshop

    御剑可以识别ShopEX 或者 Ecshop 特征 ShopEX : 蓝色的icon js里有很多Cookie. <link rel="stylesheet" href=&q ...

  5. CDN技术详解及实现原理

    CDN技术详解 一本好的入门书是带你进入陌生领域的明灯,<CDN技术详解>绝对是带你进入CDN行业的那盏最亮的明灯.因此,虽然只是纯粹的重点抄录,我也要把<CDN技术详解>的精 ...

  6. hdu_1253_胜利大逃亡(bfs+剪枝)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1253 题意:三维BFS,不解释 题解:DFS+剪枝会超时,裸BFS会超时,BFS+剪枝才能AC,有点伤 ...

  7. Mayor's posters问题处理

    题目的感悟: /*这道题的想法是先开一个数组,先构造一颗线段树,然后每次都进行一次更新最后我们在访问的时候只要看最外层还剩下那些数字,对他们进行统计然后将结果返回即可.这道题的难度本来是不大的,思路非 ...

  8. 认识ASP.NET MVC的5种AuthorizationFilter

    在总体介绍了筛选器及其提供机制(<深入探讨ASP.NET MVC的筛选器>)之后,我们按照执行的先后顺序对四种不同的筛选器进行单独介绍,首先来介绍最先执行的AuthorizationFil ...

  9. 【我与一道水题的抗争之路】 哈理工2323 Emirp(反素数)

    题目: http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2323 1,打表的姿势不对. ...

  10. reflow和repaint

    Web页面运行在各种各样的浏览器当中,浏览器载入.渲染页面的速度直接影响着用户体验 简单地说,页面渲染就是浏览器将html代码根据CSS定义的规则显示在浏览器窗口中的这个过程.先来大致了解一下浏览器都 ...