• ElasticSearch-全文检索和分析引擎学习Day01


    前言

    学习谷粒商城基础篇完结后便开启了高级部分的学习,高级部分的第一章节 Elasticsearch 搜索和分析引擎。文档地址:elasticsearch中文文档地址

    一、Elasticsearch 简介

    1.1 Elasticsearch 是什么?

    Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具。人们通常将 Elastic Stack 称为 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats,可用来向 Elasticsearch 发送数据。

    1.2 Elasticsearch 的用途

    Elasticsearch 在速度和可扩展性方面都表现出色,而且还能够索引多种类型的内容,这意味着其可用于多种用例:

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

    1.3 Elasticsearch 工作原理

    原始数据会从多个来源(包括日志、系统指标和网络应用程序)输入到 Elasticsearch 中。数据采集指在 Elasticsearch 中进行索引之前解析、标准化并充实这些原始数据的过程。这些数据在 Elasticsearch 中索引完成之后,用户便可针对他们的数据运行复杂的查询,并使用聚合来检索自身数据的复杂汇总。在 Kibana 中用户可以基于自己的数据创建强大的可视化,分享仪表板,并对 Elastic Stack 进行管理。

    1.4 Logstash 的用途

    Logstash 是 Elastic Stack 的核心产品之一,可用来对数据进行聚合和处理,并将数据发送到 Elasticsearch。Logstash 是一个开源的服务器端数据处理管道,允许您在将数据索引到 Elasticsearch 之前同时从多个来源采集数据,并对数据进行充实和转换。

    1.5 Kibana 的用途

    Kibana 是一款适用于 Elasticsearch 的数据可视化和管理工具,可以提供实时的直方图、线形图、饼状图和地图。Kibana 同时还包括诸如 Canvas 和 Elastic Maps 等高级应用程序;Canvas 允许用户基于自身数据创建定制的动态信息图表,而 Elastic Maps 则可用来对地理空间数据进行可视化。

    二、Docker 安装ES和Kibana

    2.1 下载镜像文件

    #存储和检索数据
    docker pull elasticsearch:7.4.2 
    
    #可视化检索数据
    docker pull kibana:7.4.2 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    若出现如下错误,则表明连接超时,我们更换镜像即可。

    Unable to find image 'elaticsearch' locally
    docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
    See 'docker run --help'.
    
    
    • 1
    • 2
    • 3
    • 4

    解决方案
    1.执行如下命令

    vim /etc/docker/daemon.json
    
    • 1

    2.粘贴到daemon.json文件中

    {
        "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
    }
    
    • 1
    • 2
    • 3

    3.重启docker容器

    systemctl restart docker
    
    • 1

    若出现如下错误,则表明虚拟机未联网,需要将虚拟机联网。

    Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on [::1]:53: read udp [::1]:39306->[::1]:53: read: connection refused
    
    • 1

    解决方案
    1.解决centos7连不上网络的问题链接
    2.解决后执行 docker pull elasticsearch:7.4.2 和 docker pull kibana:7.4.2 完成镜像下载。

    2.2 创建实例

    mkdir -p /mydata/elasticsearch/config 
    mkdir -p /mydata/elasticsearch/data 
    
    echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml 
    
    chmod -R 777 /mydata/elasticsearch/ 保证权限
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    [root@localhost config]# docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -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
    146e8018abb25ea77482783685d6279b0ad2b23f7153f16f83c467f3bb4ca594
    [root@localhost config]# docker ps -a
    CONTAINER ID   IMAGE                 COMMAND                  CREATED              STATUS              PORTS                                                                                  NAMES
    146e8018abb2   elasticsearch:7.4.2   "/usr/local/bin/dock…"   About a minute ago   Up About a minute   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch
    e22de2962734   redis                 "docker-entrypoint.s…"   6 weeks ago          Up 8 minutes        0.0.0.0:6379->6379/tcp, :::6379->6379/tcp                                              redis
    62bab71c9c70   mysql:5.7             "docker-entrypoint.s…"   8 months ago         Up 8 minutes        0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                                   mysql
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    特别注意: -e ES_JAVA_OPTS=“-Xms512m -Xmx512m” 测试环境下,设置 ES 的初始内存和最大内存,否则默认值过大导致 ES 启动不了。

    [root@localhost config]# docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.220.131:9200 -p 5601:5601  -d kibana:7.4.2
    e8df2cb8d0ef66d3ee8c02c0eb015d174cef731b61feb8711a4cf84c9d5e849d
    [root@localhost config]# docker ps -a
    CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS                                                                                  NAMES
    e8df2cb8d0ef   kibana:7.4.2          "/usr/local/bin/dumb…"   53 seconds ago   Up 51 seconds   0.0.0.0:5601->5601/tcp, :::5601->5601/tcp                                              kibana
    146e8018abb2   elasticsearch:7.4.2   "/usr/local/bin/dock…"   33 minutes ago   Up 33 minutes   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch
    e22de2962734   redis                 "docker-entrypoint.s…"   6 weeks ago      Up 40 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp                                              redis
    62bab71c9c70   mysql:5.7             "docker-entrypoint.s…"   8 months ago     Up 40 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                                   mysql
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    http://192.168.57.129:9200 一定改为自己虚拟机的地址。

    访问 Elasticsearch 出现如下界面,则说明安装成功。

    在这里插入图片描述

    访问 Kibana出现如下界面,则说明安装成功。

    在这里插入图片描述

  • 相关阅读:
    HashMap 的 7 种遍历方式与性能分析
    C++刷题 全排列问题
    猿代码浅谈MPI与OpenMP并行程序设计
    [附源码]计算机毕业设计springboot行程规划app
    8月PMP出成绩了,意味着什么?
    flask旅游景点推荐
    Vue项目中的字段格式化工具(进阶版)
    while语句的实际应用(1)
    ASP.NET CORE 用户登录失败达到一定次数如何锁住账户
    程序员开启商业思维到底有多赚钱?羊了个羊告诉你答案!
  • 原文地址:https://blog.csdn.net/m0_49692893/article/details/128113888