当前位置: 首页 > news >正文

Elasticsearch介绍与应用

Elasticsearch介绍与应用

在这里插入图片描述

Elasticsearch的官方文档。

Elasticsearch官网参考文档:https://www.elastic.co/guide/index.html

Elasticsearch官方下载地址:https://www.elastic.co/cn/downloads/elasticsearch

mvnrepository依赖库地址:https://mvnrepository.com/

image-20230625204312287

Elasticsearch是做什么的

Elasticsearch是一种开源分布式搜索和分析引擎,它可以帮助用户快速地存储、搜索、分析和可视化大量的数据。Elasticsearch使用Lucene作为其基础搜索引擎,可以处理海量的结构化和非结构化数据,并提供实时搜索和分析功能。它可以跨多个服务器构建集群,并自动处理数据分片、负载均衡和故障转移,从而保证了高可用性和可扩展性。Elasticsearch还提供了灵活的RESTful API,使得开发人员可以很容易地与之交互。Elasticsearch被广泛应用于各种领域,如搜索、数据分析、电子商务、日志分析、安全信息和业务智能等领域。

Elasticsearch有哪些重要场景

Elasticsearch在以下场景中非常有用:

  1. 搜索场景:Elasticsearch可以帮助构建实时搜索引擎,支持全文搜索、自动补全、分类搜索等功能。这使得Elasticsearch经常被应用在文本搜索、电子商务、新闻门户等领域。

  2. 数据分析场景:Elasticsearch可以帮助处理海量数据,并支持实时的数据聚合、统计和分析。这使得Elasticsearch经常被应用在数据分析、监控、报表等领域。

  3. 日志分析场景:Elasticsearch可以非常高效地处理大量日志数据,并支持实时的、可视化的日志分析和搜索等功能。这使得Elasticsearch经常被应用在日志分析、系统监控等领域。

  4. 安全信息场景:Elasticsearch可以帮助存储和分析访问日志、安全日志等安全信息,并提供实时告警和分析等功能。这使得Elasticsearch经常被应用在网络安全、信息安全等领域。

  5. 业务智能场景:Elasticsearch可以帮助构建实时的业务智能服务,支持数据挖掘、机器学习和预测等功能。这使得Elasticsearch经常被应用在业务智能、营销分析等领域。

Elasticsearch适用于那些语言开发

Elasticsearch支持多种编程语言的客户端库,这些客户端库使得开发人员可以使用自己喜欢的语言与Elasticsearch进行交互,包括:

java,python,PHP,GO,C#…

此外,Elasticsearch还提供了一个RESTful API,使得可以使用任何支持HTTP请求的编程语言与Elasticsearch进行通信。这使得开发人员可以使用自己熟悉的语言和工具与Elasticsearch集成。

Elasticsearch的安装配置

注意事项(不建议使用docker部署Elasticsearch,坑太多,大家直接下载包在win或者Linux上部署,听说哈,不允许root用户部署)

创建网络

创建一个公用网络,使得kibana和Elasticsearch可以完成互联

docker network create es-net

拉取镜像

docker pull elasticsearch:8.6.0

创建挂载点目录

mkdir -p /usr/local/src/soft/es/data /usr/local/src/soft/es/config /usr/local/src/soft/es/plugins

文件授权

chmod 777  /usr/local/src/soft/es/data
chmod 777  /usr/local/src/soft/es/config
chmod 777  /usr/local/src/soft/es/plugins

启动容器

docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/src/soft/es/data:/usr/share/elasticsearch/data \
-v /usr/local/src/soft/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:8.6.0

