我是靠谱客的博主 端庄期待,最近开发中收集的这篇文章主要介绍Elasticsearch5进阶-设置(3)Elasticsearch重要配置path.data 和path.logscluster.namenode.namebootstrap.memory_locknetwork.hostdiscovery.zen.ping.unicast.hostsdiscovery.zen.minimu`m_master_nodes,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

虽然es只需要很少的配置,但还是有几个配置在应用于生产环境之前必须手工配置:

  • path.data 和 path.logs
  • cluster.name
  • node.name
  • bootstrap.memory_lock
  • network.host
  • discovery.zen.ping.unicast.hosts
  • discovery.zen.minimum_master_nodes

path.data 和path.logs

如果安装时时候使用的是.zip或者.tar.gz,那么data和logs文件夹的路径都在解压路径下,这样是不太好的!因为在升级的时候很可能被删除掉!

在生产环境中,几乎肯定要修改data和log文件夹的位置:

path:
  logs: /var/log/elasticsearch
  data: /var/data/elasticsearch

RPM和Debian安装的,已经使用了logs和data的自定义路径。

这里要注意一下,其实大部分软件的rpm安装包都遵循这个规则,即日志在/var/log,数据在/var/data中,如mysql。

path.data设置可以设置为多个路径,在这种情况下,所有路径都将用于存储数据(尽管属于单个分片的文件将全部存储在同一数据路径上):

path:
  data:
    - /mnt/elasticsearch_1
    - /mnt/elasticsearch_2
    - /mnt/elasticsearch_3

这里帮助我们理解了分片,如果一个index只有一个分片,那么他最大的存储只能是它所在磁盘的大小,如果有多个分片,就可以在多个分片上。通过这里我们明白分片的两个作用:

  • 切割非常大的数据
  • 多个磁盘同时处理,提高吞吐量

cluster.name

当节点与集群中的所有其他节点共享cluster.name时,才能加入集群。默认名称为elasticsearch,但是我们最好根据应用的用途来合理命名。

cluster.name: goods-prod

确保在不同的环境中使用不同的集群名称,否则可能会导致节点加错集群。


node.name

默认情况下,Elasticsearch将使用随机生成的字符串作为节点id。请注意,节点ID是持久化的,并且在节点重新启动时不会更改,因此默认节点名称也不会更改。

节点最好也配置一个有意义的名称:

node.name: goods-prod-2

node.name也可以设置为服务器的hostname,如下所示:

node.name: ${HOSTNAME}

bootstrap.memory_lock

JVM 不被交换到硬盘对于节点健康很重要,一种实现方式是将 bootstrap.memory_lock 设置成 true

要使此设置有效,需要首先配置其他系统设置。有关如何正确设置内存锁定的更多详细信息,请参阅启用bootstrap.memory_lock。


network.host

默认情况下,Elasticsearch仅绑定到环回地址 127.0.0.1和[:: 1]。这足以在服务器上运行单个开发节点。

实际上,可以在单个节点上从同一个$ ES_HOME位置启动多个节点。这可以用于测试Elasticsearch形成集群的能力,但它不是推荐用于生产的配置。

为了与其他服务器上的节点通信并形成集群,节点将需要绑定到非环回地址。虽然有很多网络设置,通常所有你需要配置的是network.host:

network.host: 192.168.1.10

network.host设置还可以理解一些特殊的值,例如_local_,site,_global_和修饰符,如:ip4和ip6,详细信息可以在“network.hostedit的特殊值”一节中找到。

一旦您为network.host提供自定义设置,Elasticsearch会假定您正在从开发模式转移到生产模式,并将许多系统启动检查从警告升级到异常。有关详细信息,请参阅“开发模式与生产模式”一节。


discovery.zen.ping.unicast.hosts

开箱即用,没有任何网络配置,Elasticsearch将绑定到可用的环回地址,并将扫描端口9300至9305以尝试连接到同一服务器上运行的其他节点。这提供了自动集群体验,而无需进行任何配置。

当在其他服务器上形成具有节点的集群时,您必须提供集群中可能存在和可联系的其他节点的种子列表。这可以指定如下:

discovery.zen.ping.unicast.hosts:
   - 192.168.1.10:9300
   - 192.168.1.11 【1】
   - seeds.mydomain.com 【2】 
  • 端口将默认为transport.profiles.default.port,并且如果未指定,则返回到transport.tcp.port。
  • 解析为多个IP地址的主机名将尝试所有解析的地址。

discovery.zen.minimu`m_master_nodes

不设置的话可能出现split brain问题,造成数据丢失。为了避免这样,该项设置为(master_eligible_nodes / 2) + 1

详细解释见: 如何防止elasticsearch的脑裂问题

转载于:https://my.oschina.net/shibuyisha/blog/983722

最后

以上就是端庄期待为你收集整理的Elasticsearch5进阶-设置(3)Elasticsearch重要配置path.data 和path.logscluster.namenode.namebootstrap.memory_locknetwork.hostdiscovery.zen.ping.unicast.hostsdiscovery.zen.minimu`m_master_nodes的全部内容,希望文章能够帮你解决Elasticsearch5进阶-设置(3)Elasticsearch重要配置path.data 和path.logscluster.namenode.namebootstrap.memory_locknetwork.hostdiscovery.zen.ping.unicast.hostsdiscovery.zen.minimu`m_master_nodes所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部