首页 > 其他分享 >ElasticSearch备忘

ElasticSearch备忘

时间:2024-05-28 22:27:18浏览次数:23  
标签:9200 备忘 ElasticSearch es01 es02 es03 ES name

image

ElasticSearch介绍:

分布式的搜索和分析引擎,简称ES (基于Lucene,JAVA开发的)
7.10前开源、7.11后对商业有使用限制

概念:

  • 一个ES集群由若干个节点(Node)组成
  • ES中的数据存放于节点上
  • 数据以文档(Document)形式存放,文档即JSON对象
  • ES索引(Index)存放一组相关的文档

1. 索引(Index)

由文档组成,文档为Json对象,对象的每个字段可进行分词
image

2. 节点(Node)

包括数据节点、协同节点等,也可当成一个ES实例

3. 分片 (Sharding)

  • 大索引拆为各个节点上的Sharding

  • 类型:Primary Sharding 和 Replication Sharding

  • 同一索引的Primary 和 Replication不能在一个Node上, Replication保证了高可用,也可以提升查询性能
    image

  • Sharding本质上是一个Luence实例

  • ⼀个Shard最多可存放20亿个⽂档
    通过Kibana查看Shard,"?v"表示展示详情

GET /_cat/indices?v

Sharding主要作用:

  1. 支持数据量的水平扩展
  2. 将索引分散在各个节点上,并行查询,提高查询性能
    Sharding配置:
  • ⼀个Index缺省配置⼀个Shard(ES 7.x)
    • Shards并⾮越多越好,存储开销/管理复杂性
  • 增加或减少Shards
    • 增加Shards -> Split API
    • 减少Shards -> Shrink API
  • 配置多少个Shards合适?
    • 视情况定,节点数量,每个节点的容量,索引数量/⼤⼩,查询模式
    • 预期⼤索引 -> 适当多分配⼀些Shards(⽐⽅说从5个开始)
    • 中⼩索引 -> 从1/2个Shards开始
    • Replication副本数量:关键数据 >=2个副本, 非关键业务数据如日志1个副本
    • 监控+调整

快照

image

使用docker-compose运行多节点(实验性质,生产需配置更多)

version: "3.7"
services:
  es01:
    image: "docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2"
    container_name: es01
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      node.name: es01
      discovery.seed_hosts: es01,es02,es03
      cluster.initial_master_nodes: es01,es02,es03
      cluster.name: mycluster
      ES_JAVA_OPTS: -Xms512m -Xmx512m
    volumes:
      - "es-data-es01:/usr/share/elasticsearch/data"
    ulimits:
      memlock:
        soft: -1
        hard: -1
  es02:
    image: "docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2"
    container_name: es02
    ports:
      - "9201:9200"
      - "9301:9300"
    environment:
      node.name: es02
      discovery.seed_hosts: es01,es02,es03
      cluster.initial_master_nodes: es01,es02,es03
      cluster.name: mycluster
      ES_JAVA_OPTS: -Xms512m -Xmx512m
    volumes:
      - "es-data-es02:/usr/share/elasticsearch/data"
    ulimits:
      memlock:
        soft: -1
        hard: -1
  es03:
    image: "docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2"
    container_name: es03
    ports:
      - "9202:9200"
      - "9302:9300"
    environment:
      node.name: es03
      discovery.seed_hosts: es01,es02,es03
      cluster.initial_master_nodes: es01,es02,es03
      cluster.name: mycluster
      ES_JAVA_OPTS: -Xms512m -Xmx512m
    volumes:
      - "es-data-es03:/usr/share/elasticsearch/data"
    ulimits:
      memlock:
        soft: -1
        hard: -1
  kibana:
    image: docker.elastic.co/kibana/kibana-oss:7.10.2
    container_name: kibana
    depends_on:
      - es01
      - es02
      - es03
    ports:
      - "5601:5601"
      - "9600:9600"
    environment:
      SERVERNAME: kibana
      ELASTICSEARCH_HOSTS: '["http://es01:9200","http://es02:9200","http://es03:9200"]'
      ES_JAVA_OPTS: -Xmx512m -Xms512m
volumes:
  es-data-es01: {}
  es-data-es02: {}
  es-data-es03: {}

查看ES集群状态

ES暴露HTTP RESTful API,可以通过常用工具进行访问:

  • Kibana Dev Console
  • Postman
  • cURL

