elasticsearch5.0.0参数配置的变化

原创
2016/11/23 21:55
阅读数 1.5K

配置参数在5.0中在生效前将会进行校验。在启动节点的时候,节点级别的设置和默认的节点设置都会被验证;动态设置的集群和索引设置在增加或者修改集群状态之前将被校验。

所有配置都注册在节点或者使用的传出客户端。客户自定义的插件的配置注册在插件加载的地方,注册的方法是SettingsModule类的registerSettings方法。

Index Level Settings

在之前的版本中,指定索引级别的设置在elasticsearch.yaml文件中配置,或者在启动命令行中配置。从5.0以后仅仅选择的设置在节点层生效,其他设置可以设置在具体的索引中。索引模板被在每个索引上的默认值替换。

Node settings

名称设置被取消,被node.name替换,-Dname=some_node_name方式制定名称将被取消。

node.add_id_to_custom_path配置参数修改名称为add_lock_id_to_custom_path。

node.name的默认名称是节点id的前7个字母,节点id是随机产生的UUID。

node.mode和node.local两个设置被移除。本地模式通过discovery.type: local和transport.type:local来进行配置。可以通过http.enabled: false来禁止http访问。

Node attribute settings

节点级别的属性可以通过过滤来分配,可以通过node.attr前缀设置其他节点识别或者强制意识。在之前的版本是通过在节点上设置特殊节点的属性。除了这三个node.master, node.data ,node.ingest must属性外,可以通过新的node.attr. namespace命名空间移除。

Node types settings

node.client设置被移除,如果节点设置了node.client节点将无法启动。可以通过分别设置node.master, node.data,node.ingest来设置节点的类型。

Gateway settings

gateway.format设置被取消。默认用format设置smile。

Transport Settings

transport.netty.bind_host设置被取消,用transport.bind_host来替换。

Security manager settings

安全管理security.manager.enabled设置被移除,为了授权elasticsearch 用户特殊的许可,需要编辑本地java安全策略。

Network settings

设置network.host的值为_non_loopback_value表示任意选择第一接口不标记为环回。相反,可以指定地址范围(用_local_,_site_ for制定所有的环回和私有网络地址);通过显式接口的名称,主机名或地址。

netty.epollBugWorkaround被移除,在高CPU使用率上和早期的JVM版本有个问题,需要通过netty.epollBugWorkaround配置解决,但这个问题实在java7中才有的,现在es5.0要求最低使用java8,所以此设置被移除。

在此之前,全局线程池类型可以动态调整。线程池类型有效地控制线程池的支持队列,修改这些设置需要丰富的经验,修改不好有可能会产生比较大的风险,所以删除这些配置。现在可以为每个线程池单独调整相关的线程池参数比如: keep_alive, queue_size等等。

Threadpool settings

建议线程池已经取消了,现在用搜索线程池来替换。

所有线程池前缀的设置从threadpool到thread_pool。

线程池的最小参数设置从min到core。

线程池的最大参数设置从size到max。

队列的大小对于一个固定的线程池的设置必须queue_size(所有其他的变种,以前支持的都不再支持)。

现在线程池的设置现在节点级别进行设置的。因此,它不可能通过群集设置来更新线程池。

Analysis settings

分词器的index.analysis.analyzer.default_index将不在支持,如果想改变索引的分词器,需要修改index.analysis.analyzer.default参数进行替代。

Ping settings

此前,有三种ping超时设置:discovery.zen.initial_ping_timeout,discovery.zen.ping.timeout和discovery.zen.ping_timeout。前两者已被移除,ping超时设置现在只有discovery.zen.ping_timeout。ping超时的默认值是三秒。

discovery.zen.master_election.filter_client和discovery.zen.master_election.filter_data被移除,新的参数用discovery.zen.master_election.ignore_non_master_pings来代替。此设置用来控制在主节点选举时候的ping响应,只有在极端情况下才会使用这个参数,平时一般不用配置。

本文由赛克 蓝德(secisland)原创,转载请标明作者和出处。

Recovery settings

此版本删除了1版本中的恢复参数

index.shard.recovery.translog_size替换为indices.recovery.translog_size

index.shard.recovery.translog_ops 替换为indices.recovery.translog_ops

index.shard.recovery.file_chunk_size替换为indices.recovery.file_chunk_size

index.shard.recovery.concurrent_streams替换为indices.recovery.concurrent_streams

index.shard.recovery.concurrent_small_file_streams替换为 indices.recovery.concurrent_small_file_streams

indices.recovery.max_size_per_sec替换为indices.recovery.max_bytes_per_sec

如果使用以上任何这些设置,请花时间来检查配置的目的。以上所有的设置都被认为是专家级的设置,如果绝对必要的话才可以使用。如果你已经设置了以上的任何一条在集群上请使用update API和设置相应的取代钥匙。

下列设置已被删除,而不需要更换。

indices.recovery.concurrent_small_file_streams和ndices.recovery.concurrent_file_streams回收率现在是单线程的。

Translog settings

