ElasticSearch 认识和安装ES

文章目录

  • 一、为什么学ElasticSearch?
      • 1.ElasticSearch 简介
      • 2.ElasticSearch 与传统数据库的对比
      • 3.ElasticSearch 应用场景
      • 4.ElasticSearch 技术特点
      • 5.ElasticSearch 市场表现
      • 6.ElasticSearch 的发展
  • 二、认识和安装ES
      • 1.认识 Elasticsearch(简称 ES)
      • 2.ElasticSearch 与 ELK Stack
      • 3.安装 Elasticsearch(tar包)
      • 4.安装 Kibana
      • 5.使用 Kibana 进行操作
      • 6.安装过程中的注意事项
      • 7.总结

一、为什么学ElasticSearch?

1.ElasticSearch 简介

  • ElasticSearch 是一个分布式、高性能的搜索引擎,广泛应用于大数据检索、日志分析、实时搜索等场景。
  • 与传统数据库相比,ElasticSearch 对于大规模数据的处理具有显著优势,特别是模糊查询、分词分析、语义理解等复杂搜索任务。



2.ElasticSearch 与传统数据库的对比

  • 数据库查询问题:使用传统数据库做模糊查询时,随着数据量增大,响应时间会显著变慢,尤其是当数据量达到几十万、百万时,响应时间甚至可能达到上百毫秒。

  • ElasticSearch 优势:ElasticSearch 在进行类似商品搜索、代码库搜索、全文检索等任务时,响应时间较短,甚至在数据量达到千万级时仍然能够保持较快的搜索速度。ElasticSearch 的查询速度与数据量的关系较小,性能优秀。


3.ElasticSearch 应用场景

  • 电商商品搜索:例如黑马商城中的商品搜索,使用数据库进行模糊查询时,响应时间大约为 100 毫秒,但使用 ElasticSearch 后,响应时间大幅度降低至 20 毫秒左右,即便数据量增加,搜索速度依然保持较快。
  • 代码托管平台(如 GitHub):GitHub 中有数十亿行代码,ElasticSearch 支持快速高效地从大量数据中检索出相关内容,远超过传统数据库的查询能力。

  • 百度、谷歌搜索:搜索引擎能够根据用户输入的关键字匹配相似或相关内容,而不仅仅是精确匹配。通过分词和语义分析,ElasticSearch 能处理复杂的搜索需求。

  • 地理位置搜索:如打车软件通过用户的地理位置快速查找附近的车辆,ElasticSearch 提供了强大的地理坐标搜索功能,能够实时返回附近的车辆信息。


4.ElasticSearch 技术特点

  • 开源免费:ElasticSearch 是一个完全开源且免费的搜索引擎,用户可以在无需付费的情况下自由使用。
  • 分布式架构:支持分布式部署,具有高可用性,能够处理海量数据。
  • 高效能:即使在数据量极大的情况下,ElasticSearch 也能够保持较快的查询速度,尤其适用于大规模的全文检索、日志分析等场景。
  • 全文检索:ElasticSearch 支持强大的全文检索能力,能够进行模糊匹配、语义理解、分词分析等。


5.ElasticSearch 市场表现

  • 市场地位:ElasticSearch 连续多年稳居全球搜索引擎技术的排名第一,超越了传统的 Solar 等搜索引擎。其强大的性能和灵活的应用,使其成为大数据处理和实时搜索的首选工具。



6.ElasticSearch 的发展

  • 从 2016 年起,ElasticSearch 逐渐超越了 Solar,成为开源搜索引擎领域的领导者。随着开源软件社区的不断贡献,ElasticSearch 的功能和性能不断增强,保持了行业领先地位。

通过学习 ElasticSearch,能够帮助我们应对各种大数据搜索需求,特别是在电商、社交平台、代码托管、日志分析等多个行业中发挥重要作用。




二、认识和安装ES

1.认识 Elasticsearch(简称 ES)

1.1 Lucene:Elasticsearch 的底层技术是 Lucene,它是一个由 Apache 维护的基于 Java 的搜索引擎库,提供了创建搜索引擎的 API 工具包。

