什么情况下需要搭建es集群?
1.需要做负载均衡,即单机挂掉之后不影响集群对外输出
2.数据量过大,单机承受不了
es集群的搭建过程:
1.准备3台服务器或者虚拟机
我的机器ip分别为:192.168.11.131 ,192.168.11.132,192.168.11.133
2.下载es的包
es官网即可下载,我使用的是6.1.3版本
3.重点:修改/config/elasicsearch.yml文件的配置
主要修改的配置如下:
#集群名称
cluster.name: es6-cluster
#是否可以被选举为主节点
node.master: true
#是否为数据节点
node.data: true
#集群之间的通信地址,大家改成自己的就好
discovery.zen.ping.unicast.hosts: ["192.168.11.131", "192.168.11.132", "192.168.11.133"]
#设主节点的选举规则为:节点数目/2+1,可以防止脑裂
discovery.zen.minimum_master_nodes: 2
#节点名称,所有节点要设置不一样
node.name: node-1
#数据存放位置
path.data: /opt/data/es6
#日志存放位置
path.logs: /opt/log/es6
#设置可以被所有机器访问,如果不想被其他机器访问可以设为localhost
network.host: 0.0.0.0
#被外部访问的端口
http.port: 9200
#设置es可以被跨域访问,方便被head插件访问
http.cors.enabled: true
http.cors.allow-origin: "*"
然后使用scp -r /source remoteip:target
将es拷贝到另外的2台机器上,只需修改节点名称即可
4.创建一个非root用户启动es(网上又说修改bin/elasticsearch的配置就可以使用root用户启动,不过我试了一下失败了)
5.使用head插件访问,并创建test索引试一下。结果如下:
其中test1主分片为3,副本分片为1。test2主分片为3,副本分片为2.
es集群搭建中遇到的问题:
1.srcp远程传输文件报错
需要修改主机和从起的/etc/ssh/ssh_config文件增加配置StrictHostKeyChecking no配置
2.es启动报错,见下面博客
https://www.cnblogs.com/zhi-leaf/p/8484337.html
至此es集群搭建完毕,大家照着步骤一步步来应该没有什么大问题。