index.translog.flush_threshold_ops setting将不在被支持,为了控制事物日志的冲洗将使用index.translog.flush_threshold_size来代替。

index.translog.fs.type中的translog类型将不再被支持,现在缓冲区是用8K缓冲区。

之前默认的事务日志是在每次index, create, update, delete, bulk 请求后操作,现在在这些操作后是不进行操作了,事实上,它可能是一个性能瓶颈。现在,index.translog.sync_interval不接受一个小于100ms的值,防止fsyncing同时启用了异步操作。特殊值0不再被支持。

index.translog.interval已被删除。

Request Cache Settings

index.cache.query.enable和indices.cache.query.size配置被移除,取而代之是index.requests.cache.enable和indices.requests.cache.size。

indices.requests.cache.clean_interval取代了indices.cache.clean_interval

Field Data Cache Settings

indices.fielddata.cache.clean_interval设置已被替换为indices.cache.clean_interval。

Allocation settings

cluster.routing.allocation.concurrent_recoveries设置已被替换cluster.routing.allocation.node_concurrent_recoveries。

Similarity settings

默认的similarity 已被重命名为classic。

Indexing settings

indices.memory.min_shard_index_buffer_size和indices.memory.max_shard_index_buffer_size设置已删除。Elasticsearch现在允许所有堆使用量的总和只要低于节点的indices.memory.index_buffer_size的配置的量就可以使用分片。(默认为10%的JVM堆)。

移除参数es.max-open-files。设置es.max-open-files 参数为true,可以打印系统进程打开文件的最大个数。这个设置被取消,可以从节点信息的接口获取相同的信息,如果设置得太低,则会在启动时登录一个警告。

移除参数es.netty.gathering。时间证明设置es.netty.gathering这个参数为true和false的时候都没有什么问题。

移除参数es.useLinkedTransferQueue。es.uselinkedtransferqueue可以用来控制群集服务队列的实现,在集群发现过程中处理ping的响应。这是一个未无事实证明的设置,现已删除。

缓存并发级别设置被删除。缓存并发级别设置有两个参数indices.requests.cache.concurrency_level,indices.fielddata.cache.concurrency_level因为他们不再适用于用于请求缓存和字段数据缓存的实现。

通过系统属性配置ES进行了调整,将不再支持通过系统属性配置。

通过命令行参数设置将取消。

用过java环境变量设置将取消

通过ES_JAVA_OPTS环境变量设置将取消。

现在用-Ename.of.setting来设置配置。

通过双横线设置参数将取消,例如 --name.of.setting value.of.setting,现在用-Ename.of.setting=value.of.setting来替换。

通过.properties文件配置设置将取消。ES的运行配置和日志配置将不在支持.properties文件方式(就是键值对的方式将被取消)

Discovery Settings

当节点有 network.host, network.bind_host, network.publish_host, transport.host, transport.bind_host, transport.publish_host的时候,必须设置 discovery.zen.minimum_master_node,因为系统被认为是在生产环境中。

Realtime get setting

action.get.realtime设置将被取消,

Memory lock settings

bootstrap.mlockall设置被改名为bootstrap.memory_lock。

Snapshot settings

restoring快照映射参数include_global_state的默认值由true改为false,taking快照的默认值还是true。

代表周的时间单位w不再支持。

小数的时间值(例如,0.5s)不再支持。例如,这意味着当设定超时”0.5s”将被拒绝,应该输入“500ms”。

Elasticsearch以前版本默认为允许多个节点共享相同的数据目录(50个以上),但这种情况有时候会混乱,当同时启动多个节点的时候,第二个节点有可能看到的是一个空的目录,然后认为集群没有任何的数据节点。这种设置在笔记本上做测试是比较好的,但这并不是生产环境中常用的方式。为了更安全的操作,默认node.max_local_storage_nodes被设置为1.

 

Script settings

索引脚本已被存储的脚本所取代,下面的设置已被替换为:

script.indexed替换为script.stored

script.engine.*.indexed.aggs 替换为script.engine.*.stored.aggs

script.engine.*.indexed.mapping 替换为script.engine.*.stored.mapping

script.engine.*.indexed.search 替换为script.engine.*.stored.search

script.engine.*.indexed.update 替换为script.engine.*.stored.update

script.engine.*.indexed.plugin 替换为script.engine.*.stored.plugin

(where * represents the script language, like groovy, mustache, painless etc.)

其中*代表的脚本语言,例如groovy, mustache, painless等等。

 

Script mode settings

脚本模式设置,以前的脚本模式设置,例如:"script.inline: true", "script.engine.groovy.inline.aggs: false"等等,接受广泛的“truthy”或“falsy”值。现在比较严格,只支持true和false选项。

脚本沙箱设置将被移除,之前script.inline 和script.stored可以设置为sandbox。现在只能设置set script.line: true 或者 script.stored: true。

搜索设置index.query.bool.max_clause_count将取消。用indices.query.bool.max_clause_count来设置布尔子句的最大数目。

本文由赛克 蓝德(secisland)原创,转载请标明作者和出处。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
3 收藏
0
分享
返回顶部
顶部