官方网址:https://lucene.apache.org

  • 优势:Lucene 提供了高性能的搜索引擎功能,并且易于扩展。
  • 倒排索引:Lucene 使用倒排索引技术,使得数据的搜索非常高效。

1.2 Elasticsearch(ES)

  • 起源:ES 是基于 Lucene 开发的,最初由 Shay Banon 于 2004 年创建,最初名为 Compass,后来重写并更名为 Elasticsearch。
  • 核心特性:ES 支持分布式架构,能够做水平扩展,支持集群部署,能够存储海量数据并高效搜索。
  • 开发语言:虽然 Lucene 是用 Java 写的,ES 也采用 Java 开发,但它通过 RESTful API 提供跨语言的访问接口,支持多种编程语言进行操作。
  • 当前版本:ES 最新版本为 8.x,但在国内的企业中,较为常用的是 6.x 和 7.x 版本,主要是因为 API 稳定性。
  • 官方网址:https://www.elastic.co/cn/




2.ElasticSearch 与 ELK Stack

  • ELK Stack
    • ELK 代表 Elasticsearch、Logstash 和 Kibana:
      • Elasticsearch:用于存储、计算和搜索数据。
      • Logstash:用于数据抓取和处理。
      • Kibana:用于数据可视化展示。



  • 使用场景
    • 日志数据分析


    • 实时监控

    • 大规模微服务的日志管理和监控




3.安装 Elasticsearch(tar包)

  • 安装方式:可以通过多种方式安装 Elasticsearch,这里采用 Docker 进行安装。
  • 没有tar包也可以直接拉取镜像,详细操作请观看下一篇笔记
  • 将 tar 包复制到虚拟机根目录下


  • 导入镜像
docker load -i es.tar
docker load -i kibana.tar



  • 查看镜像是否导入成功,导入成功建议删除 tar 包,内存占用大
docker images


  • 删除 tar 包
rm -rf *.tar
ll



Docker 安装命令

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 hm-net \  # 这里是自己设置的网络-p 9200:9200 \-p 9300:9300 \elasticsearch:7.12.1

  • 环境变量配置ES_JAVA_OPTS 用于设置内存,discovery.type=single-node 用于单机模式启动。
  • 端口映射:9200 用于 HTTP 接口,9300 用于集群通信。


  • 查看容器运行情况
docker ps



  • 查看日志
docker logs -f es



  • 验证安装
    • 通过访问 http://虚拟机 IP 地址:9200 可以确认 Elasticsearch 是否成功启动。若返回 JSON 格式的响应信息,证明安装成功。




4.安装 Kibana

  • Kibana 安装命令
docker run -d \--name kibana \-e ELASTICSEARCH_HOSTS=http://es:9200 \--netwwork=hm-net \    # 这里是自己设置的网络-p 5601:5601 \kibana:7.12.1

  • 注意:es 和 kibana 需在一个网络里面,如果不在一个网络里面,按照以下步骤操作:
docker network create [网络名]
docker network connect [网络名] kibana
docker network connect [网络名] es

  • 配置说明ELASTICSEARCH_HOSTS 配置为 Elasticsearch 的地址,9200 为 ES 服务端口,5601 为 Kibana 提供的 Web 服务端口。

  • 查看日志:
docker logs -f kibana



  • 验证 Kibana 安装
    • 通过访问 http://虚拟机 ip 地址:5601 可以访问 Kibana 的图形化界面。




5.使用 Kibana 进行操作

  • 开发工具(Dev Tools):Kibana 提供了开发工具面板,允许用户直接向 Elasticsearch 发送 HTTP 请求进行数据增删改查等操作,而无需记住每个请求的具体路径和参数。

    • 例如,使用 GET / 请求可以查看 Elasticsearch 的基本信息。




  • 好处
    • 简化操作:无需手动构造复杂的请求路径和参数。
    • 代码提示:Kibana 提供了智能提示,帮助用户构建请求。



6.安装过程中的注意事项

  • Docker 镜像
    • 镜像大小较大,下载较慢,可以直接使用提供的镜像文件进行导入。
    • 支持 Windows 系统的 Docker 环境,Mac 系统(尤其是 M2 芯片)需要注意镜像兼容性问题。
  • 内存配置
    • Elasticsearch 默认使用 1GB 内存,建议根据电脑配置调整内存大小,避免占用过多资源。最低推荐内存为 512MB。




