Elasticsearch,简称ES
通过JAVA语言写的分布式,JSON-based开源搜索引擎,其设计支持高可用(maximum reliability),支持水平扩展(horizontal scalability)且方便管理(easy management)。
RPM下载地址:https://www.elastic.co/downloads/elasticsearch
安装
# cd ~
# mkdir elasticsearch
# cd elasticsearch
# rpm -ivh elasticsearch-5.2.1.rpm
配置
elasticsearch 5.2.1安装后默认的配置文件保存在 目录/etc/elasticsearch/的下面,里面有以下几个文件,而我们将要配置的是elasticsearch.yml
- elasticsearch.yml
- jvm.options
- log4j2.properties
# cd /etc/elasticsearch/
# vim elasticsearch.yml //通过vim打开配置文件
在elasticsearch.yml文件末尾添加如下配置,其中
- cluster_name,集群名称,默认为elasticsearch,可以不用配置,相同的集群必须名称是一致的
- network.host是配置可以访问本节点的路由地址,类似于mysql如果需要外网访问,需要配置User表里面的可访问IP地址
- discovery.zen.ping.unicast.hosts 用来配置所有用来组建集群的机器的IP地址,由于5.2.1新版本是不支持多播的,因此这个值需要提前设定好,当集群需要扩展的时候,该值都要做改变,增加新机器的IP地址
- discovery.zen.minimum_master_nodes 用来配置主节点数量的最少值,如果主节点数量低于该值,闭包范围内的集群将会停止服务,之所以加粗体,是因为暂时尚未认证,下面配置为1方便集群更容易形成,即使只有一个主节点,也可以构建集群,因为我们有三个节点,所以是2
- node.name配置节点名,用来区分节点
network.host: 0.0.0.0
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping.unicast.hosts: ["172.20.110.76", "172.20.110.43", "172.20.110.42"]
node.name: node-2 //不同机器的节点名称配置成不同的
开启服务
开启服务之前需要系统开放两个端口,一个是9200端口,一个是9300端口,9200端口是restful接口服务的访问的端口,9300端口是节点之间互相发现构建集群的端口,通过以下命令到每一台机器里面开启es服务器端口
# sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent //开放9200端口
# sudo firewall-cmd --zone=public --add-port=9300/tcp --permanent
# firewall-cmd --reload //让防火墙重新加载配置
# firewall-cmd --list-all //查看端口开放情况
然后就是启动服务器了
# sudo systemctl start elasticsearch.service
如何关闭服务
# sudo systemctl stop elasticsearch.service
如何验证服务
# curl localhost:9200/_cluster/health