它将Elasticsearch 8.6.0映像用作容器。这里是每个参数的解释:

  • -d:将容器作为后台守护进程运行。
  • --restart=always:当容器异常退出时,自动重启容器。
  • --name es:将容器命名为 “es”。
  • --network es-net:将容器加入名为 “es-net” 的Docker网络。
  • -p 9200:9200:将容器的9200端口映射到主机的9200端口。
  • -p 9300:9300:将容器的9300端口映射到主机的9300端口。
  • --privileged:授予容器特权,允许它执行特殊功能。
  • -v /usr/local/soft/es/data:/usr/share/elasticsearch/data:将主机的/usr/local/soft/es/data目录挂载到容器的/usr/share/elasticsearch/data目录,让Elasticsearch作为节点的数据持久化存储。
  • -v /usr/local/soft/es/plugins:/usr/share/elasticsearch/plugins:将主机的/usr/local/soft/es/plugins目录挂载到容器的/usr/share/elasticsearch/plugins目录,将Elasticsearch插件安装目录挂载到容器中。
  • -e "discovery.type=single-node":将集群发现设置为通过使用单节点模式(默认情况下Elasticsearch期望与其他节点通信)。
  • -e "ES_JAVA_OPTS=-Xms512m -Xmx512m":将Java运行时的堆内存设置为512MB。
  • elasticsearch:8.6.0:要运行的映像的名称和标签。

这个命令的目的是使用Docker来创建一个运行Elasticsearch的容器。

编写elasticsearch.yml配置文件

docker exec -it es /bin/bash
cd config
echo 'xpack.security.enabled: false' >> elasticsearch.yml  #关闭密码安全验证

不关闭访问9200端口会有一个密码校验

image-20230626191138829

重启容器

docker restart es

访问虚拟机地址+端口号,前面配置Elasticsearch 的端口号为:9200

Kibana的安装配置

Kibana是一个开源的、基于Web的数据分析和可视化工具,主要用于Elasticsearch的数据分析和可视化。它提供了一个用户友好的界面,可以对Elasticsearch中的数据进行搜索、过滤、聚合、图表化等操作,帮助用户更好地理解和分析数据。Kibana通常与Elasticsearch一起使用,用于构建实时的数据仓库和分析平台。

要使用Docker静默安装kibana:8.6.0你可以按照以下步骤操作:

拉取镜像

docker pull kibana:8.6.0

创建挂载点目录

mkdir -p /usr/local/src/soft/kibana/config /usr/local/src/soft/kibana/data

部署kibana,创建kibana容器

docker run -d \
--restart=always \
--name kibana \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
kibana:8.6.0

这是一个Docker运行命令,它将Kibana 8.6.0映像用作容器。以下是每个参数的解释:

  • -d:将容器作为后台守护进程运行。
  • --restart=always:当容器异常退出时,自动重启容器。
  • --name kibana:将容器命名为 “kibana”。
  • --network es-net:将容器加入名为 “es-net” 的Docker网络。
  • -p 5601:5601:将容器的5601端口映射到主机的5601端口。
  • -e ELASTICSEARCH_HOSTS=http://es:9200:将Elasticsearch的地址设置为“http://es:9200”,其中“es”是Elasticsearch容器的名称,而不是IP地址或主机名。这使得Kibana可以连接到内部的Elasticsearch容器。
  • kibana:8.6.0:要运行的映像的名称和标签。

此命令的目的是在Docker中创建一个运行Kibana的容器。

访问虚拟机地址+端口号,前面配置Kibana 的端口号为:5601

端口放行

在CentOS系统上,您可以使用Firewalld来管理防火墙设置。为使Kibana和Elasticsearch在5601和9200,9300端口上可以正常工作,您需要放行这两个端口,可以按照以下步骤来完成设置:

  1. 开启防火墙服务:

    sudo systemctl start firewalld
    
  2. 检查防火墙状态:

    sudo firewall-cmd --state
    
  3. 开放端口,运行以下命令:

    sudo firewall-cmd --add-port=5601/tcp --permanent
    

    这将允许TCP流量在5601端口上传输。

  4. 开放9200,9300端口,运行以下命令:

    sudo firewall-cmd --add-port=9200/tcp --permanent
    sudo firewall-cmd --add-port=9300/tcp --permanent
    

    这将允许TCP流量在9200端口上传输。

  5. 禁用SELinux保护:

    sudo setsebool -P httpd_can_network_connect on
    

    如果不禁用SELinux,可能会出现无法从Kibana页面访问Elasticsearch的情况。

  6. 重新加载防火墙规则:

    sudo firewall-cmd --reload
    

