1. Elasticsearch介绍
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。
关于Linux中安装solr说明
2. 准备安装环境
2.1 检查jdk安装状态
2.2 检查防火墙状态
2.3 下载离线包
3. 安装Elasticsearch
3.1 在线安装
yum install --enablerepo=elasticsearch elasticsearch
3.2 离线安装
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.1-x86_64.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.1-x86_64.rpm.sha512
shasum -a 512 -c elasticsearch-7.10.1-x86_64.rpm.sha512
sudo rpm --install elasticsearch-7.10.1-x86_64.rpm
3.2.1 解压离线安装包
tar -zxvf elasticsearch-7.10.1-linux-aarch64.tar.gz
3.2.2 启动Elasticsearch
./bin/elasticsearch
报错明确指出,不能以root用户启动
这种情况下,需要先改变目录的用户权限,然后再以普通用户启动
useradd es
chown -R es:es /software/elasticsearch
su es
vi /software/elasticsearch/config/elasticsearch.yml
./bin/elasticsearch
这是启动时,还会遇到一些的报错,可以看这篇博客解决
3.3 docker安装集群
3.3.1 下载 Elastic Search 镜像
docker pull elasticsearch:7.9.3
3.3.2 集群部署结构
3.3.3 准备虚拟网络和挂载目录
# 创建虚拟网络
docker network create es-net
# node1 的挂载目录
mkdir -p -m 777 /var/lib/es/node1/plugins
mkdir -p -m 777 /var/lib/es/node1/data
# node2 的挂载目录
mkdir -p -m 777 /var/lib/es/node2/plugins
mkdir -p -m 777 /var/lib/es/node2/data
# node3 的挂载目录
mkdir -p -m 777 /var/lib/es/node3/plugins
mkdir -p -m 777 /var/lib/es/node3/data
3.3.4 启动 Elasticsearch 集群
环境变量说明:
环境变量 | 说明 |
---|---|
node.name | 节点在集群中的唯一名称 |
node.master | 可已被选举为主节点 |
network.host | 当前节点的地址 |
discovery.seed_hosts | 集群中其他节点的地址列表 |
cluster.initial_master_nodes | 候选的主节点地址列表 |
cluster.name | 集群名 |
ES_JAVA_OPTS | java虚拟机参数 |
- node1
docker run -d \
--name=node1 \
--restart=always \
--net es-net \
-p 9200:9200 \
-p 9300:9300 \
-v /var/lib/es/node1/plugins:/usr/share/elasticsearch/plugins \
-v /var/lib/es/node1/data:/usr/share/elasticsearch/data \
-e node.name=node1 \
-e node.master=true \
-e network.host=node1 \
-e discovery.seed_hosts=node1,node2,node3 \
-e cluster.initial_master_nodes=node1 \
-e cluster.name=es-cluster \
-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
elasticsearch:7.9.3
- node2
docker run -d \
--name=node2 \
--restart=always \
--net es-net \
-p 9201:9200 \
-p 9301:9300 \
-v /var/lib/es/node2/plugins:/usr/share/elasticsearch/plugins \
-v /var/lib/es/node2/data:/usr/share/elasticsearch/data \
-e node.name=node2 \
-e node.master=true \
-e network.host=node2 \
-e discovery.seed_hosts=node1,node2,node3 \
-e cluster.initial_master_nodes=node1 \
-e cluster.name=es-cluster \
-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
elasticsearch:7.9.3
- node3
docker run -d \
--name=node3 \
--restart=always \
--net es-net \
-p 9202:9200 \
-p 9302:9300 \
-v /var/lib/es/node3/plugins:/usr/share/elasticsearch/plugins \
-v /var/lib/es/node3/data:/usr/share/elasticsearch/data \
-e node.name=node3 \
-e node.master=true \
-e network.host=node3 \
-e discovery.seed_hosts=node1,node2,node3 \
-e cluster.initial_master_nodes=node1 \
-e cluster.name=es-cluster \
-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
elasticsearch:7.9.3
3.3.5 chrome浏览器插件:elasticsearch-head
浏览器中点击 elasticsearch-head 插件打开 head 界面,并连接 http://192.168.126.130:9200/