首页 > 其他分享 >Elasticsearch常用命令

Elasticsearch常用命令

时间:2023-07-24 14:14:53浏览次数:47  
标签:http 索引 常用命令 cluster Elasticsearch 分片 10.244 节点

Elasticsearch 简介

Elasticsearch是一个基于Lucene的搜索和数据分析工具,它提供了一个分布式服务。Elasticsearch是遵从Apache开源条款的一款开源产品,是当前主流的企业级搜索引擎。

1. 特点

  • 分布式的实时文件存储,每个字段都被索引并可被搜索
  • 分布式的实时分析搜索引擎
  • 可弹性扩展到上百台服务器规模,处理PB级结构化或非结构化数据
  • 开箱即用,他提供了许多合理的缺省值,并对初学者隐藏了复杂的搜索引擎理论。只需要很少的学习即可在生产环境中使用

2. 概念

下列有一些概念是Elasticsearch的核心。从一开始就理解这些概念将极大地帮助简化学习Elasticsearch的过程。

2.1 近实时

Elasticsearch是一个近乎实施的搜索平台。这意味着从索引文档到可搜索文档的时间有一点延迟(通常是一秒)

2.2 集群

集群是一个或多个节点的集合,他们共同保存您的整个数据,并提供跨所有节点的联合索引和搜索功能。集群由唯一的名称标识,默认情况下为“Elasticsearch”。此名称很重要,因为如果节点设置为按名称加入集群,则该节点只能是集群的一部分。确保不要在不同的环境中重用相同的集群名称,否则很可能回导致节点加入错误的集群。

2.3 节点

节点是作为集群一部分的单个服务器,存储数据并参与集群的索引和搜素功能。就像集群一样,节点由名称标识,默认情况下,该名称是在启动时分配给节点的随机通用唯一标识符(UUID)。如果不需要默认值,可以定义所需的任何节点名称。此名称对于管理目的非常重要,您可以在其中识别网络中那些服务器与Elasticsearch集群中的哪些节点相对应。

可以将节点配置为按集群名称加入特定群集。默认情况下,每个节点都设置为加入一个名为cluster的集群elasticsearch,这意味着如果您在网络上启动了许多节点并且假设它们可以相互发现,它们将自动形成并加入一个名为elasticsearch的集群。

在单个集群中,可以拥有任意数量的节点。此外,如果网络上当前没有其他Elasticsearch节点正在运行,则默认情况下启动单个节点将形成一个名为elasticsearch的新单节点集群。

2.4 索引

索引是具有某些类似特征的文档集合。

例如:可以给客户数据建立一个索引,给产品目录建立另一个索引或订单数据建立一个索引。

索引有一个名称标识(必须全部小写),此名称用于在对其中的文档执行索引,搜索,更新和删除操作时引用索引所用。在单个集群中,您可以根据需要定义任意数量的索引。

2.5 类型

type是一个逻辑意义上的分类或者叫分区,允许在同一索引中建立多个type。本质是相当于一个过滤条件,高版本将会废弃type概念。

2.6 文档

文档是可以编制索引的基本信息单元。例如,您可以为单个客户提供文档,为单个产品提供另一个文档,为单个订单提供另一个文档。该文档以JSON(JavaScript Object Notation)表示,JSON是一种普遍存在的互联网数据交换格式。

在索引/类型中,可以根据需要存储任意数量的文档。

值得注意的是,尽管文档实际上驻留在索引中,但实际上必须将文档分配给索引中的一个类型(type)中。

2.7 分片

索引可能存储大量可能超过单个节点硬件限制的数据。例如,占用1TB磁盘空间的十亿个文档的单个索引可能不适合单个节点的磁盘,或者可能太慢而无法单独从单个节点提供搜索请求。

为了解决这个问题,Elasticsearch提供了将索引细分为多个称为分片的功能。创建索引时,只需定义所需的分片数即可。每个分片本身都是一个功能齐全且独立的”索引“,可以托管在集群中的任何节点上。

分片很重要,主要有两个原因:

  • 它允许集群进行水平扩展
  • 它允许集群跨分片(可能在多个节点上)分布和并行化操作,从而提供性能和吞吐量。

分片的分布方式以及如何将其文档聚合搜索请求的机制完全由Elasticsearch管理,对用户而言是透明的。

2.8 副本

副本主要是针对主分片的复制,Elasticsearch中主分片可以拥有0个或多个副本。

副本分片的主要目的就是为了故障转移。

分片副本很重要,主要有两个原因:

  • 它在分片或节点发生故障时提供高可用性。因此,副本分片永远不会在与其复制的主分片相同的节点
  • 副本分片也可以接受搜索的请求,可以并行搜索,从而提高系统的吞吐量。

