Elastic Search入门:架构说明及Docker方式体验
Elastic Search简称ES,是一款在搜索和日志检索领域极其成功的开源产品,当然ES背后的商业化公司也很成功。很多大的知名品牌,像是SAP、Booking、Ebay都在使用ES,
今天就来实际使用一下ES这款成功的商业化产品,并且介绍一下它的特点。
Elastic Search VS Luncence
说到搜索还是要提下Luncence,Luncence基本上可以称为搜索领域的鼻祖了,是很早期的索引构建库。但是Luncence的主要问题有两点,其一是只支持Java类库的调用方式,学习和使用门槛很高,其二是Luncence没有线性扩展能力。搜索又是一个几乎随业务量线性扩张的功能,所以是否支持线性拓展资源很重要。
ES其实是对Luncence的库的上层封装,通过Restful的形式可以让日志的构建和检索等功能更容易在多语言环境下调用,做到即使是开发小白也能快速上手。另外,ES支持线性拓展,使得使用ES的用户不需要担心资源协调的问题。
Elastic Search整体架构
接下来介绍下ES的各个模块,从下向上介绍。
(1) Beat
Beat是一个轻量的数据采集器,Beat可以采集各种格式的数据,比如日志文件、值班、网络数据等,并且把这些数据传输到Logstash。
(2)Logstash
Logstash是一个服务端的数据管道,能够从多个数据来源采集数据,完成数据转换,然后将数据传输到Elastic Search。在Logstash中可以实现一些数据的过滤、转码等功能,比如把非结构化数据转化成结构化数据,比如从IP地址破译出地理坐标。
(3)Elastic Search
Elastic Search主要做数据和索引的存储以及相关查询的计算。
(4)Kibana
Kibana主要是一个数据可视化界面,通过可视化的方式展示ES的计算和索引结果。
(5)X-Pack
X-Pack是ES内部插件,在老的ES版本是收费的,在新的版本中很多插件是被开源免费使用的。在X-Pack中可以直接使用机器学习、图关系、安全相关的插件。
所以整体的流程如下,先通过Beat采集数据,然后数据通过管道写到Logstash做一步处理,接着写到Elastic Search,然后通过Kibana做数据的可视化展现。
具体操作体验
接下来就具体体验下ES的功能,当然是选择通过Docker的模式run一下最快。可以参考:
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
可以选择通过拉起单一Docker的模式体验,也可以通过Docker Compose的方式体验(Docker Compose比较适合构建一个分布式ES集群)。我两个方案都试了试,Docker Compose一堆坑,官方案例都没跑起来。
具体操作流程如下:
(1) 先Pull一个官方镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.2
(2) 接着拉起这个镜像
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.10.2
(3)这个时候ES的服务就已经跑起来了,Docker化的模式就是如此方便,服务的本地地址是localhost:9200。
(4)发送服务请求到localhost:9200,
curl -X GET "localhost:9200/_cat/nodes?v=true&pretty"
可以查到ES服务的节点的具体情况。
总结一下
ES基本上是目前业内在搜素和日志检索领域非常成熟的开源工具,ES有很多丰富的插件,比如Kibana、Logstash,而且ES对于容器化技术非常拥抱,可以快速的做部署。最后一点是ES的全部功能都可以通过一套标准的RestFul接口去调用,这个设计很方便用户使用。
Elastic Search入门:架构说明及Docker方式体验相关推荐
- Elastic search入门到集群实战操作详解(原生API操作、springboot整合操作)-step1
Elastic search入门到集群实战操作详解(原生API操作.springboot整合操作)-step2 https://blog.csdn.net/qq_45441466/article/de ...
- java使用elastic search入门
转自:https://www.ibm.com/developerworks/cn/java/j-use-elasticsearch-java-apps/ 如果您使用过 Apache Lucene 或 ...
- Elastic search 入门
摘要:Elasticsearch是一个实时分布式搜索和分析引擎.它让你以前所未有的速度处理大数据成为可能.它用于全文搜索.结构化搜索.分析以及将这三者混合使用:维基百科使用Elasticsearch提 ...
- 入门架构——单机高性能
入门架构--单机高性能 协作方式 在高并发场景中,必须要让服务器同时维护大量请求连接,可能是一个服务进程创建另一个进程,也可能是一个服务线程去创建另一个线程,但连接结束后进程或线程就销毁了,这是一个巨 ...
- Docker启动Elastic Search报错 ERROR: [1] bootstrap checks failed
1. 报错 ERROR: [1] bootstrap checks failed [1]: the default discovery settings are unsuitable for prod ...
- 第一章 Elastic Stack入门
一.预备知识Restful 1.起源 在没有前后端分离概念之前,一个网站的完成总是"all in one",在这个阶段,页面.数据.渲染全部在服务端完成,这样做的最大的弊端是后期维 ...
- dubbo协议_阿里P8架构师谈微服务架构:Dubbo+Docker+SpringBoot+Cloud
微服务架构 什么是微服务架构呢?简单说就是将一个完整的应用(单体应用) 按照一定的拆分规则(后文讲述)拆分成多个不同的服务,每个服务都能独立地进行开发.部署.扩展.服务于服务之间通过注入RESTful ...
- 能从入门到精通的 Docker 学习指南
原文链接:https://blog.opskumu.com/docker.html 作者:Kumu 这是一份我一直参考的 Docker 学习指南,最近感觉访问慢了很多,发在公众号里留作备份也分享给大家 ...
- elastic search,又一个基于lucene的nosql好项目
elastic search,又一个基于lucene的nosql好项目 http://summersmile1984.i-branding.me/2011/03/31/elastic-search%E ...
最新文章
- NIO 之 ByteBuffer实现原理
- Android App图片轮播效果的组件化
- Spark 运行内存不足Not enough space to cache rdd in memory,Container killed by YARN for exceeding memory
- IP地址的网络位与主机位
- java web权限设计_java web简单权限管理设计
- python中把输出结果写到一个文件中_如何将脚本输出写入文件和命令行?
- 微软官方推出的win10安装或者创建安装u盘的工具
- python 识别图形验证码_python爬虫20 | 小帅b教你如何用python识别图片验证码
- 【生信进阶练习1000days】day7-RSQLite的使用
- Python拟合SHARP红外测距传感器相关数据
- VScode输入感叹号时,没有出现模板
- python随机密码生成以整数17为随机数种子_简述pythonpytorch 随机种子的实现
- Android压力测试
- 【初赛】初赛提纲 错题本(to be countinue)
- python面试技术面都过了,薪资都谈好了20K*13结果还是被刷了,问HR原因竟是...
- 胡适:赠与今年的大学毕业生
- (伟大的dfs)洛谷P4961 小埋与扫雷
- 易速还原3.0核心版发布
- 跳板机的基本原理,以及实现思路!
- MySQL 数据库的提速器-写缓存(Change Buffer)
热门文章
- canal mysql多实例_canal搭建实例
- 安卓实训项目:基于储存卡音乐播放器实训报告5.0
- mysql 常见错误_mysql常见的错误提示问题处理小结
- 浙江树人学院计算机专业好吗,浙江树人学院有哪些专业及什么专业好
- 为什么正则化可以起到对模型容量进行控制_论文解读 | 基于正则化图神经网络的脑电情绪识别...
- linux yum安装mysql5.7_Linux安装MySQL5.7通过yum安装轻松搞定
- 服务器拒绝接收office文件,Ghost Win7系统下Outlook设置拒绝接收垃圾文件的方法
- shared_ptr和weak_ptr使用介绍
- java rgb hsl_RGB、HSB、HSL 互相转换算法
- python做图像识别好还是c++好_OpenCV人脸检测(C++/Python)