🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2022年CSDN博客之星TOP2,2022年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏
Elasticsearch是一个开源的分布式搜索引擎和数据分析引擎,它是建立在Lucene搜索引擎库之上的。 ElasticSearch被用于搜索、分析、存储、处理和可视化大量数据,其提供了丰富的查询语言、API和工具,可以快速准确地搜索和分析任意类型和大小的数据,而无需在存储或搜索方面做出任何妥协。 Elasticsearch的主要特点包括高可靠性、可扩展性、实时性、全文搜索、多语言支持、聚合分析、自然语言处理和地理空间搜索等功能。
资源文件下载地址:=1001.2014.3001.5503
Elasticsearch是一个基于Lucene的搜索引擎,可以实现全文搜索、分析和实时数据处理。它可以用于处理各种类型的数据,包括文本、数字、地理空间数据等,并可以进行复杂的查询和分析操作。
使用场景如下:GitHub上搜索代码、电商搜索商品、百度、打车。
ELK技术栈是指Elasticsearch、Logstash和Kibana三个开源软件的组合,用于处理大量的日志数据和实现实时分析、搜索和可视化。具体来说,ELK技术栈的作用如下:
Elasticsearch:是一个分布式的搜索和分析引擎,可用于存储、搜索和分析各种类型的数据。它提供高效的全文搜索、聚合和过滤等功能,支持分布式架构,能够快速处理大量数据。
Logstash:是一款数据处理管道,可以用于收集、转换和存储各种类型的数据。它支持多种数据源(如日志文件、消息队列等),可以进行数据清洗、转换和格式化,最终输出到Elasticsearch或其他存储系统。
Kibana:是一款开源的数据可视化工具,可以用于展示和分析Elasticsearch中存储的数据。它提供丰富的图表、表格、地图等可视化组件,支持动态查询、过滤和分析数据。
ELK技术栈广泛应用于日志管理、系统监控、安全分析等领域,可以帮助用户快速发现和解决问题,提高数据分析效率。同时,ELK技术栈还可以与其他工具和系统集成,扩展其功能和应用场景。
Elasticsearch是一种分布式搜索和分析引擎,基于Lucene库构建。Lucene是一个Java库,用于全文检索和文本分析。 Elasticsearch是一个高度可扩展的搜索引擎,它简化了Lucene的使用,提供了基于REST的API,可以轻松地将数据存储和检索到分布式系统中。 Elasticsearch还提供了许多其他功能,例如实时分析,可视化和安全性。与Lucene相比,Elasticsearch更适合处理大量数据和高并发查询。
Mysql数据库性能瓶颈的出现会受到多种因素影响,比如硬件配置、数据库设计、SQL查询优化等,因此无法精确的回答何时会出现性能瓶颈。但是一般情况下,当数据量达到几千万行时,会开始出现性能问题,而当数据量达到上亿行时,性能问题将愈发严重,需要通过优化手段来解决。
一个简单的倒排索引案例可以是一个搜索引擎。当用户在搜索引擎中输入一个查询词时,搜索引擎可以通过倒排索引来快速地找到包含该查询词的文档。
假设有以下三个文档:
我们可以通过以下步骤来创建倒排索引:
通过这种方式,我们可以快速地找到包含任意查询词的文档,而不需要全文检索。例如,当用户在搜索引擎中查询“北京”时,搜索引擎可以直接查找包含“北京”的文档编号,然后返回相应的文档。
正向索引:
倒排索引:
统一的把mysql与elasticsearch的概念做一下对比:
MySQL | Elasticsearch | 说明 |
---|---|---|
Table | Index | 索引(index),就是文档的集合,类似数据库的表(table) |
Row | Document | 文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式 |
Column | Field | 字段(Field),就是JSON文档中的字段,类似数据库中的列(Column) |
Schema | Mapping | Mapping(映射)是索引中文档的约束,例如字段类型约束。类似数据库的表结构(Schema) |
SQL | DSL | DSL是elasticsearch提供的JSON风格的请求语句,用来操作elasticsearch,实现CRUD |
Mysql:擅长事务类型操作,可以确保数据的安全和一致性
Elasticsearch:擅长海量数据的搜索、分析、计算
往往是两者结合使用:
官网:/
ES适用于以下场景:
分布式搜索:ES可以将大量数据分布式存储并索引,实现分布式搜索和聚合。它可以快速搜索和分析大规模日志、文档、网站、社交媒体等数据。
实时数据分析:ES可以对实时数据进行分析,如网络流量监控、实时日志分析等。它支持各种数据源,如Kafka、Logstash、Beats等,并可以将数据进行聚合、统计和可视化。
企业搜索:ES可以构建企业搜索引擎,提供搜索、过滤、聚合、推荐等功能。企业可以通过ES搜索内部文档、邮件、合同、客户数据等各种业务数据。
商品搜索:ES可以构建商品搜索引擎,提供高效的商品搜索、过滤、排序、聚合等功能。它可以快速返回搜索结果,并支持各种推荐算法。
日志分析:ES可以对日志进行实时分析,如错误日志、访问日志、系统监控等。它可以对日志进行分析、聚合、可视化,并发现潜在的问题和异常情况。
地理空间搜索:ES可以支持地理空间搜索和聚合,如查找附近的商家、搜索城市内的房源、分析用户位置等。它可以支持各种地理空间数据类型和查询语法。
1、上传ElasticSearch安装包
alt+p # 打开sftp窗口
# 上传es安装包
put e:/software/elasticsearch-7.4.0-linux-x86_
2、执行解压操作 ,如下图
# 将elasticsearch-7.4.0-linux-x86_解压到opt文件夹下. -C 大写tar -zxvf elasticsearch-7.4.0-linux-x86_ -C /opt
3、创建普通用户
因为安全问题,Elasticsearch 不允许root用户直接运行,所以要创建新用户,在root用户中创建新用户,执行如下命令:
useradd itheima # 新增itheima用户
passwd itheima # 为itheima用户设置密码
4、为新用户授权,如下图
chown -R itheima:itheima /opt/elasticsearch-7.4.0 #文件夹所有者
将 /opt/elasticsearch-7.4.0文件夹授权给itheima用户,由上图可见,我们的文件夹权限赋给了itheima
5、修改l文件
vim /opt/elasticsearch-7.4.0/l
# ======================== Elasticsearch Configuration =========================
cluster.name: my-application
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
cluster.name:配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称
node.name:节点名,elasticsearch会默认随机指定一个名字,建议指定一个有意义的名称,方便管理
network.host:设置为0.0.0.0允许外网访问
http.port:Elasticsearch的http访问端口
cluster.initial_master_nodes:初始化新的集群时需要此配置来选举master
6、修改配置文件
新创建的itheima用户最大可创建文件数太小,最大虚拟内存太小,切换到root用户,编辑下列配置文件, 添加类似如下内容
# 切换到root用户
su root #1. ===最大可创建文件数太小=======
vim /etc/f
# 在文件末尾中增加下面内容
itheima soft nofile 65536
itheima hard nofile 65536
# =====
vim /etc/security/limits.f
# 在文件末尾中增加下面内容
itheima soft nofile 65536
itheima hard nofile 65536
* hard nproc 4096
# 注:* 代表Linux所有用户名称 #2. ===最大虚拟内存太小=======
vim /f
# 在文件中增加下面内容
vm.max_map_count=655360
# 重新加载,输入下面命令:
sysctl -p
7、启动elasticsearch
su itheima # 切换到itheima用户启动
cd /opt/elasticsearch-7.4.0/bin
./elasticsearch #启动
1、创建网络
因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:
docker network create es-net
2、加载镜像
这里我们采用elasticsearch的7.12.1版本的镜像,这个镜像体积非常大,接近1G。不建议大家自己pull。
镜像的tar包文章头部可下载
大家将其上传到虚拟机中,然后运行命令加载即可:
# 导入数据
docker load -i es.tar
同理还有kibana
的tar包也需要这样做。
3、运行
运行docker命令,部署单点es:
docker run -d --name es -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -e pe=single-node" -v es-data:/usr/share/elasticsearch/data -v es-plugins:/usr/share/elasticsearch/plugins --privileged --network es-net -p 9200:9200 -p 9300:9300
elasticsearch:7.12.1
命令解释:
-e "cluster.name=es-docker-cluster"
:设置集群名称-e "http.host=0.0.0.0"
:监听的地址,可以外网访问-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"
:内存大小-e pe=single-node"
:非集群模式-v es-data:/usr/share/elasticsearch/data
:挂载逻辑卷,绑定es的数据目录-v es-logs:/usr/share/elasticsearch/logs
:挂载逻辑卷,绑定es的日志目录-v es-plugins:/usr/share/elasticsearch/plugins
:挂载逻辑卷,绑定es的插件目录--privileged
:授予逻辑卷访问权--network es-net
:加入一个名为es-net的网络中-p 9200:9200
:端口映射配置1、在访问elasticsearch前,请确保防火墙是关闭的,执行命令:
#暂时关闭防火墙
systemctl stop firewalld# 或者#永久设置防火墙状态
systemctl enable firewalld.service #打开防火墙永久性生效,重启后不会复原
systemctl disable firewalld.service #关闭防火墙,永久性生效,重启后不会复原
浏览器输入IP:9200/,如下图
此时elasticsearch已成功启动:
number" : "7.4.0" 表示elasticsearch版本
lucene_version" : "8.2.0" 表示lucene版本
name : 默认启动的时候指定了 ES 实例名称
cluster_name : 默认名为 elasticsearch
查看elastic是否启动
ps -ef|grep elastic
1、什么是Postman
Postman是一款广受欢迎的API开发工具。它提供了一个可视化的界面,使开发人员能够轻松地创建、发送和调试API请求,同时还包括了对响应进行断言和验证的功能。此外,Postman还支持多种协议,包括HTTP、HTTPS、RESTful、SOAP等。它可以帮助团队协作、监视API和模拟数据。Postman可在多种操作系统上运行,包括Windows、Mac OSX和Linux。
官网:/
1、什么是Kibana
Kibana是一个开源的数据分析和可视化平台,它是Elastic Stack中的一员,可以与Elasticsearch、Logstash以及Beats等组件一起使用。Kibana提供了一个直观的Web界面来对Elasticsearch中的数据进行搜索、分析、可视化和管理。它支持多种图表类型和可视化选项,可以帮助用户更好地理解和分析他们的数据。Kibana还提供了可自定义的仪表盘功能,可以将多个可视化组合在一起,从而形成一个完整的数据分析与监控系统。
2、上传kibana
CRT中克隆一个窗口,上传Kibana
put E:softwarekibana-7.4.0-linux-x86_
2、解压kibana
tar -xzf kibana-7.4.0-linux-x86_ -C /opt
解压到当前目录(/opt)下
3、修改kibana配置
vim /opt/kibana-7.4.0-linux-x86_64/l
server.port: 5601
server.host: "0.0.0.0"
server.name: "kibana-itcast"
elasticsearch.hosts: ["127.0.0.1:9200"]
questTimeout: 99999
server.port:http访问端口
server.host:ip地址,0.0.0.0表示可远程访问
server.name:kibana服务名
elasticsearch.hosts:elasticsearch地址
4、启动kibana
由于kibana不建议使用root用户启动,如果用root启动,需要加–allow-root参数
# 切换到kibana的bin目录
cd /opt/kibana-7.4.0-linux-x86_64/bin
# 启动
./kibana --allow-root
启动成功。
5、访问kibana
1.浏览器输入IP:5601/,如下图:
IP:5601/
看到这个界面,说明Kibanan已成功安装。
Discover
:可视化查询分析器
Visualize
:统计分析图表
Dashboard
:自定义主面板(添加图表)
Timelion
:Timelion是一个kibana时间序列展示组件(暂时不用)
Dev Tools
:Console控制台(同CURL/POSTER,操作ES代码工具,代码提示,很方便)
Management
:管理索引库(index)、已保存的搜索和可视化结果(save objects)、设置 kibana 服务器属性。
后台启动
nohup ../bin/kibana &
1、部署
运行docker命令,部署kibana,同理先加载镜像: docker load -i kibana.tar,然后启动:
docker run -d
--name kibana
-e ELASTICSEARCH_HOSTS=es:9200
--network=es-net
-p 5601:5601
kibana:7.12.1
--network es-net
:加入一个名为es-net的网络中,与elasticsearch在同一个网络中-e ELASTICSEARCH_HOSTS=es:9200"
:设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch-p 5601:5601
:端口映射配置kibana启动一般比较慢,需要多等待一会,可以通过命令:
docker logs -f kibana
查看运行日志,当查看到下面的日志,说明成功:
此时,在浏览器输入地址访问:IP:5601,即可看到结果
Elasticsearch的head是一种可视化管理工具,用于管理Elasticsearch集群的健康状态、索引、文档、节点和分片等信息。它可以通过浏览器访问,并提供用户友好的界面,让用户可以方便地执行各种操作,例如搜索、过滤、排序、修改、删除等。head还支持导入和导出数据,以及自定义查询DSL。head是开源软件,可以通过GitHub获取源代码。
1、什么是Node
Node是一个基于Chrome V8引擎的JavaScript运行时环境,用于构建高效的网络应用程序。Node可以在服务器端运行JavaScript代码,并提供了许多内置模块,如文件系统、网络通信、加密等,使得开发者可以轻松地构建高性能的web应用。Node的特点包括非阻塞I/O和事件驱动的编程模型,使得它可以处理大量的并发请求,而不会导致程序阻塞。Node还拥有一个庞大的开源生态系统,许多流行的web框架和工具都可以在Node上使用。
2、下载Node
上一节我们已经安装好了Elasticsearch,接下来我们来安装head插件,由于elasticsearch-head插件是由nodejs语言编写,所以安装elasticsearch-head前需要先安装nodejs。
首先,执行以下命令安装nodejs和grunt
打开虚拟机,执行wget命令下载Node,如下图:
wget .15.2/node-v10.15.
3、解压Node包
tar xvf node-v10.15.
4、设置软连接
解压文件的 bin 目录底下包含了 node、npm 等命令,我们可以使用 ln 命令来设置软连接:
ln -s bin/npm /usr/local/bin/ln -s bin/node /usr/local/bin/
在/etc/profile中配置好path环境变量
vi ~/.bash_profileexport NODE_HOME=/opt/nodejs/node-v10.15.2-linux-x64export PATH=$PATH:$NODE_HOME/bin
保存退出,使文件生效
source ~/.bash_profile
查看node安装版本,执行 node -v 验证安装如下图:
安装grunt(运行在Node.js上面的任务管理器(task runner)),为了获得Grunt的更多产品特性,需要全局安装Grunt’s 命令行接口(CLI),使用npm进行安装,如下:
npm install -g grunt-cli
查看grunt版本
输出grunt版本信息,表示安装成功。
git yum install git -y
git clone git://github/mobz/elasticsearch-head.git
cd elasticsearch-head
在运行之前我们需要修改下l,因为ES默认不开启跨域访问,需要添加以下配置:
#开启cors跨域访问支持,默认为false
abled: true
#跨域访问允许的域名地址,(允许所有域名)以上使用正则
s.allow-origin: "*"
然后开始执行运行命令:
npm run start
浏览器输入ip:port:9100,如下图
看到这个界面说明我们的head插件成功安装并且成功连接Elasticsearch。
概念 | 描述 |
---|---|
索引(Index) | 包含多个文档的逻辑容器,类似于数据库中的表 |
文档(Document) | 一组字段(Key-Value)的集合,类似于数据库中的记录,每个文档都有一个唯一的ID |
字段(Field) | 文档中的每个键值对,类似于数据库中的列 |
映射(Mapping) | 定义了文档中的字段和它们在ElasticSearch中的类型,指定了每个索引中的文档应该如何被分析和存储 |
分片(Shard) | 将索引分成多个分片来分布式存储和处理数据。每个分片是一个独立的Lucene索引 |
副本(Replica) | 每个分片可以有多个副本,用于提高搜索和读取速度,以及实现高可用性 |
节点(Node) | ElasticSearch集群中的一个服务实例,可以存储和处理数据,参与搜索和聚合操作 |
集群(Cluster) | 一个或多个节点组成的逻辑集合,用于共同处理和存储数据,并提供搜索和聚合操作 |
搜索(Search) | 使用查询语句来检索文档的过程。查询可以包括搜索词、过滤条件、排序参数等 |
聚合(Aggregation) | 使用聚合语句来汇总和统计文档的过程。聚合可以包括计数、求和、平均、最大、最小等操作 |
亲爱的读者,
我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。
如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。
我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。
如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。
再次感谢您的阅读和支持!
最诚挚的问候, “愚公搬代码”
本文发布于:2024-01-30 19:07:43,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170661286522192.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |