{
"name" : "data-slave1",
"cluster_name" : "data-es",
"cluster_uuid" : "xxxxxxxxxx-eMwxw",
"version" : {
"number" : "7.2.1",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "fkg6eb20",
"build_date" : "2021-07-24T17:58:29.979462Z",
"build_snapshot" : false,
"lucene_version" : "8.0.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
cat aliases 命令用于显示索引的别名,也包括过滤器和路由信息。
GET /_cat/aliases?v
cat allocation命令可以查看每个节点分配的分配数量以及它们所使用的硬盘空间大小
GET /_cat/allocation?v
cat count 命令可以快速查询整个集群或者单个索引的文档数量。
GET /_cat/count?v
GET /_cat/count/[索引名称]?v
cat fielddata命令用于查看当前集群中每个数据节点上被fielddata所使用的堆内存大小。
GET /_cat/fielddata?v
在Elasticsearch中,Field Data是用于在聚合(aggregation)和排序(sorting)操作中对文档字段进行分析和处理的一种数据结构。它是一个缓存在内存中的数据结构,用于快速访问和处理字段值。
Field Data可以被认为是对文档字段进行预处理的一种形式,它将字段值从原始的文本形式转换成可供聚合和排序操作使用的数据类型。例如,将一个字符串形式的日期字段转换成一个时间戳,或将一个字符串形式的数字字段转换成一个数字。
使用Field Data可以有效地提高聚合和排序操作的性能,因为它可以避免在每次操作中都对原始字段值进行解析和转换。此外,Field Data还可以通过使用缓存来进一步提高性能,以便更快地访问和处理字段值。
然而,Field Data也有一些限制和注意事项。首先,Field Data需要占用一定的内存空间,因此在处理大量数据时可能会导致内存消耗过高。其次,Field Data只能在不可变的字段上使用,因为一旦字段值发生变化,就需要重新生成Field Data。
为了使用Field Data,可以在字段映射中将字段的fielddata属性设置为true。例如,以下是一个将timestamp字段设置为可使用Field Data的映射示例:
{
"mappings": {
"properties": {
"timestamp": {
"type": "date",
"fielddata": true
}
}
}
}
需要注意的是,在大多数情况下,Elasticsearch会自动选择合适的字段数据存储方式。因此,只有在确实需要对字段进行聚合和排序操作时,才需要显式地启用Field Data。
cat health 命令用于显示集群的健康信息。
GET /_cat/health?v
cat indices命令可以查看索引信息,包括索引健康状态、索引开关状态、分片数、副本数、文档数量、标记为删除的文档数量、占用的存储空间等信息
GET /_cat/indices?v
cat master命令可以显示master节点的节点ID、绑定的IP和节点名
GET /_cat/master?v
cat nodeattrs命令可以显示指定节点的属性信息。
GET /_cat/nodeattrs?v
cat nodes命令可以查看集群拓扑结构
GET /_cat/nodes?v
cat pending_tasks命令用于查看正在执行的任务列表。
GET /_cat/pending_tasks?v
cat plugins命令用于查看每一个节点所运行插件的信息
GET /_cat/plugins?v
cat recovery命令是一个索引分片恢复的视图,包括恢复中的先前已完成的。
GET /_cat/recovery?v
cat repositories 命令用于展示集群中注册的快照库
GET /_cat/repositories?v
cat thread_pool命令用于展示集群中每一个节点线程池的统计信息。默认情况下返回所有线程池的active、queue和rejected的统计信息
GET /_cat/thread_pool?v
elasticsearch的线程池很多种类吗?
是的,Elasticsearch的线程池名字有很多个。每个线程池都有自己的名称,用于标识和区分不同的线程池。以下是一些常见的线程池名称:
- index:用于执行索引操作的线程池。
- search:用于执行搜索操作的线程池。
- bulk:用于执行批量操作的线程池。
- get:用于执行获取操作的线程池。
- suggest:用于执行自动补全操作的线程池。
- snapshot:用于执行快照和恢复操作的线程池。
此外,Elasticsearch还支持自定义线程池,可以根据需要创建自己的线程池并提供相应的名称。可以通过Elasticsearch的管理接口查看和监控线程池的状态和性能指标。
Elasticsearch中的线程池是用于处理各种任务的线程池。线程池是一种管理和复用线程的机制,可以提高系统的效率和性能。
Elasticsearch中有几种不同类型的线程池,每种类型都用于处理特定类型的任务。以下是一些常见的线程池类型:
线程池类型:用于处理索引操作。这种线程池用于执行索引操作,如文档的索引、更新和删除。它的线程数通常会根据可用的处理器核心数自动调整。
除了以上列出的线程池类型,Elasticsearch还有其他一些专用的线程池,用于处理一些特殊的任务,如批量操作线程池、监听器线程池和管理任务线程池等。
总的来说,线程池在Elasticsearch中是非常重要的,它可以高效地管理系统的资源,并提供并发处理能力,从而提高系统的性能和吞吐量。
cat shards 命令用于查看节点包含的分片信息,包括一个分片是主分片还是一个副本分片、文档的数量、硬盘上占用的字节数、节点所在的位置等信息。
GET /_cat/shards/.monitoring-es-7-2024.01.23?v
cat segments 命令用于查看索引的段信息
GET /_cat/segments/.monitoring-es-7-2024.01.23?v
cat templates命令用于查看集群中的模板
GET /_cat/templates?v
利用ElasticSearch的集群健康API可以查看当前集群的健康信息
GET _cluster/health
获取一个或多个索引的健康信息
GET /_cluster/health/.monitoring-es-7-2024.01.23
Cluster State(集群状态)API 可以对整个集群的信息进行一个全面的了解,包括集群信息、集群中每个节点的信息、元数据、路由表等。
GET /_cluster/state
Cluster Stats (集群统计)API用于从集群中获取各种统计数据。该API的返回信息主要有两部分,一部分是索引层面,包括分片数、存储大小、内存使用情况等指标,另一部分是节点层面,包括节点数量、节点角色、操作系统、jvm版本、内存、CPU、安装的插件等指标。
GET /_cluster/stats
Pending Cluster Tasks API 用于返回一个正在添加到更新集群状态的任务列表。集群中的变化通常是很快的,通常这个操作会返回一个空的列表
GET /_cluster/pending_tasks
reroute命令可以明确地执行集群重新路由分配命令。例如,把一个分片从一个节点移动到另一个节点,把未分配的分片移动到一个指定的节点
POST /_cluster/reroute
{
"commands":[
{
"move":{
"index":"test",
"shard":0,
"from_node":"node1",
"to_node":"node2"
}
},
{
"allocate_replica":{
"index":"test",
"shard":1,
"node":"node3"
}
}
]
}
Update Settings命令可以更新集群中的配置,如果是永久配置,就需要重启集群;如果是瞬时配置,就不需要重启集群。例如,更新最小master节点数
PUT /_cluster/settings
{
"persistent":{
"discovery.zen.minimum_master_nodes": 1
}
}
Cluster Nodes Stats(集群节点统计信息) API可以获取集群中一个或者多个节点的统计信息。
GET /_nodes/stats
GET /_nodes/nodeId1,nodeId2/stats
Cluster Nodes Info API 可以获取集群中一个或多个节点的信息,包括设置、操作系统、虚拟机、线程池等信息。
GET /_nodes
GET /_nodes/os,jvm
Task Management API 可用于获取ElasticSearch集群中一个或多个节点正在执行中的任务信息。
GET /_tasks
Cluster Allocation Explain API 用于解释分片没有被分配的原因。
GET /_cluster/allocation/explain
{
"index":".monitoring-es-7-2024.01.23",
"shard":0,
"primary":true
}