3. 命令

术语对比:

Relational DB Elasticsearch
数据库(database) 索引(indices)
表(tables) types
行(rows) documents
字段(columns) fields

3.1 查看集群哪个节点是主节点

*号就是主节点

[root@master01 ~]# curl -XGET 10.254.196.108:9200/_cat/nodes?v
ip             heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
10.244.140.100           21          17   4    0.48    0.50     0.41 dilmrt    -      es-cluster-3
10.244.140.125           20          17   5    0.48    0.50     0.41 dilmrt    *      es-cluster-0
10.244.196.144           20          16  37    0.77    0.65     0.44 dilmrt    -      es-cluster-1
10.244.241.126           29          17   6    0.46    0.49     0.50 dilmrt    -      es-cluster-2

3.2 创建文档

curl -H "Content-Type:application/json" -XPUT 'http://10.254.196.108:9200/index_name/_doc/1?pretty' -d \
'{
 "name": "小黑的小姨妈",
 "age": 18
}'

#命令介绍
-H:指定内容类型
-X:指定http请求方式,这里为PUT上传方式
http://10.135.73.73:9201:指定一台es服务器对外的http端口
/index_name:文档的索引名称,必须小写
/type_name:文档的类型名称,7.0开始一个索引只能创建一个Type ,即,“_doc”
/1:文档的ID编号
?pretty:人性化创建索引
-d:指定使用JSON方式来撰写上传文档
{ "name": "xuwl", "age": 18, "job": "Linux" }':使用JSON格式来撰写上传文档内容

3.3 查看所有索引

curl -XGET http://10.254.196.108:9200/_cat/indices?v

3.4 查看集群健康状态

