阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

ElasticSearch单机双实例的配置方法

122次阅读
没有评论

共计 3458 个字符,预计需要花费 9 分钟才能阅读完成。

从 ElasticSearch 官方的多份文档中可以看到,官方并不建议部署 ES 时为实例指定超过 32GB 的内存,但是现在内存的价格非常便宜,一台实体机服务器仅用 32G 内存显然是非常浪费的。所以我们要尝试在一个服务器上开多个 ES 实例,以便达到充分利用资源的目的。本文提供了一些 ES 单机双实例的配置要点,可扩展至单机多实例,供大家来实际参考。

突破 32G

从 ElasticSearch 官方的多份文档中可以看到,官方并不建议部署 ES 时为实例指定超过 32GB 的内存,例如这些写着大字警告用户的文章:Don’t Cross 32 GB!

但是现在内存的价格非常便宜,一台实体机服务器仅用 32G 内存显然是非常浪费的。所以我们要尝试在一个服务器上开多个 ES 实例,以便达到充分利用资源的目的。

配置变更

要做到单机上开多个实例,需要修改 ES 的默认配置,以下是一些配置要点:

node.max_local_storage_nodes

这个配置限制了单节点上可以开启的 ES 存储实例的个数,我们需要开多个实例,因此需要把这个配置写到配置文件中,并为这个配置赋值为 2 或者更高。

http.port

这个配置是 elasticsearch 对外提供服务的 http 端口配置,默认情况下 ES 会取用 9200~9299 之间的端口,如果 9200 被占用就会自动使用 9201,在单机多实例的配置中这个配置实际是不需要修改的。

但是为了更好地进行配置管理,以及和老的配置兼容,我们还是手动将第一个实例的 http 端口配置为 9200,第二个实例配置为 9201。

transport.tcp.port

这个配置指定了 elasticsearch 集群内数据通讯使用的端口,默认情况下为 9300,与上面的 http.port 配置类似,ES 也会自动为已占用的端口选择下一个端口号。我们可以将第一个实例的 tcp 传输端口配置为 9300,第二实例配置为 9301。
discovery.zen.ping.unicast.hosts

由于到了 2.x 版本之后,ES 取消了默认的广播模式来发现 master 节点,需要使用该配置来指定发现 master 节点。这个配置在单机双实例的配置中需要特别注意下,因为习惯上我们配置时并未指定 master 节点的 tcp 端口,如果实例的 transport.tcp.port 配置为 9301,那么实例启动后会认为 discovery.zen.ping.unicast.hosts 中指定的主机 tcp 端口也是 9301,可能导致这些节点无法找到 master 节点。因此在该配置中需要指定 master 节点提供服务的 tcp 端口。

配置示例:

discovery.zen.ping.unicast.hosts: ["testes.mydomain:9300"]

其他配置

  • node.name

    同一主机上的两个实例需要使用不同的 node.name

  • path.data

    同一主机上两个实例需要对应不同的数据目录

  • path.logs

    由于默认情况下日志用集群名称来命名,因此同一主机两个实例对应的日志目录需要分开

完整配置示例

以下提供两个完整的配置实例供参考:

实例 1:

cluster.name: testes
node.name: ${HOSTNAME}
node.box_type: M
node.master: false
node.data: true
path.data: /data/disk01
path.logs: /home/CentOS/elasticsearch/logs/instance1
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["testes.mydomain:9300"]
node.max_local_storage_nodes: 2
threadpool.index.queue_size: 400
threadpool.bulk.queue_size: 5000
bootstrap.mlockall: false

实例 2:

cluster.name: testes
node.name: ${HOSTNAME}-2
node.box_type: M
node.master: false
node.data: true
path.data: /data/disk02
path.logs: /home/centos/elasticsearch/logs/instance2
network.host: 0.0.0.0
http.port: 9201
transport.tcp.port: 9301
discovery.zen.ping.unicast.hosts: ["testes.mydomain:9300"]
node.max_local_storage_nodes: 2
threadpool.index.queue_size: 400
threadpool.bulk.queue_size: 5000
bootstrap.mlockall: false

配置部署

默认情况下 ES 启动时使用 ES 安装目录的 config 子目录下的 elasticsearch.yml 文件来作为配置文件,同时还用到了 config 子目录下的 logging.yml 文件来作为日志的配置文件。为了实现单机双实例的分别启动,我们需要创建两个目录来分别存储两个实例的配置文件,如:

在 config 子目录下创建 instance1 和 instance2 两个目录,分别放置两个实例需要的 elasticsearch.yml 和 logging.yml 配置文件。

注意,ES 的配置文件必须使用 elasticsearch.yml 这个命名,因此必须创建出两个目录来。

启动实例

以下是两条参考的命令,用于启动单机上的两个实例:

实例 1:

bin/elasticsearch -Des.path.conf=config/instance1 -d -p /tmp/elasticsearch_1.pid

实例 2:

bin/elasticsearch -Des.path.conf=config/instance2 -d -p /tmp/elasticsearch_2.pid

ElasticSearch 最新版本 2.20 发布下载了   http://www.linuxidc.com/Linux/2016-02/128166.htm

Linux 上安装部署 ElasticSearch 全程记录  http://www.linuxidc.com/Linux/2015-09/123241.htm

Elasticsearch 安装使用教程 http://www.linuxidc.com/Linux/2015-02/113615.htm

ElasticSearch 配置文件译文解析 http://www.linuxidc.com/Linux/2015-02/114244.htm

ElasticSearch 集群搭建实例  http://www.linuxidc.com/Linux/2015-02/114243.htm

分布式搜索 ElasticSearch 单机与服务器环境搭建  http://www.linuxidc.com/Linux/2012-05/60787.htm

ElasticSearch 的工作机制  http://www.linuxidc.com/Linux/2014-11/109922.htm 

Elasticsearch 的安装,运行和基本配置 http://www.linuxidc.com/Linux/2016-07/133057.htm

使用 Elasticsearch + Logstash + Kibana 搭建日志集中分析平台实践  http://www.linuxidc.com/Linux/2015-12/126587.htm

Ubuntu 14.04 搭建 ELK 日志分析系统 (Elasticsearch+Logstash+Kibana) http://www.linuxidc.com/Linux/2016-06/132618.htm

Elasticsearch1.7 升级到 2.3 实践总结  http://www.linuxidc.com/Linux/2016-11/137282.htm

ElasticSearch 的详细介绍 :请点这里
ElasticSearch 的下载地址 :请点这里 

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/137361.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计3458字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中