一、Elasticsearch介绍(Elasticsearch:官方分布式搜索和分析引擎 | Elastic)
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
它可以用来快速地储存、搜索和分析海量的数据。用来代替MySql作数据的搜索和分析,可以秒级的从海量的数据中作检索和分析。
官方学习文档:Elasticsearch Guide [7.5] | Elastic
1.基本概念
1.1、Index(索引)
动词:相当于MySQL的insert
名词:相当于MySQL的Database
1.2、Type(类型)
在Index中可以定义多个Type。每一种类型的数据放在一起。
类似于MySQL中的Table。
1.3、Document(文档)
保存在某个索引(Index)下,某种类型(Type)的一个数据(Document)。
文档是Json格式的,Documnet类似MySQL某个Table的内容。
## ES6及以后的版本已经删除了TYPE的概念
二、Docker安装Elasticsearch
1、下载镜像文件
docker pull elasticsearch:7.4.2
docker pull kibana:7.4.2//将es中配置文件挂载到外面的目录,通过修改虚拟机外面的文件夹es配置,进而修改docker中es的配置
mkdir -p /mydata/elasticsearch/configmkdir -p /mydata/elasticsearch/data
//写了一个配置 http.host:0.0.0.0 代表es可以被远程的任何机器访问,注意这里host:后需要有空格
echo "http.host: 0.0.0.0">> /mydata/elasticsearch/config/elasticsearch.yml
2、创建实例
1. Elasticsearch
//运行elasticsearch命令,
//为容器起一个名字为elasticsearch,-p暴露两个端口 9200 9300, 9200是发送http请求——restapi的端口,9300是es在分布式集群状态下,结点之间的通信端口, \代表换行下一行,
//-e single-node 是以单节点方式运行,ES_JAVA_OPTS不指定的话,es一启动,会将内存全部占用,整个虚拟机就卡死了,
//-v 进行挂载,目录中配置,数据等一一关联 -d 后台启动es使用指定的镜像 z
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -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
安装完 elasticsearch 后我们来启动一下,docker ps
会发现使用docker ps命令查看启动的容器时没有找到我们的 es,这是因为目前 es 的配置文件的权限导致的,因此我们还需要修改一下 es 的配置文件的权限:
chmod -R 777 /mydata/elasticsearch/
若仍然启动失败,则说明运行代码有误,使用 docker log elasticsearch
查看报错
同时,需要 docker ps -a
查看容器id,将elasticsearch容器删除,再执行elasticsearch命令
启动成功后,访问http://192.168.56.10:9200,输出以下内容说明启动成功。
{
"name" : "e514c560d500",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "Rq6lZhNVRhiVkjTljaCGig",
"version" : {
"number" : "7.4.2",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "2f90bbf7b93631e52bafb59b3b049cb44ec25e96",
"build_date" : "2019-10-28T20:40:44.881551Z",
"build_snapshot" : false,
"lucene_version" : "8.2.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
2、安装Kibana
//访问5601端口,访问到可视化界面kibana,kibana再先发送请求到es9200 docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.56.10:9200 -p 5601:5601 -d kibana:7.4.2 //http://192.168.56.10:9200 要改成自己的Ip端口
访问可视化界面 http://192.168.56.10:5601