7.总结

  • 本章内容主要是介绍了 Elasticsearch 的基础知识、它的起源以及如何安装和配置 Elasticsearch 和 Kibana。
  • 安装过程中使用 Docker 是一种方便快捷的方式,可以轻松启动单机模式的 Elasticsearch 服务,并结合 Kibana 进行可视化操作。
  • 在企业生产环境中,ELK Stack 组合被广泛用于日志管理和实时监控,帮助开发者有效地处理大规模的日志数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/65785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第34天:安全开发-JavaEE应用反射机制攻击链类对象成员变量方法构造方法

时间轴: Java反射相关类图解: 反射: 1、什么是 Java 反射 参考: https://xz.aliyun.com/t/9117 Java 提供了一套反射 API ,该 API 由 Class 类与 java.lang.reflect 类库组成。 该类库包含了 Field 、 Me…

汽车基础软件AutoSAR自学攻略(三)-AutoSAR CP分层架构(2)

汽车基础软件AutoSAR自学攻略(三)-AutoSAR CP分层架构(2) 下面我们继续来介绍AutoSAR CP分层架构,下面的文字和图来自AutoSAR官网目前最新的标准R24-11的分层架构手册。该手册详细讲解了AutoSAR分层架构的设计,下面让我们来一起学习一下。 Introductio…

css面试常考布局(圣杯布局、双飞翼布局、三栏布局、两栏布局、三角形)

两栏布局 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> &…

网络攻击行为可视化分析系统【数据分析 + 可视化】

一、系统背景 随着信息技术的快速发展&#xff0c;网络已成为现代社会不可或缺的一部分。然而&#xff0c;与此同时&#xff0c;网络攻击手段也日益多样化和复杂化&#xff0c;给企业和个人的信息安全带来了极大的威胁。传统的网络攻击分析方法往往依赖于人工分析和处理大量的…

利用obs studio制作(人像+屏幕)录制影像

1.什么是obs? OBS&#xff08;Open Broadcaster Software&#xff09;是一款功能强大的开源软件&#xff0c;它使用户能够直接从电脑录制视频和直播内容到 Twitch&#xff0c;YouTube 和 Facebook Live 等平台。它在需要直播或录制屏幕活动的游戏玩家、YouTube 用户和专业人士…

C# GDI+的DrawString无法绘制Tab键的现象

【啰嗦2句】 现在用C#的人很少了吧&#xff1f;GDI更少了吧&#xff1f;所以这个问题估计也冷门。没关系&#xff0c;分享给特定需要的人也不错。 【问题现象】 工作中开发了一个报告编辑器&#xff0c;实现图文排版等功能&#xff0c;用着没什么问题&#xff0c;直到有一天…

夯实前端基础之HTML篇

知识点概览 HTML部分 1. DOM和BOM有什么区别&#xff1f; DOM&#xff08;Document Object Model&#xff09; 当网页被加载时&#xff0c;浏览器会创建页面的对象文档模型&#xff0c;HTML DOM 模型被结构化为对象树 用途&#xff1a; 主要用于网页内容的动态修改和交互&…

SD ComfyUI工作流 老照片修复上色

文章目录 老照片修复上色SD模型Node节点工作流程开发与应用效果展示老照片修复上色 该工作流专门设计用于老照片的修复和上色,通过一系列高级的图像处理技术,包括深度图预处理、面部修复、上色和图像放大等步骤,来恢复老照片的质量并增加色彩。首先,工作流加载老照片并进行…

后端技术选型 sa-token校验学习 下 结合项目学习 前后端登录

目录 后端设置 Controller 层 Service 层 后端返回 Token 给前端 1. 用户提交登录请求 2. 后端验证用户身份 3. 返回 Token 4. 前端保存 Token 前端存储 1. 前端向后端发起请求 2. 前端存储一下 Token 3.管理用户认证的 token 的 工具 4. 在 Service 层进行设置 H…

如何用 SSH 访问 QNX 虚拟机

