栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

elasticsearch 简介与安装

elasticsearch 简介与安装

简介
elasticsearch结合kibana、Logstash、Beast,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域。

数据抓取:Logstash、Beasts
存储、计算、搜索数据:Elasticsearch(底层是Lucene)
数据可视化:Kibana
Lucene:是一个java语言的搜索引擎类库。

正向索引和倒排索引
正向索引:传统数据库采用正向索引,例如给表的ID创建索引。查询某个词条时必须先找到文档(一条数据)再判定是否包含对应词条。

倒排索引:对文档内容分词,对词条创建索引,并记录词条所在文档的信息,查询时先根据词条查询文档id,而后获取文档。

elasticsearch采用倒排索引:

  • 文档(doucument):每条数据就是一个文档
  • 词条(term):文档按照语义分成的词语。

将普通数据,按条进行分词,记录成词条。遇见相同分词时,追加文档id。

eg:
原数据:小米手机、华为手机。

小米手机,先按条进行分词
形成

词条文档id
小米1
手机1

然后:华为手机

词条文档id
小米1
手机1,2
华为1

这样词条就是唯一的,针对词条创建索引。

如搜索【华为手机】

  1. 得到两个词条【华为】、【手机】
  2. 然后去倒排索引中查找。
词条文档id
手机1,2
华为1
  1. 得到对应文档id,同时文档id1含有所有词条,排序就可以靠前。
  2. 根据文档id,再到对应文档中查询,并将结果存入结果集。

文档
elasticsearch是面向文档存储的,可以是数据库中的一条商品数据,一个订单信息。
文档数据会被序列化为json格式后存储到elasticsearch中。

索引
索引:相同类型的文档的集合。不同类型放到不同的索引下。
映射:索引中文档的字段约束信息,类似表的结构结束。

dbes说明
tableindexindex就是文档的集合,类似于数据库的table
rowdocumentdocument就是一条条数据,类型数据库的row,但文档都是json文档
columnfieldfield就是json文档中字段,类型数据库中的列
schemamappingmapping是索引中文档的约束,如字段类型约束,类似数据库的表结构
sqlDSLDSL是es提供的json风格请求语句,用来操作es,实现CRUD(sql基于connection,es基于HTTP请求)

ES擅长数据的搜索、分析、计算。
DB擅长事件类型操作、确保数据的安全和一致性。
所以一般增、删、改的操作还是操作DB,读的交给ES。

安装ES、kibana
此处不用docker-compose,而使用单独部署ES,所以要创建网络用于ES与kinana使用。

# 创建网络 
docker network create es-net
# 加载镜像(可以pull,也可以load本地)

部署启动ES

docker run -d 
	--name es 
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" 
    -e "discovery.type=single-node" 
    -v es-data:/usr/share/elasticsearch/data 
    -v es-plugins:/usr/share/elasticsearch/plugins 
    --privileged 
    --network es-net 
    -p 9200:9200 
    -p 9300:9300 
elasticsearch:7.12.1

ES_JAVA_OPTS:配置JVM堆内存大小,ES是基于JAVA实现的。
discovery.type:单点模式。
es-data:ES数据保存目录。
es-plugins:ES插件保存目录。
privileged::授予逻辑卷访问权
network es-net:让ES加入到网络中。
9200:http访问端口。
9300:ES各节点互联端口。

如果报错

WARNING: IPv4 forwarding is disabled. Networking will not work.

按下面解决

vi /etc/sysctl.conf
systemctl restart network && systemctl restart docker
#重启网络与docker
docker rm xxx
#删除容器
略
#重新部署运行容器 

网页访问,展示一堆json,证明启动成功

安装kibana
pull拉取,或load加载本地

docker load -i kibana.tar

部署运行kibana

docker run -d 
--name kibana 
-e ELASTICSEARCH_HOSTS=http://es:9200 
--network=es-net 
-p 5601:5601  
kibana:7.12.1

network es-net:加入一个名为es-net的网络中,与elasticsearch在同一个网络中
ELASTICSEARCH_HOSTS:设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
版本:版本最好和ES同一个版本。

kibana启动慢,可以通过命令
查看到Server running at http://0.0.0.0:5601 一般就是启动完成

docker logs -f kibana

访问网页,选择自己配置

选择Dev Tools(用于发送DSL语句)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/673375.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号