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方式体验相关推荐

  1. Elastic search入门到集群实战操作详解(原生API操作、springboot整合操作)-step1

    Elastic search入门到集群实战操作详解(原生API操作.springboot整合操作)-step2 https://blog.csdn.net/qq_45441466/article/de ...

  2. java使用elastic search入门

    转自:https://www.ibm.com/developerworks/cn/java/j-use-elasticsearch-java-apps/ 如果您使用过 Apache Lucene 或 ...

  3. Elastic search 入门

    摘要:Elasticsearch是一个实时分布式搜索和分析引擎.它让你以前所未有的速度处理大数据成为可能.它用于全文搜索.结构化搜索.分析以及将这三者混合使用:维基百科使用Elasticsearch提 ...

  4. 入门架构——单机高性能

    入门架构--单机高性能 协作方式 在高并发场景中,必须要让服务器同时维护大量请求连接,可能是一个服务进程创建另一个进程,也可能是一个服务线程去创建另一个线程,但连接结束后进程或线程就销毁了,这是一个巨 ...

  5. Docker启动Elastic Search报错 ERROR: [1] bootstrap checks failed

    1. 报错 ERROR: [1] bootstrap checks failed [1]: the default discovery settings are unsuitable for prod ...

  6. 第一章 Elastic Stack入门

    一.预备知识Restful 1.起源 在没有前后端分离概念之前,一个网站的完成总是"all in one",在这个阶段,页面.数据.渲染全部在服务端完成,这样做的最大的弊端是后期维 ...

  7. dubbo协议_阿里P8架构师谈微服务架构:Dubbo+Docker+SpringBoot+Cloud

    微服务架构 什么是微服务架构呢?简单说就是将一个完整的应用(单体应用) 按照一定的拆分规则(后文讲述)拆分成多个不同的服务,每个服务都能独立地进行开发.部署.扩展.服务于服务之间通过注入RESTful ...

  8. 能从入门到精通的 Docker 学习指南

    原文链接:https://blog.opskumu.com/docker.html 作者:Kumu 这是一份我一直参考的 Docker 学习指南,最近感觉访问慢了很多,发在公众号里留作备份也分享给大家 ...

  9. elastic search,又一个基于lucene的nosql好项目

    elastic search,又一个基于lucene的nosql好项目 http://summersmile1984.i-branding.me/2011/03/31/elastic-search%E ...

最新文章

  1. NIO 之 ByteBuffer实现原理
  2. Android App图片轮播效果的组件化
  3. Spark 运行内存不足Not enough space to cache rdd in memory,Container killed by YARN for exceeding memory
  4. IP地址的网络位与主机位
  5. java web权限设计_java web简单权限管理设计
  6. python中把输出结果写到一个文件中_如何将脚本输出写入文件和命令行?
  7. 微软官方推出的win10安装或者创建安装u盘的工具
  8. python 识别图形验证码_python爬虫20 | 小帅b教你如何用python识别图片验证码
  9. 【生信进阶练习1000days】day7-RSQLite的使用
  10. Python拟合SHARP红外测距传感器相关数据
  11. VScode输入感叹号时,没有出现模板
  12. python随机密码生成以整数17为随机数种子_简述pythonpytorch 随机种子的实现
  13. Android压力测试
  14. 【初赛】初赛提纲 错题本(to be countinue)
  15. python面试技术面都过了,薪资都谈好了20K*13结果还是被刷了,问HR原因竟是...
  16. 胡适:赠与今年的大学毕业生
  17. (伟大的dfs)洛谷P4961 小埋与扫雷
  18. 易速还原3.0核心版发布
  19. 跳板机的基本原理,以及实现思路!
  20. MySQL 数据库的提速器-写缓存(Change Buffer)

热门文章

  1. canal mysql多实例_canal搭建实例
  2. 安卓实训项目:基于储存卡音乐播放器实训报告5.0
  3. mysql 常见错误_mysql常见的错误提示问题处理小结
  4. 浙江树人学院计算机专业好吗,浙江树人学院有哪些专业及什么专业好
  5. 为什么正则化可以起到对模型容量进行控制_论文解读 | 基于正则化图神经网络的脑电情绪识别...
  6. linux yum安装mysql5.7_Linux安装MySQL5.7通过yum安装轻松搞定
  7. 服务器拒绝接收office文件,Ghost Win7系统下Outlook设置拒绝接收垃圾文件的方法
  8. shared_ptr和weak_ptr使用介绍
  9. java rgb hsl_RGB、HSB、HSL 互相转换算法
  10. python做图像识别好还是c++好_OpenCV人脸检测(C++/Python)