1.简介
Elasticsearch是一个开源免费,用Java开发的,基于Lucene框架的,提供RESTful web接口的、分布式多用户能力的,实时的分布式搜索分析引擎。简单高效,开箱即用。
2.安装
在安装ElasticSearch 之前,我们需要先安装一个java,为什么呢?因为ElasticSearch 是java语言开发的。
这里要提醒一下,elasticsearch java支持最低 jdk1.8 !
2.1 Java环境安装
• 解压安装包: [root@iz2zeb7o9hu1q5dxvshng4z module]$ tar -zxvf jdk-8u171-linux-x64.tar.gz
• 设置Java环境变量: [root@iz2zeb7o9hu1q5dxvshng4z module]$# vim /etc/profile
在文件最后添加
JAVA_HOME=/opt/module/jdk1.8.0_201
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
[root@localhost jdk1.8.0_171]# source /etc/profile
[root@iz2zeb7o9hu1q5dxvshng4z module]$ java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
[luomk@iz2zeb7o9hu1q5dxvshng4z module]$
2.2 Elasticsearch单机安装
• [luomk@iz2zeb7o9hu1q5dxvshng4z module]$ tar -zxvf elasticsearch-6.3.1.tar.gz
• [luomk@iz2zeb7o9hu1q5dxvshng4z module]$ cd elasticsearch-6.3.1/bin
• [luomk@iz2zeb7o9hu1q5dxvshng4z module]$ ./elasticsearch
• [luomk@iz2zeb7o9hu1q5dxvshng4z elasticsearch-6.3.1]$ curl 127.0.0.1:9200
• 后台启动:[luomk@iz2zeb7o9hu1q5dxvshng4z module]$ ./elasticsearch -d(root用户不能启动ES)
• 关闭程序:[luomk@iz2zeb7o9hu1q5dxvshng4z module]$ ps -ef|grep elastic
• 设置浏览器访问
[root@iz2zeb7o9hu1q5dxvshng4z elasticsearch-6.3.1]# systemctl stop firewalld
[root@iz2zeb7o9hu1q5dxvshng4z elasticsearch-6.3.1]# vi config/elasticsearch.yml
说明:如果连接的是阿里云环境,就一定需要开启阿里云对应的端口,否则无法访问
设置如下:https://jingyan.baidu.com/article/27fa73265478c646f8271fa0.html。
最终效果:
2.3 Elasticsearch 集群安装
修改配置文件elasticserach.yml
vim /etc/elasticsearch
cluster.name: aubin-cluster
# 集群名称(不能重复)
node.name: els1
# 节点名称,仅仅是描述名称,用于在日志中区分(自定义)
#指定了该节点可能成为 master 节点,还可以是数据节点
node.master: true
node.data: true
path.data: /var/lib/elasticsearch
# 数据的默认存放路径(自定义)
path.logs: /var/log/elasticsearch
# 日志的默认存放路径
network.host: 192.168.0.1
# 当前节点的IP地址
http.port: 9200
# 对外提供服务的端口
transport.tcp.port: 9300
#9300为集群服务的端口
discovery.zen.ping.unicast.hosts: ["172.18.68.11", "172.18.68.12","172.18.68.13"]
# 集群个节点IP地址,也可以使用域名,需要各节点能够解析
discovery.zen.minimum_master_nodes: 2
# 为了避免脑裂,集群节点数最少为半数+1
注意:清空data和logs数据
3.Elasticsearch安装head插件(在浏览器安装插件即可,最终效果如下)
4.Elasticsearch 的配置详解
4.1 ElasticSearch.yml(ES相关配置)
# 集群的名字,以此作为是否同一集群的判断条件
cluster.name: elasticsearch
# 节点名字,以此作为集群中不同节点的区分条件
node.name: node-1
#设置当前节点既可以为主节点也可以为数据节点
node.master: true
node.data: true
# 索引分片个数,默认为5片
#index.number_of_shards: 5
# 索引副本个数,默认为1个副本
#index.number_of_replicas: 1
# 数据存储目录(多个路径用逗号分隔)
discovery.zen.ping.unicast.hosts: ["192.168.14.14","192.168.14.15"]
discovery.zen.minimum_master_nodes: 2
#数据目录
path.data: /home/elk1/elasticserach/data
# 日志目录
path.logs: /home/elk1/elasticserach/logs
# 修改一下ES的监听地址,这样别的机器才可以访问
network.host: 192.168.14.13
# 设置节点间交互的tcp端口(集群),默认是9300
transport.tcp.port: 9300
# 监听端口(默认的就好)
http.port: 9200
# 增加新的参数,这样head插件才可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
4.2 Jvm.options(JVM 相关配置)
4.3 Log4j2.properties(日志相关配置)