【ELK 学习】ElasticSearch

ELK:ElasticSearch存储,Logstash收集,Kibana展示

版本较多,使用时需要版本匹配,还需要和mysql版本匹配(elastic官网给了版本对应关系)

本次使用的版本es6.8.12

filebeat 轻量级的数据收集工具

ElasticSearch为文档搜索产生的

分布式文档搜索,lucene单线程搜索的组合

ElasticSearch 除了java也支持python

0.作用

大数据时代产生的应用:

1.分布式存储:hdfs

2.分布式计算:

离线计算:MapReduce、hive

实时计算:spark、Flink

3.分布式搜索引擎:ElasticSearch

海量数据、近实时处理

1. 核心概念

Index,Type,Document

对应到数据库:

数据库database=Index

表table=Type

一条记录row=Document

Index下面可以存储不同的type,但是大部分要相同,type是作为一个字段存储的(7.0之后不建议使用)

8.0之后一个index只能存储相同 type 的数据

shard,replica

hdfs的存储是物理切块(block)

primary shard 切片存储

replica shard 容错存储,每个切片都有一个容错副本

切片自己和容错存在不同的服务器(节点)上(部署集群)

2. 下载安装

windows版本

bin目录下,elasticsearch.bat点击启动

3. es的基本操作

Elasticsearch提供了基于JSON的DSL来定义查询
DSL语法
常用指令1
常用指令2

获取所有_cat命令

curl -X GET localhost:9200/_cat

检查集群健康状况

bash 复制代码
curl -X GET localhost:9200/_cat/health?v

epoch: 时间戳的 Unix 时间戳格式,表示快照生成的时间。

timestamp: 可读性更强的时间戳格式,表示快照生成的时间(08:06:34)。

cluster: Elasticsearch 集群的名称,这里是 "es-cluster"。

status: 集群的健康状态,这里是 "yellow"。Elasticsearch 集群状态通常有三种:green(绿色,健康),yellow(黄色,部分健康),red(红色,不健康)。"yellow" 状态表示集群中的某些副本不可用,但主分片是可用的。

node.total: 集群中节点的总数,这里是 1 个节点。

node.data: 充当数据节点的节点数,这里是 1 个节点。

shards: 集群中分片的总数,这里是 98 个分片。

pri: 主分片(primary shard)的数量,这里是 98 个主分片。

relo: 正在进行重新定位的分片数量,这里是 0。

init: 初始化的分片数量,这里是 0。

unassign: 未分配的分片数量,这里是 27。

pending_tasks: 挂起的任务数,这里是 0。

max_task_wait_time: 最大任务等待时间,这里是没有具体数值。

active_shards_percent: 活动分片的百分比,这里是 78.4%。这表示在集群中,有 78.4% 的分片是活动的,而剩下的可能是不可用或者正在恢复的。

查看es节点信息

bash 复制代码
curl -X GET localhost:9200/_cat/nodes?v

ip: 节点的IP地址,这里是"192.168.52.11"。

heap.percent: 节点的堆内存使用百分比,这里是67%。

ram.percent: 节点的系统内存使用百分比,这里是98%。

cpu: 节点的CPU使用率,这里是10%。

load_1m: 1分钟负载平均值,这里是0.69。

load_5m: 5分钟负载平均值,这里是0.36。

load_15m: 15分钟负载平均值,这里是0.50。

node.role: 节点的角色,这里是"",表示这是一个主节点(master node)。
master: 指示该节点是否是主节点,这里是"
",表示它是主节点。

name: 节点的名称,这里是"node-1"。

查看es指定节点信息

bash 复制代码
curl -X GET localhost:9200/_nodes/node-1?pretty=true

4. 索引

查看es中所有的索引

bash 复制代码
curl -X GET localhost:9200/_cat/indices?v

health: 索引的健康状态,这里是 "yellow"。Elasticsearch 索引的健康状态有三种:green(绿色,健康),yellow(黄色,部分健康),red(红色,不健康)。"yellow" 状态表示索引的某些分片处于未分配状态,但主分片是可用的。

status: 索引的状态,这里是 "open"。这表示索引处于打开状态,可以进行读取和写入操作。

index: 索引的名称,这里是 "nginx-access-log-2023.09.13"。

uuid: 索引的唯一标识符。

pri: 主分片(primary shard)的数量,这里是 1 个主分片。

rep: 副本分片(replica shard)的数量,这里也是 1 个副本分片。

docs.count: 索引中文档的总数,这里是 20。

docs.deleted: 索引中已删除的文档数量,这里是 0。

store.size: 索引的存储大小,这里是 34.1KB。

pri.store.size: 主分片的存储大小,这里也是 34.1KB。

创建索引

bash 复制代码
curl -X PUT localhost:9200/索引名字

查询索引

bash 复制代码
curl -X GET localhost:9200/索引名字

删除索引

bash 复制代码
curl -X DELETE localhost:9200/索引名字

更新索引

覆盖更新
bash 复制代码
curl -X DELETE localhost:9200/索引名字
局部更新
bash 复制代码
# 追加新增字段
POST /data/_bulk
{"update":{"_id":"1"}}
{"doc":{"title":"this is java and elasticsearch blog"}}

聚合分析

分组 count

用字符串分组需要指定fileddate=true

条件判断

平均数,求和

4. es的扩容实现

垂直扩容:节点扩容

水平扩容:添加新节点

水平扩容用的比较多

5. 常见报错

点击跳转

相关推荐
爱吃西瓜的小菜鸡11 分钟前
【C语言】判断回文
c语言·学习·算法
小A15933 分钟前
STM32完全学习——SPI接口的FLASH(DMA模式)
stm32·嵌入式硬件·学习
岁岁岁平安1 小时前
spring学习(spring-DI(字符串或对象引用注入、集合注入)(XML配置))
java·学习·spring·依赖注入·集合注入·基本数据类型注入·引用数据类型注入
武昌库里写JAVA1 小时前
Java成长之路(一)--SpringBoot基础学习--SpringBoot代码测试
java·开发语言·spring boot·学习·课程设计
qq_589568101 小时前
数据可视化echarts学习笔记
学习·信息可视化·echarts
兔C2 小时前
微信小程序的轮播图学习报告
学习·微信小程序·小程序
海海不掉头发2 小时前
苍穹外卖-day05redis 缓存的学习
学习·缓存
小木_.3 小时前
【Python 图片下载器】一款专门为爬虫制作的图片下载器,多线程下载,速度快,支持续传/图片缩放/图片压缩/图片转换
爬虫·python·学习·分享·批量下载·图片下载器
一棵开花的树,枝芽无限靠近你3 小时前
【PPTist】组件结构设计、主题切换
前端·笔记·学习·编辑器
犬余4 小时前
设计模式之桥接模式:抽象与实现之间的分离艺术
笔记·学习·设计模式·桥接模式