现在,防火墙已经配置好了,端口5601和9200现在应该可以用于Kibana和Elasticsearch了。

访问测试

image-20230626191242638

image-20230626191321391

最后,向Acloasia致敬,文章精彩,细致!

https://blog.csdn.net/Acloasia/article/details/130683934

相关文章:

Elasticsearch介绍与应用

Elasticsearch介绍与应用 Elasticsearch的官方文档。 Elasticsearch官网参考文档:https://www.elastic.co/guide/index.html Elasticsearch官方下载地址:https://www.elastic.co/cn/downloads/elasticsearch mvnrepository依赖库地址:http…...

JavaEE规范

Servlet:用于开发 Web 应用程序的 API,定义了处理 HTTP 请求和响应的方式。JSP(JavaServer Pages):一种在服务器端生成动态网页的技术,允许将 Java 代码嵌入到 HTML 页面中。(注意JSP本质就是一个Servlet)J…...

嵌入式实时操作系统的设计与开发New(八)

创建线程 用户在基于RTOS开发应用程序前,首先要创建线程。 用户创建一个线程时须指定用户希望采用的调度策略。 例如,用户想创建一个周期性执行的线程: acoral_period_policy_data_t* data; data acoral_malloc(sizeof(acoral_period_poli…...

MySQL事务相关笔记

杂项 InnoDB最大特点:支持事务和行锁; MyISAM不支持事务 介绍 一个事务是由一条或者多条对数据库操作的SQL语句所组成的一个不可分割的单元,只有当事务中的所有操作都正常执行完了,整个事务才会被提交给数据库。事务有如下特性…...

如何利用AI高效率快速调色

在设计行业中,时间是非常宝贵的资源,而设计师们常常需要应对繁忙的工作日程和紧迫的截止日期。为了提高工作效率和节省时间,越来越多的设计师开始利用人工智能(AI)技术中的高效调色功能。本文将介绍如何利用AI高效率快…...

数据结构--顺序表的基本操作--插入 and 删除

数据结构–顺序表的基本操作–插入 顺序表的插入操作 实现目标 ListInsert(&L,i,e):插入操作。在表L中的第i个位置上插入指定元素e。 typedef struct {int data[MaxSize];int len; }Sqlist;代码实现&#xff1a; #include <stdio.h> #include <stdlib.h> …...

BCSP-玄子Java开发之Java Web编程CH01_初识动态网页

BCSP-玄子Java开发之Java Web编程CH01_初识动态网页 1.1 B/S架构 B/S架构&#xff1a;浏览器/服务器 程序完全部署在服务器上使用浏览器访问服务器无需单独安装客户端软件 为什么要使用B/S架构 B/S与C/S比较B/S架构C/S架构软件安装浏览器需要专门的客户端应用升级维护客户…...

【软件教程】农林生环、水文、海洋、水环境、大气科学、人工智能、碳中和、碳排放、3S、R与统计等软件模型

本文涉及领域水文水资源、大气科学、农林生态、地信遥感、统计分析、编程语言等... 从软件基础到实践案例应用操作&#xff0c;手把手教学&#xff0c;提供永久回放观看和助学群长期辅助指导。适合课题组人员一站式学习&#xff0c;科研人员技术提升、企业单位工程项目、高校论…...

如何加入开源社

开源社成立于 2014 年&#xff0c;是由志愿贡献于开源事业的个人成员&#xff0c;依 “贡献、共识、共治” 原则所组成&#xff0c;始终维持厂商中立、公益、非营利的特点&#xff0c;是最早以 “开源治理、国际接轨、社区发展、项目孵化” 为使命的开源社区联合体。开源社积极…...

软件开发中的破窗效应

应该有很多人已经知道破窗效应【注1】这个社会学 &#xff08;犯罪学&#xff09;的词语&#xff0c;破窗效应最先由社会学家James Q. Wilson和George L. Kelling在一篇名为《Broken Windows》的文章中提出【注2】&#xff1a; “一个房子如果窗户破了&#xff0c;没有人去修补…...

机器视觉初步6-1:基于梯度的图像分割

把基于梯度的图像分割单独拿出来。 文章目录 一、图像梯度相关算子的原理1. Sobel算子2. Prewitt算子3. Roberts算子 二、python和halcon算子实现1.python实现2.halcon实现 基于梯度的图像分割方法利用像素之间的梯度信息来进行图像分割。 梯度 1是图像中像素灰度值变化最快的…...

从0开始,精通Go语言Rest微服务架构和开发

说在前面 现在拿到offer超级难&#xff0c;甚至连面试电话&#xff0c;一个都搞不到。 尼恩的技术社区中&#xff08;50&#xff09;&#xff0c;很多小伙伴凭借 “左手云原生右手大数据”的绝活&#xff0c;拿到了offer&#xff0c;并且是非常优质的offer&#xff0c;据说年…...

Sui x KuCoin Labs夏季黑客松|本周Workshop预告

自Sui x KuCoin Labs夏季黑客松推出以来已有四周的时间&#xff0c;期间收获了众多开发者的积极报名和热情参与。随着黑客松报名即将进入尾声&#xff0c;同期举办的Workshop也迎来了本周的最后一波。​本周的黑客松Workshop邀请到MoveEX和Mirror World的负责人作为嘉宾为大家带…...

从电源 LED 读取智能手机的秘密?

研究人员设计了一种新的攻击方法&#xff0c;通过记录读卡器或智能手机打开时的电源 LED&#xff0c;使用 iPhone 摄像头或商业监控系统恢复存储在智能卡和智能手机中的加密密钥。 众所周知&#xff0c;这是一种侧信道攻击。 通过密切监视功耗、声音、电磁辐射或执行操作所需…...

【Linux编辑器-vim使用】

目录 Linux编辑器-vim使用1.vim的基本概念2.vim的基本操作3.vim正常模式命令集4.vim末行模式命令集 Linux编辑器-vim使用 1.vim的基本概念 目前了解的vim有三种模式&#xff08;其实有好多模式&#xff09;&#xff0c;分别是命令模式、插入模式和底行模式&#xff0c;各模式…...

安装Apache mysql php

目录 一.Apache网站服务 Apache——》静态页面处理——》将静态处理交给PHP Apache简介 安装Apache服务 ​编辑 安装软件思路 二.安装mysql数据库 1. 安装依赖包 2.创建程序用户管理 3.加压安装包 这边就安装完成了​编辑 重点来了 报错了 没有空间 我最后的解决 方法…...

【人工智能】— 神经网络、前向传播、反向传播、梯度下降、局部最小值、多层前馈网络、缓解过拟合的策略

【人工智能】— 神经网络、前向传播、反向传播 前向传播反向传播梯度下降局部最小值多层前馈网络表示能力多层前馈网络局限缓解过拟合的策略 前向传播和反向传播都是神经网络训练中常用的重要算法。 前向传播是指将输入数据从输入层开始经过一系列的权重矩阵和激活函数的计算后…...

小文智能自定义变量详解

在小文交互场景设计时&#xff0c;有一个特殊功能&#xff0c;叫做自定义变量。有时&#xff0c;根据外呼对象的不同&#xff0c;需要对用户传达不同的内容&#xff0c;比如称呼、地址、公司名称等等。此时&#xff0c;就可以使用小文交互的自定义变量功能来实现对不同用户呼出…...

平面电磁波的反射与折射,极化滤波作用

目录 引言 反射定律和折射定律 反射系数和折射系数 平面电磁波在理想介质分界面上的全反射和全折射 全反射 全折射 极化滤波作用 平面电磁波在良导体上的反射与折射 引言 再复杂的电磁波我们都可以看作是很多平面电磁波的叠加 我们在前面介绍的时候&#xff0c;我们认…...

键盘当鼠标用

当鼠标坏掉又需要使用电脑时发现触控板也不能用这就很烦那么键盘当鼠标用教程来了 使用键盘当鼠标的步骤如下&#xff1a; 1. 按住“AltShiftNum Lock”快捷键&#xff0c;弹出鼠标键开启咨询框&#xff0c;点击“是”按钮。 小键盘的数字就是方向/和*就是左右键切换5是单击 …...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...