es---elasticsearch6.5.4多台windows服务器集群配置

一、服务器信息
服务器没有强制要求,但当然是越高越好拉…
es---elasticsearch6.5.4多台windows服务器集群配置_第1张图片
二、搭建ES集群,如下:
1、三台机器,如下:
es---elasticsearch6.5.4多台windows服务器集群配置_第2张图片
2、咱们以elasticsearch-6.5.4版本为例,下载地址如下:download
3、分别把已经下载的压缩包各复制一份到这三台服务器,单机版es搭建安装请参考本文档的目录“四”,单机版配置完成之后,看看单个独立能不能起来,再修改集群配置,启动后如下图所示:es---elasticsearch6.5.4多台windows服务器集群配置_第3张图片
4、3台节点搭建ES集群的相关配置:主要修改elasticsearch-6.5.4\config目录下的elasticsearch.yml文件,需要修改的参数为
1>cluster.name: my-application //该3个ES节点的集群名称必须相同;
2>node.name: node-1 //每个节点名称不能相同,另外两台分别为node-1 ,node-2;
3>discovery.zen.ping.unicast.hosts: [ “192.168.69." , "172.16.100.1.” , “192.168.69."]
//将所有节点discovery.zen.ping.unicast.hosts的 []里面的地址修改为所有节点的IP,
","号后边必须加一个空格。此处要注意,比较坑。
**
4>discovery.zen.minimum_master_nodes: 2 //默认是1,3台节点建议修改为2,防止ES脑裂.
注: 1、在elasticsearch.yml文件中所修改的配置,每个“:”后边都必须加一个英文空格,例如:(正确示例)cluster.name: my-application
(错误示例)cluster.name:my-application
2、如果discovery.zen.minimum_master_nodes设置为2了,两节点集群可以有效的避免脑裂,但是高可用就废了,如果3节点集群设置为2可以减少脑裂的可能性,又能提高ES集群的高可用性。

5>到此ES集群算是搭建完成,在此咱们并没有指定谁是主节点,从节点,所以服务会默认先启动的为主节点,后启动的为从节点。
查看集群效果,
http://172.16.100.***:9200/_cat/nodes?pretty,如下图所示:es---elasticsearch6.5.4多台windows服务器集群配置_第4张图片
查看集群状态为green, http://172.16.100.**:9200/_cat/health,如下图所示:es---elasticsearch6.5.4多台windows服务器集群配置_第5张图片
注:如果使用ES的elasticsearch-head-master连接工具,需要在elasticsearch-6.5.4\config目录下的elasticsearch.yml文件中添加如下配置es---elasticsearch6.5.4多台windows服务器集群配置_第6张图片
http.cors.enabled: true
http.cors.allow-origin: "

三、单个搭建ES服务:
1、下载JDK1.8并安装,配置JDK的环境变量(环境变量配置参考路径)。如果服务器已经安装了低版本的JDK,也可以给ES单独指定一下JDK,如下:
1>下载jdk1.8 放到E:\Java解压。解压后如图:es---elasticsearch6.5.4多台windows服务器集群配置_第7张图片
2>增加环境变量ES_JAVA_HOME,配置ES_JAVA_HOME(类似java_home),路径如下。之后点确定就可以了。
es---elasticsearch6.5.4多台windows服务器集群配置_第8张图片
3> OK接下来返回到elasticsearch,在elasticsearch-6.5.4\bin目录下找到elasticsearch-env文件,在39-40行处。将JAVA_HOME改成ES_JAVA_HOME,如下图:es---elasticsearch6.5.4多台windows服务器集群配置_第9张图片
4>另一个文件,在elasticsearch-6.5.4\bin目录下找到elasticsearch-env.bat文件,修改如下:es---elasticsearch6.5.4多台windows服务器集群配置_第10张图片
ok,到此就配置接触,保存后双击elasticsearch.bat。大功告成。
2、下载elasticsearch-6.5.4,
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.zip
3、解压后设置elasticsearch-6.5.4\config下的elasticsearch.yml文件,如下所示elasticsearch.yml文件详解如下:也可参考elasticsearch.yml配置说明
注:此处供共同学习使用,咱们最常用到的参数是:cluster.name、node.name、network.host、http.port、discovery.zen.ping.unicast.hosts、
discovery.zen.minimum_master_nodes,目前我只用到这几个参数。

(1)cluster.name
如果要配置集群需要两个节点上的elasticsearch配置的cluster.name相同,都启动可以自动组成集群,这里如果不改cluster.name则默认是cluster.name=my-application

(2)node.name是节点名字,随意取但是集群内的各节点不能相同

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

(4)node.data: true
指定该节点是否存储索引数据,默认为true。

(5)index.number_of_shards: 5
设置默认索引分片个数,默认为5片。

(6)index.number_of_replicas: 1
设置默认索引副本个数,默认为1个副本

(7)path.conf: /opt/module/elasticsearch-6.2.4/config
设置配置文件的存储路径,默认是es根目录下的config文件夹。

(8)path.data: /opt/module/elasticsearch-6.2.4/data
设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开,例:
path.data: /path/to/data1,/path/to/data2

(9)path.logs: /opt/module/elasticsearch-6.2.4/logs
设置日志文件的存储路径,默认是es根目录下的logs文件夹

(10)path.plugins: /opt/module/elasticsearch-6.2.4/plugins
设置插件的存放路径,默认是es根目录下的plugins文件夹

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

(12)network.bind_host: 192.168.0.1
设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0。

(13)network.publish_host: 192.168.0.1
设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址。

(14)network.host: 192.168.0.1
这个参数是用来同时设置bind_host和publish_host上面两个参数。

(15)transport.tcp.port: 9300
设置节点间交互的tcp端口,默认是9300。

(16)transport.tcp.compress: true
设置是否压缩tcp传输时的数据,默认为false,不压缩。

(17)http.port: 9200
设置对外服务的http端口,默认为9200。

(18)http.max_content_length: 100mb
设置内容的最大容量,默认100mb

(19)http.enabled: false
是否使用http协议对外提供服务,默认为true,开启。

(20)gateway.type: local
gateway的类型,默认为local即为本地文件系统,可以设置为本地文件系统,分布式文件系统,hadoop的HDFS,和amazon的s3服务器。

(21)gateway.recover_after_nodes: 1
设置集群中N个节点启动时进行数据恢复,默认为1。

(22)gateway.recover_after_time: 5m
设置初始化数据恢复进程的超时时间,默认是5分钟。

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

(24)cluster.routing.allocation.node_initial_primaries_recoveries: 4
初始化数据恢复时,并发恢复线程的个数,默认为4。

(25)cluster.routing.allocation.node_concurrent_recoveries: 2
添加删除节点或负载均衡时并发恢复线程的个数,默认为4。

(26)indices.recovery.max_size_per_sec: 0
设置数据恢复时限制的带宽,如入100mb,默认为0,即无限制。

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

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

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

(30)discovery.zen.ping.multicast.enabled: false
设置是否打开多播发现节点,默认是true。

(31)discovery.zen.ping.unicast.hosts: ["host1:port ", “host2:port”, "host3: port "]
设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。

(32)http.cors.enabled 的值为 true, 启用了 HTTP 端口,那么此属性会指定是否允许跨源 REST 请求

(33) http.cors.allowed.origin 的值默认是localhost,如果 http.cors.enabled 的值为 true,那么该属性会指定允许 REST 请求来自何处。

(34)修改后的每行前面不能有空格,修改后的“:”后面必须有一个空格
4、启动elasticsearch服务,在elasticsearch-6.5.4\config目录下,双击elasticsearch.bat文件即可。

你可能感兴趣的:(Elasticsearch)