一、简介

  Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 语言开发的,并作为 Apache 许可条款下的开放源码发布,是一种流行的企业级搜索引擎。根据 DB-Engines 的排名显示,Elasticsearch 是最受欢迎的企业搜索引擎,其次是 Apache Solr,也是基于 Lucene。

能解决问题:全文索引,大数据量秒查询,PB 级别数据搜索,毫秒级响应,支持结构化查询,完整 api 接口,自动备份,集群稳定,扩容方便

使用场景示例:商城,文章类网站,单表数据量太大,日志系统储存,报表统计查询慢。

二、Windows 搭建 ES

1. 安装 java jdk,安装 java11 以上。

下载地址:https://www.oracle.com/java/technologies/downloads。

下载后直接双击安装,不需要配环境变量。

2. 下载 ES,官网:https://www.elastic.co/cn/downloads/elasticsearch

如果要下载前面的版本,这个地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch

现在下载的是当前 7.x 的最新版本 7.16.3

下载完解压后进入到 config 目录的 jvm.options,修改配置,把默认的 4g 改成 512m,这里是本地测试使用不需要这么高内存。

Xmx:能够使用的最大内存数。

Xms:用来设置程序初始化的时候内存栈的大小。

修改 config 目录下的 elasticsearch.yml 文件。

network.host 填上自己的 ip,如果不改,只能用 localhost 和 127.0.0.1 访问 ES,也可以填 0.0.0.0,这样暴露全部的网络地址都可以访问。

然后回到 bin 目录,双击 elasticsearch.bat 启动。

启动成功后,浏览器输入 http://ip:9200 看是否成功,如果出现下面就是搭建成功了。

三、Linux 搭建 ES

这里用的是 CentOS7.9

1. 安装 java jdk

官网: https://www.oracle.com/java/technologies/downloads/

这里用 rpm 包的方式安装,下载下来上传到 Linux 服务器,或直接在 linux 服务器下载,这里选择后者。

先建一个文件夹存放 es 文件,这里的目录为 /home/es

#创建 es 目录
mkdir /home/es
#进入 es 目录
cd /home/es

下载 es 的 rpm 和安装

#下载 elasticsearch rpm 包文件
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
#授权限
chmod +x jdk-17_linux-x64_bin.rpm# 安装
rpm -ivh jdk-17_linux-x64_bin.rpm

安装完成,查看 java 版本

java -version

到这里 java sdk 安装完成了,上面的 rpm 文件也可以删除了。

2. 调高 jvm 线程数限制,不然启动 es 会报错

#修改 sysctl.conf
vi /etc/sysctl.conf #修改 max_map_count 调大,如果没有这个设置,则新增一行
vm.max_map_count=262144 #改完保存后, 执行下面命令让 sysctl.conf 文件生效
sysctl -p

3. 修改 limits.conf 文件

不然启动时会报这个错误: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

#修改文件
vi /etc/security/limits.conf

在后面增加这两行,如果有就不用了:

* soft nofile 65536
* hard nofile 65536

修改完文件后在使用命令修改一遍

ulimit -n 65536

4. 下载 ES

官网:https://www.elastic.co/cn/downloads/elasticsearch

下载上传到 linux 服务器,或直接在 linux 服务器下载,这里选择后者。

#下载 es 压缩包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.3-linux-x86_64.tar.gz
#解压
tar -zxvf elasticsearch-7.16.3-linux-x86_64.tar.gz

解压完后的文件夹 elasticsearch-7.16.3

进入解压的目录看一下结构

5. 修改配置文件 elasticsearch.yml

#修改配置文件
vi config/elasticsearch.yml

6. 创建一个普通用户

因为 es 默认不能通过 root 用户启动,所以需要建一个普通用户

#创建一个名为 elastic 的用户
adduser elastic
#修改用户 elastic 的密码
passwd elastic

把 /home/es 目录下的权限给 elastic 用户

#给 es 用户迭代权限
chgrp -R elastic /home/es
chown -R elastic /home/es
#把 es 目录权限变为可读可执行
chmod 777 /home/es

切换为 elastic 用户

#把当前登录用户切换为 elastic 用户
su elastic

从 root 用户变成了 elastic 用户

 7. 启动 es

#进入 es 文件目录
cd elasticsearch-7.16.3
#启动 es -d 表示后台启动
bin/elasticsearch -d

看到这个界面就是安装成功啦!如果局域网访问不到,看防火墙是否没关。

四、Docker 搭建 ES

1. 先安装 docker 环境

参考:https://www.cnblogs.com/wei325/p/15139701.html

2. 新建 elasticsearch.yml 配置文件

新建 elasticsearch.yml 配置文件并上传到主机目录用于配置文件挂载,方便后面修改,这里上传到 /home/es 目录。

具体有什么其它配置可以参考前面两种安装方式里面的 elasticsearch.yml 文件,是一样的。

http.host: 0.0.0.0
#跨域
http.cors.enabled: true
http.cors.allow-origin: "*"

位置如下:

3.docker 拉取 es 镜像

#拉取镜像,指定版本号
docker pull elasticsearch:7.16.3

4. 把镜像启动为容器

docker run -d -p 9200:9200 -p 9300:9300 --name es -e ES_JAVA_OPTS="-Xms128m -Xmx256m" -v /home/es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:7.16.3
#9200 是对外端口,9300 是 es 内部通信端口
#-e ES_JAVA_OPTS="-Xms128m -Xmx256m" Xms 初始化时内存栈大小,Xms 程序限制占用内存
#-v 把配置文件挂载到 es 的 docker 里的配置文件

查看启动的容器

搭建完成,浏览器打开 http://ip:9200 看到下面的界面就搭建成功了。

Elasticsearch 使用系列 -ES 简介和环境搭建的