工作缘故需要在测服搭建ES的集群环境
环境是 centos7
java 版本是 1.8
资源有限的缘故,决定在单机上搭建 3 个node 的集群
三个node 角色相同,因为节点少于5个 不建议区分node角色 ,Elasticsearch的员工 Christian_Dahlqvist解读如下:
一个节点的缺省配置是:主节点+数据节点两属性为一身。对于3-5个节点的小集群来讲,通常让所有节点存储数据和具有获得主节点的资格。你可以将任何请求发送给任何节点,并且由于所有节点都具有集群状态的副本,它们知道如何路由请求。
通常只有较大的集群才能开始分离专用主节点、数据节点。 对于许多用户场景,路由节点根本不一定是必需的。
专用协调节点(也称为client节点或路由节点)从数据节点中消除了聚合/查询的请求解析和最终阶段,并允许他们专注于处理数据。
在多大程度上这对集群有好处将因情况而异。 通常我会说,在查询大量使用情况下路由节点更常见。
选择比较老的版本 因为springboot 的缘故
先配置第一个node
官网下载 所需版本 我这里是 2.4.0
tar -zxvf elasticsearch-2.4.0.tar.gz // 解压 到当前目录
mkdir /soft/elasticsearch-2.4.0 //创建安装目录
cp -r elasticsearch-2.4.0 /soft/elasticsearch-2.4.0/es-0 // 复制 node 0 目录
到config 目录修改配置文件
vim elasticsearch.yml 配置的地方如下
cluster.name: es-cluster
node.name: node-0
path.data: /soft/elasticsearch-2.4.0/data
path.logs: /soft/elasticsearch-2.4.0/log
network.host: 192.168.50.205
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.50.205:9300","192.168.50.205:9301","192.168.50.205:9302"]
discovery.zen.minimum_master_nodes: 2
启动es
./bin/elasticsearch
启动日志
[developer@bogon bin]$ ./elasticsearch
[2018-11-08 18:00:12,685][INFO ][node ] [node-0] version[2.4.0], pid[31855], build[ce9f0c7/2016-08-29T09:14:17Z]
[2018-11-08 18:00:12,686][INFO ][node ] [node-0] initializing ...
[2018-11-08 18:00:13,434][INFO ][plugins ] [node-0] modules [reindex, lang-expression, lang-groovy], plugins [head], sites [head]
[2018-11-08 18:00:13,460][INFO ][env ] [node-0] using [1] data paths, mounts [[/ (rootfs)]], net usable_space [32.8gb], net total_space [49.9gb], spins? [unknown], types [rootfs]
[2018-11-08 18:00:13,460][INFO ][env ] [node-0] heap size [1007.3mb], compressed ordinary object pointers [true]
[2018-11-08 18:00:13,460][WARN ][env ] [node-0] max file descriptors [4096] for elasticsearch process likely too low, consider increasing to at least [65536]
[2018-11-08 18:00:16,346][INFO ][node ] [node-0] initialized
[2018-11-08 18:00:16,346][INFO ][node ] [node-0] starting ...
[2018-11-08 18:00:16,462][INFO ][transport ] [node-0] publish_address {192.168.50.205:9300}, bound_addresses {192.168.50.205:9300}
[2018-11-08 18:00:16,469][INFO ][discovery ] [node-0] es-weimall/FTmwPCAxSHmf_vlmnX22NQ
[2018-11-08 18:00:46,473][WARN ][discovery ] [node-0] waited for 30s and no initial state was set by the discovery
[2018-11-08 18:00:46,484][INFO ][http ] [node-0] publish_address {192.168.50.205:9200}, bound_addresses {192.168.50.205:9200}
[2018-11-08 18:00:46,485][INFO ][node ] [node-0] started
测试是否安装成功
浏览器输入地址和端口查看 http://192.168.50.205:9200/,如下代表成功
安装其它几个node
cp -r es-0 ./es-1
cp -r es-0 ./es-2
修改node 1配置文件
node.name: node-1
http.port: 9201
transport.tcp.port: 9301
修改node 2 配置文件
node.name: node-2
http.port: 9202
transport.tcp.port: 9302
后台启动es
sh ./es-0/bin/elasticsearch -d
sh ./es-1/bin/elasticsearch -d
sh ./es-2/bin/elasticsearch -d
head 插件安装
./bin/plugin install mobz/elasticsearch-head
安装完后需要 重启es 地址栏访问 http://192.168.50.205:9200/_plugin/head/
安装成功啦。
springboot 测试
配置如下
spring:
data:
elasticsearch:
# 集群名
cluster-name: es-weimall
# 连接节点,注意在集群中通信都是9300端口,否则会报错无法连接上!
cluster-nodes: 192.168.50.205:9300,192.168.50.205:9301,192.168.50.205:9302
# 是否本地连接
repositories:
# 仓库中数据存储
enabled:true
看到数据如下