Kibana Dev Console:

  • 最简单的访问ES API的方法
  • 对查询结果进行格式化展示
  • 自动设置必要的HTTP headers(Content-Type etc)
  • 请求自动提示/补全
  • 本课主要使用该工具

使用Kibana Dev Console查询集群状态

  1. 查询集群健康状态
GET /_cluster/health
  • _cluster表示API
  • health表示命令
  1. 查询节点状态
GET /_cat/nodes?v

cat表示Compact and aligned text

  1. 查看索引情况
GET /_cat/indices?v

使用cUrl查询集群状态

curl -X GET http://localhost:9200
curl -X GET http://localhost:9200/_cluster/health

npm install -g json

curl -X GET http://localhost:9200/_cluster/health | json

标签:9200,备忘,ElasticSearch,es01,es02,es03,ES,name
From: https://www.cnblogs.com/kyou/p/18218983

相关文章

  • 部署Elasticsearch
    启动Elasticsearch[root@localhost~]# dockerrun-d--nameelasticsearch01-p9200:9200-p9300:9300-e"discovery.type=single-node"elasticsearch:7.6.2 进入[root@localhost~]# dockerrun-it5acf0e8da90b/bin/bash[root@localhost~]#dockerr......
  • ElasticSearch之聚合操作
    官网:Aggregations|ElasticsearchGuide[8.13]|ElasticElasticsearch除搜索以外,提供了针对ES数据进行统计分析的功能。聚合(aggregations)可以让我们极其方便的实现对数据的统计、分析、运算。基本语法聚合查询的语法结构与其他查询相似,通常包含以下部分:查询条件:指定......
  • Linux用docker安装Elasticsearch&&SpringBoot整合ES
    一. 部署Elasticsearch1.docker查询docker容器中的esdockersearchelasticsearch2. 安装(PS:查看自己的springBoot的版本号 对应的es版本安装)dockerpullelasticsearch:7.6.23.查看已安装的docker镜像dockerimages4.创建挂在目录mkdir-p/data/elk/es/{......
  • 搜索引擎ElasticSearch18_Spring Data ElasticSearch 使用6
    一、SpringDataElasticSearch简介1、什么是SpringDataSpringData是一个用于简化数据库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算数据服务。SpringData可以极大的简化JPA的写法,可以在几乎不用写实现的情况......
  • Elasticsearch Guide 7.17
    目录介绍扩展性与可恢复性clientSetupElasticsearchInstallingESConfiguringESImportantsystemconfigurationBootstrapChecksBootstrapChecksforX-PackStartingElasticsearchStoppingElasticsearchDiscoveryandclusterformationAddandremovenodesinyourclust......
  • 搜索引擎ElasticSearch18_ElasticSearch编程操作5
    一、创建工程,导入坐标pom.xml坐标<dependencies><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>5.6.8</version></dependency>......
  • .Net使用ElasticSearch原理及入门
    1、Elasticsearch简介Elasticsearch是一个基于Lucene,开源的高扩展分布式全文检索引擎,它不会将信息储存为列数据行,而是储存已序列化为JSON文档的复杂数据结构。当文档被储存时,它将建立索引并且近实时(1s)被搜索。Elasticsearch使用一种被称为倒排索引的数据结构,该结构支持快......
  • Elasticsearch集群和Logstash、Kibana部署
    1、Elasticsearch集群部署服务器安装软件主机名IP地址系统版本配置ElasticsearchElk10.3.145.14centos7.5.18042核4GElasticsearchEs110.3.145.56centos7.5.18042核3GElasticsearchEs210.3.145.57centos7.5.18042核3G软件版本:elasticsearch-7.13.2.tar.gz示例节点:10.3......
  • elasticsearch入门介绍
    一、介绍1.1ES简介Elasticsearch(简称ES)是使用iava开发,基于Lucene、分布式、通过Restful7方式进行交互的近实时搜索平台框架。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。ES是ELK架构技术栈的组件之一。ELK(ES+Logs......
  • elasticsearch使用Sort排序时Please use a keyword field instead.
    具体报错信息ElasticsearchStatusException[Elasticsearchexception[type=search_phase_execution_exception,reason=allshardsfailed]];nested:ElasticsearchException[Elasticsearchexception[type=illegal_argument_exception,reason=Textfieldsarenotoptimised......