1. 认识ElasticSearch

1. 简介

1.1 概述

    Elasticsearch是一个分布式的开源搜索和分析引擎,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化数据。Elasticsearch在Apache Lucene的基础上开发而成,其以其简单的rest风格API、分布式特性、速度和可扩展性而闻名,是Elastic Stack的核心组件;

    Elastic stack是适用于数据采集、充实、存储、分析和可视化的一组开源工具,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便

    Elasticsearch的底层是开源库Lucene,但是,我们没法直接用Lucene,必须自己写代码去调用它的接口。Elasticsearch是Lucene的封装,提供了Rest Api的操作接口,开箱即用

详情参看:https://www.elastic.co/cn/what-is/elasticsearch

1)官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

2)官方中文:https://www.elastic.co/guide/cn/elasticsearch/guide/current/foreword_id.html

3)社区中文:http://doc.codingdict.com/elasticsearch/0/

1.2 用途

应用程序搜索
网站搜索
企业搜搜
日志处理和分析
基础设施指标和容器监测
应用程序性能监测
地理空间数据分析和可视化
安全分析
业务分析

1.3 基本概念

1.3.1 Index(索引)

动词,相当于MySQL中的insert

名称,相当于MySQL中的Database

1.3.2 Type(类型)

在Index(索引)中,可以定义一个或多个类型。类似MySQL中的table,每一种类型的数据放在一起

1.3.3 Document(文档)

保存在某个索引(Index)下,某种类型(Type)的一个数据(Document),文档是JSON格式的,Document就像是MySQL中的某个Table里面的内容

用途表示,如图:

1. 认识ElasticSearch_第1张图片

1.3.4 倒排索引

ElasticSearch能够从海量的数据中查询到数据,得益于它的倒排索引

2. 安装

2.1 Docker安装ES

2.1.1 下载安装es

sudo docker pull elasticsearch:7.4.2

1. 认识ElasticSearch_第2张图片

该命令类似于安装MySQL服务器,用于存储和检索数据

2.1.2 下载安装可视化界面kibana

sudo docker pull kibana:7.4.2

1. 认识ElasticSearch_第3张图片

该命令类似于安装mysql客户端,例如:SQLyog,用于可视化检索数据

查看安装的镜像,如图:

1. 认识ElasticSearch_第4张图片

安装完成之后,查看虚拟机还有多少内存,如图:

2.2 创建实例

2.2.1 ElasticSearch

1)创建配置文件目录

mkdir -p /mydata/elasticsearch/config

给虚拟机创建一个自己的目录叫/mydata/elasticsearch/config,用于挂载ElasticSearch的配置文件,这样我们修改这里的配置文件信息就可以修改掉docker容器中的配置信息

2)创建数据文件目录

mkdir -p /mydata/elasticsearch/data

给虚拟机创建一个自己的目录叫/mydata/elasticsearch/data,用于将ElasticSearch的数据信息挂载到外部的虚拟机上的/mydata/elasticsearch/data上

3)定义配置映射

echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml

写了一个配置http.host: 0.0.0.0,代表es可以被远程的任何机器进行访问,然后将这个配置内容写入到 /mydata/elasticsearch/config/elasticsearch.yml文件中

如图:

1. 认识ElasticSearch_第5张图片

注意:

4)创建实例

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64 -Xmx128m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2

如图所示:运行成功会生成一个docker的唯一序列号

参数解释:

4.1 docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \

docker run 表示启动docker容器

--name elasticsearch 表示给容器起一个名字,名字叫做elasticsearch

-p 表示暴露端口

-p 9200:9200 -p 9300:9300 表示暴露两个接口9200和9300,9200是调用REST API的接口  9300是es在分布式集群状态下节点之间的通信端口

\ 斜杠表示换行

该配置的意思是,启动docker容器,该容器名字叫做elasticsearch并暴露两个端口9200和9300

4.2 -e "discovery.type=single-node"

-e 表示指定一个参数,discovery.type-single-none 表示该es以单节点运行

4.3 -e ES_JAVA_OPTS="-Xms64 -Xmx128m"

ES_JAVA_OPTS 设置es内存,初始值为64M,最大值为128M。如果不设置,那么es一起动就占用全部内存,整个虚拟机就会卡死

4.4 -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml 

-v 表进行挂载,这句话的意思是将容器中的/usr/share/elasticsearch/config/elasticsearch.yml配置文件与外部虚拟机的/mydata/elasticsearch/config/elasticsearch.yml进行一一关联,这样我们修改虚拟机中的elasticsearch.yml文件,就同步修改了docker中的elasticsearch.yml文件了

4.5 -d elasticsearch:7.4.2

-d 表示后台启动es,这句话的意思是 后台启动镜像 elasticsearch:7.4.2

访问:http://192.168.56.10:9200/ 出现如下图所示,表示ES安装成功

1. 认识ElasticSearch_第6张图片

注意:可能有文件权限问题导致ES安装之后,就退出了,导致访问不到,这时候,需要将ES目录设置为可读可写,利用如下命令即可

chmod -R 777 /mydata/elasticsearch/

2.2.2 安装可视化界面Kibana

Kibana可以安装可以不安装,我们完全可以使用postman来发送请求,操作es,

例如:查看节点信息

http://192.168.56.10:9200/_cat/nodes

1. 认识ElasticSearch_第7张图片

ae76972f47b5就是节点id,如果节点前面有*表示该节点是主节点

1)安装Kibana

docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.56.10:9200 -p 5601:5601 \
-d kibana:7.4.2

安装之后,我们访问虚拟机的5601端口就能访问到可视化界面了,从命令可以看出,Kibana也是通过es的9200端口来给ES发送请求的,再次证明了,我们可以直接在postman中操作es,无需Kibana

注意:

1)http://192.168.56.10:9200 为ES主机地址

2)如果不在命令中指定ELASTICSEARCH_HOSTS,也可以在Kibana的配置文件中指定,详见http://hub.docker.com中的关于Kibana的说明.

2)测试

在浏览器输入:http://192.168.56.10:5601

如图:

1. 认识ElasticSearch_第8张图片

点击yes或者no都可以,点击no,如图:

1. 认识ElasticSearch_第9张图片

点击 explore on my own 用我们自己的数据,如图:

1. 认识ElasticSearch_第10张图片

出现上图,说明可视化界面安装成功!

3. 设置ES开机自启

3.1 ElasticSearch自启

docker update ae76972f47b5 --restart=always

ae76972f47b5 为ElasticSearch的容器ID

3.2 kibana自启

docker update 41e9848ef794 --restart=always

你可能感兴趣的:(elasticsearch)