[root@master01 ~]# curl -XGET http://10.254.196.108:9200/_cluster/health?pretty
{
  "cluster_name" : "es-cluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 4,
  "number_of_data_nodes" : 4,
  "active_primary_shards" : 146,
  "active_shards" : 232,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

3.5 查看集群的设置

[root@master01 ~]# curl -XGET http://10.254.196.108:9200/_cluster/settings?pretty
{
  "persistent" : { },
  "transient" : { }
}

3.6 查看集群在线节点

#可以看出在线情况,也能看出谁是主
[root@master01 ~]# curl -XGET http://10.254.196.108:9200/_cat/nodes?v
ip             heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
10.244.140.125           23          17   3    0.02    0.12     0.31 dilmrt    *      es-cluster-0
10.244.196.144           16          16   3    0.33    0.41     0.32 dilmrt    -      es-cluster-1
10.244.241.126           49          17   4    0.81    0.47     0.59 dilmrt    -      es-cluster-2
10.244.140.100           40          17   3    0.02    0.12     0.31 dilmrt    -      es-cluster-3

3.7 查看集群主节点

[root@master01 ~]# curl -XGET http://10.254.196.108:9200/_cat/master
--Ppx5oERuaCY1YrGtnWbQ 10.244.140.125 10.244.140.125 es-cluster-0

3.8 查看具体索引

[root@master01 ~]# curl -XGET http://10.254.196.108:9200/_cat/indices/commodity
green open commodity 82AlWuJlTHWeePREGMD-iw 1 1 0 0 416b 208b

3.9 创建索引

[root@master01 ~]# curl -XPUT "http://10.254.196.108:9200/commodity?pretty"
{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "commodity"
}

3.10 查看所有索引分片,查看某个索引分片

#查看所有索引分片
[root@master01 ~]# curl -XGET http://10.254.196.108:9200/_cat/shards

#查看某个索引分片
[root@master01 ~]# curl -XGET http://10.254.196.108:9200/_cat/shards/commodity
commodity 0 p STARTED 0 208b 10.244.140.125 es-cluster-0
commodity 0 r STARTED 0 208b 10.244.196.144 es-cluster-1

3.11 查看所有分片的恢复状况,查看具体某个索引的分片恢复状况

#查看所有分片的恢复状况
[root@master01 ~]# curl -XGET http://10.254.196.108:9200/_cat/recovery

#查看具体某个索引分片恢复状况
[root@master01 ~]# curl -XGET http://10.254.196.108:9200/_cat/recovery/commodity

3.12 查询集群线程池

curl -sXGET "http://10.254.196.108:9200/_cat/thread_pool" | awk '{if($3>0)print $0}'

3.13 查看集群健康状态

[root@master01 ~]# curl -XGET http://10.254.196.108:9200/_cluster/health?pretty
{
  "cluster_name" : "es-cluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 4,
  "number_of_data_nodes" : 4,
  "active_primary_shards" : 147,
  "active_shards" : 234,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

3.14 节点监控

[root@master01 ~]# curl -XGET http://10.254.196.108:9200/_stats?pretty

3.15 打开/关闭索引

curl -XPOST http://127.0.0.1:9200/my_index/_close
curl -XPOST http://127.0.0.1:9200/my_index/_open

3.16 查看磁盘占用情况

[root@master01 ~]# curl -XGET http://10.254.196.108:9200/_cat/allocation?v
shards disk.indices disk.used disk.avail disk.total disk.percent host           ip             node
    58        1.6mb    12.1gb      7.3gb     19.4gb           62 10.244.241.126 10.244.241.126 es-cluster-2
    59        1.1mb    12.1gb      7.3gb     19.4gb           62 10.244.196.144 10.244.196.144 es-cluster-1
    58        1.8mb    12.1gb      7.3gb     19.4gb           62 10.244.140.100 10.244.140.100 es-cluster-3
    59        1.9mb    12.1gb      7.3gb     19.4gb           62 10.244.140.125 10.244.140.125 es-cluster-0

3.17 刷新数据


标签:http,索引,常用命令,cluster,Elasticsearch,分片,10.244,节点
From: https://www.cnblogs.com/yidadasre/p/17577048.html

相关文章

  • 服务器linux常用命令
    [01–iostat]iostat命令显示的是你的存储系统的细节状态。你通常可以用这个命令去检测你的存储设备是否工作正常,完全可以在用户抱怨服务器慢之前,通过这个命令发现系统IO方面的问题。如下可以看到iostat既可以显示CPU使用情况,也可以看到每个磁盘的IO情况。#iostat1Linux2.6.32......
  • git常用命令
    1.查看分支gitbranch2.切换分支gitcheckout-b3.6.1(分支) 3.添加源分支URLgitremoteaddupstream[源项目URL]4.初始化gitgitinit 5.修改错误修改git里面的config配置文件添加代码 ......
  • Elasticsearch自定义分词器
    分词发生时期分词器的处理过程发生在IndexTime和SearchTime两个时期IndexTime:文档写入并创建倒排索引时期,其分词逻辑取决于映射参数analyzer。SearchTime:搜索发生时期,其分词仅对搜索词产生作用。分词器的组成切词器(Tokenizer):用于定义切词(分词)逻辑。词项过滤器(TokenF......
  • spring cloud整合ElasticSearch
     1.创建一个查询服务,pom中引入es服务所需要的包<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.4.2</version>......
  • git常用命令行速查表
    上传git,基本四步曲(默认master分支)1.gitpull---把远程文件同步到本地,避免发生冲突2.gitadd.---暂存所有新增文件)3.gitcommit-m"提交日志"---提交所有暂存(提交所有变动:gitcommit-m“提交日志”-a)4.gitpush---推送(非master分支:gitpushorigin分支名)1.在......
  • K3S+Docker常用命令
    Docker启动镜像,检验是否成功dockerrun-timagesName:tag查询镜像文件dockerimages查询启动的镜像,可以获得容器的iddockerps停止容器dockerstop容器id查看docker相关信息dockerinfo查询容器的相关信息dockerinspect容器id移除镜像dockerrmi-fimagesNam......
  • linux常用命令
    转载文章作者:Gallifrey文章链接:https://gallifrey.asia/posts/fb2c02db1a9f/ 前言本文是视频教程韩顺平一周学会Linux部分章节的归纳总结,内容补充和错误纠正。概述Linux命令是一组用于在Linux操作系统上执行特定任务的命令。这些命令可以在终端窗口中使用,也可以通过......
  • ElasticSearch的Ubuntu安装
     导入ElasticsearchPGP密钥:首先,导入Elasticsearch的PGP密钥,用于验证软件包的完整性和真实性。执行以下命令: bashCopycode wget-qO-https://artifacts.elastic.co/GPG-KEY-elasticsearch|sudogpg--dearmor-o/usr/share/keyrings/elasticsearch-keyring.gpg安......
  • Java常用命令
    强制更新:mvncleanpackage-DskipTests-U打包:mvncleaninstall-DskipTests安装本地jar到本地仓库:mvninstall:install-file-Dfile=D:\*.jar(本地文件位置)-DgroupId=com.*(自定义groupId)-DartifactId=*(如com.tb.com)-Dversion=1.1.0(自定义版本)-Dpackaging=jar删除文件:rm......
  • Linux常用命令
    Linux命令一切都是一个文件。(存储形式)系统中拥有小型,单一用途的程序。当遇到复杂任务,通过不同功能用途的程序组合起来完成。(大化小,小化了)避免令人困惑的用户界面。(统统用命令)连配置文件都存储在文本中,方便增、删、改、查。不在乎后缀名,文件名与文件类型不相关。......