QNX 虚拟机默认是开启 SSH 服务的&#xff0c;如果要用 SSH 访问 QNX 虚拟机&#xff0c;就需要知道虚拟机的 IP 地址&#xff0c;用户和密码。本文我们来看看如何获取这些参数。 1. 启动虚拟机 启动过程很慢&#xff0c;请耐心等待。 2. 查看 IP 地址 等待 IDE 连接到虚拟机。…

java面向对象编程特性概述

目录 1. 类和对象 2. 封装&#xff08;Encapsulation&#xff09; 3. 继承&#xff08;Inheritance&#xff09; 4. 多态&#xff08;Polymorphism&#xff09; 5. 抽象&#xff08;Abstraction&#xff09; (1). 抽象类&#xff08;Abstract Class&#xff09; (2).接口…

React(二)——Admin主页/Orders页面/Category页面

文章目录 项目地址一、侧边栏1.1 具体实现 二、Header2.1 实现 三、Orders页面3.1 分页和搜索3.2 点击箭头显示商家所有订单3.3 页码按钮以及分页 四、Category页面4.1 左侧商品添加栏目4.2 右侧商品上传栏 五、Sellers页面六、Payment Request 页面&#xff08;百万数据加载&a…

maven 下载依赖 jhash:2.1.2 和对应 jar 包

原文地址 前言 25年新的一年&#xff0c;那就先更新一篇技术文章吧&#xff0c;这个是这几天刚遇到的一个有意思的bug&#xff0c;记录分享一下 原因分析 在使用maven加载一个项目的时&#xff0c;发现maven的依赖一直无法解析&#xff0c;更换阿里云镜像和中央仓库都没办法…

nums[:]数组切片

问题&#xff1a;给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 使用代码如下没有办法通过测试示例&#xff0c;必须将最后一行代码改成 nums[:]nums[-k:]nums[:-k]切片形式&#xff1a; 原因&#xff1a;列表的切片操作 …

python-leetcode-三数之和

15. 三数之和 - 力扣&#xff08;LeetCode&#xff09; class Solution:def threeSum(self, nums: List[int]) -> List[List[int]]:nums.sort() # 排序n len(nums)res []for i in range(n):# 剪枝&#xff1a;如果当前数 > 0&#xff0c;三数之和不可能为 0if nums[i]…

极狐GitLab 正式发布安全版本17.7.1、17.6.3、17.5.5

本分分享极狐GitLab 补丁版本 17.7.1, 17.6.3, 17.5.5 的详细内容。这几个版本包含重要的缺陷和安全修复代码&#xff0c;我们强烈建议所有私有化部署用户应该立即升级到上述的某一个版本。对于极狐GitLab SaaS&#xff0c;技术团队已经进行了升级&#xff0c;无需用户采取任何…

探索绿色能源系统的固态继电器:2025年展望

随着全球向绿色能源转型的加速&#xff0c;对高效、可靠和环保元件的需求从未如此强烈。在这种背景下&#xff0c;国产固态继电器(SSR)在实现太阳能逆变器、风力涡轮机和储能系统等关键技术方面发挥着关键作用。本文探讨了绿色能源系统背景下中国固态继电器行业的前景&#xff…

Rust语言使用iced实现简单GUI页面

使用cargo新建一个rust项目 cargo new gui_demo cd gui_demo 编辑Cargo.toml文件 ,添加iced依赖 [package] name "gui_demo" version "0.1.0" edition "2021"[dependencies] iced "0.4.2" 编辑src/main.rs文件&#xff1a; u…

Github提交Pull Request教程 Git基础扫盲(零基础易懂)

1 PR是什么&#xff1f; PR&#xff0c;全称Pull Request&#xff08;拉取请求&#xff09;&#xff0c;是一种非常重要的协作机制&#xff0c;它是 Git 和 GitHub 等代码托管平台中常见的功能&#xff0c;被广泛用于参与社区贡献&#xff0c;从而促进项目的发展。 PR的整个过…

RabbitMQ 可观测性最佳实践

RabbitMQ 简介 RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写&#xff0c;支持多种客户端。它通过使用交换机&#xff08;Exchanges&#xff09;、队列&#xff08;Queues&#xff09;和绑定&#xff08;Bindings&#xff09;来路由消息&#xff…