精华内容
下载资源
问答
  • shards
    2022-05-27 13:37:52

    问题现象

    创建新的es索引报错,报错信息上说,es已经超过最大的分片数。

    错误详情

    关键错误信息:but this cluster currently has [999]/[1000] maximum shards open;

    详细错误信息:

    Caused by: org.elasticsearch.client.ResponseException: method [PUT], host [http://10.58.14.34:9200], URI [/janusgraph_idx_customer_cust_num], status line [HTTP/1.1 400 Bad Request]
    {
        "error": {
            "root_cause": [
                {
                    "type": "validation_exception",
                    "reason": "Validation Failed: 1: this action would add [2] total shards, but this cluster currently has [999]/[1000] maximum shards open;"
                }
            ],
            "type": "validation_exception",
            "reason": "Validation Failed: 1: this action would add [2] total shards, but this cluster currently has [999]/[1000] maximum shards open;"
        },
        "status": 400
    }
    

    问题解决

    更改es的最大分片数配置:

    curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d '
    {
    "persistent" : {
    "cluster" : {
    "max_shards_per_node" : "5000"
    }
    }
    }'
    

    需要注意的是,我们这里是在 persistent 节点中设置的参数。ES 集群的 setting 配置中包含两种类型:
    persistent:永久生效的配置项
    transient:临时生效的配置项,集群重启就会失效

    更多相关内容
  • Shards Vue是一个免费,美观,现代的Vue.js UI套件基于。 • 入门 Shards Vue入门非常简单。 您可以通过官方网站(位于GitHub上)作为发行包或使用程序包管理器(如Yarn或NPM)下载Shards Vue。 快速开始 您可以...
  • Mirror.The.Lost.Shards.Update.v3.10.rar,Mirror.The.Lost.Shards.Update.v3.10,PLAZA,game_Data,Plugins,GameOverlayRenderer.dll,steam_api.cdx,steam_emu.ini,codex.dll,steamclient.dll,steam_api.dll,使用说明...
  • 安装$ gem install active_record_shards并确保以某种方式要求“ active_record_shards”。配置将副本和分片配置添加到config / database.yml: production : adapter : mysql encoding : utf8 database : my_app_...
  • shards.zip

    2020-01-10 18:13:45
    logo-success.svg,shards-dashboards-logo-warning.svg,shards-dashboards-logo-secondary.svg,shards-dashboards-logo.svg,shards-dashboards-logo-info.svg,avatars,2.jpg,1.jpg,0.jpg,3.jpg,shards-dashboards-...
  • MyBatis Shards在实现方式上完全借鉴于Hibernate Shards,目前可以认为是Hibernate Shards的一个迁移版本。 MyBatis Shards概述 MyBatis Shards采用无侵入性的方式,无需更改现有程序代码,只要根据现有业务编写合理...
  • 包括黑色和蓝色碎片壁纸的高清图像! 安装此扩展程序可在每个新选项卡上获得黑色和蓝色碎片的高清图像! 我们始终会更新图像,因此请随时检查...... ...通过我们的扩展程序,您可以获得:1:高分辨率的新标签页体验2:简单...
  • 包括黑色和红色碎片壁纸的高清图像! 安装此扩展程序可在每个新选项卡上获得漂亮的空白和红色碎片高清图像! 我们会始终更新图像,所以请随时检查...... ...通过我们的扩展程序,您可以获得:1-高分辨率的新标签页体验2-...
  • Shards是免费、现代的Bootstrap 4 UI工具包
  • shards-dashboard-react-master.zip,shards-dashboard-react-master,.gitignore,package.json,src,components,add-new-post,Editor.js,SidebarCategories.js,SidebarActions.js,layout,MainFooter.js,MainNavbar,...
  • Soul-Shards-Respawn-1.15_forge.zip,Soul-Shards-Respawn-1.15_forge,gradlew.bat,gradlew,gradle.properties,changelog.txt,gradle,wrapper,gradle-wrapper.jar,gradle-wrapper.properties,process_mod_info....
  • 安装依赖项shards install 将.env.example重命名为.env并设置变量。 运行它crystal src/shards-info.cr 发展历程 psql -c 'CREATE DATABASE shards_info_development;' -U postgres crystal src/db.cr migrate ...
  • ShardsVue是一款基于Shards的免费美观且现代的VuejsUI工具包
  • Trident-Shards

    2021-03-31 07:44:34
    Trident Shards是一个数据包,允许使用从上古守护者掉落的碎片制作三叉戟 安装 将trident-shards-dp.zip文件放入您的世界的datapacks文件夹中 将trident-shards.zip文件放入资源包文件夹 告示 没有资源包,三叉戟...
  • 分布式Shards资产也可以通过CDN通过和。 要使用npm安装: npm install --save shards-ui bootstrap 依存关系 唯一的硬依赖性是Bootstrap 4.3.1,它需要在碎片之前包含在HTML文档中。 日期选择器和滑块控件也需要...
  • 使用Crystal Shards搜索并获取最新的Crystal Shards新闻! 使用您喜欢的背景搜索网络:水晶碎片! 通过此搜索扩展,您可以轻松访问最佳搜索内容,同时在背景中显示最佳的Crystal Shards图像;当您单击工具栏中的图标...
  • Shards Dashboard Lite基于Bootstrap 4,具有完全的响应能力,并能够将其布局调整为任何视口大小-DesignRevision提供的设计。 特征 支持UI的应用程序,SQLite数据库,Django本机ORM 模块化设计,简洁的代码库 ...
  • 使用Black Red Shards搜索,并获取最新的Black Red Shards新闻! 使用您喜欢的背景搜索网络:黑色和红色碎片! 通过此默认搜索扩展程序,您可以轻松访问最佳搜索,并且在单击工具栏上的图标时,会显示来自Black Red ...
  • of_replicas: 1 cluster.max_shards_per_node: 3000 对于生产环境 vim elasticsearch.yml # Set the number of shards (splits) of an index (5 by default): # index.number_of_shards: 5 # Set the number of ...

    问题背景

    某天打开 Jaeger UI 后,发现里面没有任何数据了,这是个奇怪的问题。

    然后立马上服务器检查了 jaeger-collector, jaeger-agent, jaeger-query 和 Elasticsearch 的服务进程、端口及网络通信。所有一切都正常。

    然后进一步排查数据流向问题,通过排查 jaeger-collector 日志,发现 jaeger-agent -> jaeger-collector 之间的数据传输没有问题。

    而 jaeger-collector -> ES 之间数据传输时报错了。错误如下:

    {"level":"error","ts":1576483292.2617185,"caller":"config/config.go:130","msg":"Elasticsearch part of bulk request failed","map-key":"index","response":{"_index":"jaeger-span-2019-12-16","_type":"_doc","status":400,"error":{"type":"validation_exception","reason":"Validation Failed: 1: this action would add [10] total shards, but this cluster currently has [992]/[1000] maximum shards open;"}},"stacktrace":"github.com/jaegertracing/jaeger/pkg/es/config.(*Configuration).NewClient.func2\n\t/home/travis/gopath/src/github.com/jaegertracing/jaeger/pkg/es/config/config.go:130\ngithub.com/jaegertracing/jaeger/vendor/github.com/olivere/elastic.(*bulkWorker).commit\n\t/home/travis/gopath/src/github.com/jaegertracing/jaeger/vendor/github.com/olivere/elastic/bulk_processor.go:588\ngithub.com/jaegertracing/jaeger/vendor/github.com/olivere/elastic.(*bulkWorker).work\n\t/home/travis/gopath/src/github.com/jaegertracing/jaeger/vendor/github.com/olivere/elastic/bulk_processor.go:501"}

    提取关键错误信息

    this action would add [10] total shards, but this cluster currently has [992]/[1000] maximum shards open

    根据报错,可以看出,目前集群的shard数量已经是992个,集群最大索引为1000个,将要添加的shard 数量超越了集群管理的最大值,所以数据无法写入。

    1000 个shards的限制是怎么来的?

    根据官方解释,从Elasticsearch v7.0.0 开始,集群中的每个节点默认限制 1000 个shard,如果你的es集群有3个数据节点,那么最多 3000 shards。这里我们是开发环境,只有一台es。所以只有1000。

    ES 基本概念

    如果您是Elasticsearch的新手,那么了解基本术语并掌握基本概念非常重要。

    Elasticsearch集群的简单图

    群集– Elasticsearch群集由一个或多个节点组成,并且可以通过其群集名称进行标识。

    节点–一个Elasticsearch实例。在大多数环境中,每个节点都在单独的盒子或虚拟机上运行。

    index–在Elasticsearch中,索引是文档的集合。

    分片–由于Elasticsearch是分布式搜索引擎,因此索引通常会分为多个元素,这些元素称为分片,分布在多个节点上。Elasticsearch自动管理这些分片的排列。它还会根据需要重新平衡分片,因此用户无需担心细节。

    副本–默认情况下,Elasticsearch为每个索引创建五个主要分片和一个副本。这意味着每个索引将包含五个主要分片,并且每个分片将具有一个副本。

    分配多个分片和副本是分布式搜索功能设计的本质,它提供了高可用性并可以快速访问索引中的文档。主分片和副本分片之间的主要区别在于,只有主分片才能接受索引请求。副本和主分片都可以满足查询请求。

    在上图中,我们有一个Elasticsearch集群,该集群由默认分片配置中的两个节点组成。Elasticsearch会自动在两个节点之间排列五个主要分片。每个主碎片都有一个副本碎片,但是这些副本碎片的排列与主要碎片的排列完全不同。

    请记住,number_of_shards值与索引有关,而不与整个集群有关。此值指定每个索引的分片数量(而不是集群中的总主分片)。

    副本主要是为了提高搜索性能,用户可以随时添加或删除它们。它们为您提供了额外的容量,更高的吞吐量和更强的故障转移。我们始终建议生产集群具有2个副本以进行故障转移。

    解决方案

    找到了问题原因,那么如何解决这个问题?

    解决这个问题需要回答两个问题:

    一,每个 Index 多少个 Shard 合适?

    配置 Elasticsearch 集群后,对于分片数,是比较难确定的。因为一个索引分片数一旦确定,以后就无法修改,所以我们在创建索引前,要充分的考虑到,以后我们创建的索引所存储的数据量,否则创建了不合适的分片数,会对我们的性能造成很大的影响。

    如果以后发现有必要更改分片的数量,则需要重新索引所有源文档。(尽管重新编制索引是一个漫长的过程,但可以在不停机的情况下完成)。

    主分片配置与硬盘分区非常相似,在硬盘分区中,原始磁盘空间的重新分区要求用户备份,配置新分区并将数据重写到新分区上。

    稍微过度分配是好的。但是如果你给每个 Index 分配 1000 个Shard 那就是不好的。

    请记住,您分配的每个分片都需要支付额外费用:

    由于分片本质上是Lucene索引,因此会消耗文件句柄,内存和CPU资源。

    每个搜索请求都将触摸索引中每个分片的副本,当分片分布在多个节点上时,这不是问题。当分片争夺相同的硬件资源时,就会出现争用并且性能会下降。

    我们的客户期望他们的业务增长,并且其数据集会相应地扩展。因此,始终需要应急计划。许多用户说服自己,他们将遇到爆炸性增长(尽管大多数用户从未真正看到无法控制的增长)。此外,我们所有人都希望最大程度地减少停机时间并避免重新分片。

    如果您担心数据的快速增长,那么我们建议您关注一个简​​单的约束:Elasticsearch的最大JVM堆大小建议约为30-32GB。这是对绝对最大分片大小限制的可靠估计。例如,如果您确实认为可以达到200GB(但在不更改其他基础架构的情况下无法达到更大容量),那么我们建议分配7个分片,或最多8个分片。

    绝对不要为从现在起三年后达到的太高的10 TB目标分配资源。

    如果现在你的场景是分片数不合适了,但是又不知道如何调整,那么有一个好的解决方法就是按照时间创建索引,然后进行通配查询。如果每天的数据量很大,则可以按天创建索引,如果是一个月积累起来导致数据量很大,则可以一个月创建一个索引。如果要对现有索引进行重新分片,则需要重建索引.

    修改默认的 Elasticsearch 分片数

    这是正确的改变配置文件中的index.number_of_shards默认值将涉及更改所有节点上的设置,然后理想地按照rolling restarts的指导方针重新启动实例。

    但是,如果这不是一个选项,如果在创建新索引时在设置中明确指定number_of_shards并不理想,那么解决方法将使用index templates

    可以创建index_defaults默认值,如下所示

    PUT /_template/index_defaults

    {

    "template": "*",

    "settings": {

    "number_of_shards": 4

    }

    }

    这会将index_defaults模板中指定的设置应用于所有新索引。

    重建索引

    二,每个节点的 maximum shards open 设置为多大合适?

    对于分片数的大小,业界一致认为分片数的多少与内存挂钩,认为 1GB 堆内存对应 20-25 个分片。因此,具有30GB堆的节点最多应有600个分片,但是越低于此限制,您可以使其越好。而一个分片的大小不要超过50G,通常,这将有助于群集保持良好的运行状况。

    三,具体措施

    我的观点是开发、测试环境,如果数据不那么重要的话,可以清空所有 index

    DELETE /_all

    然后,重新设置默认值,降低number_of_shards数量,同时提高max_shards_per_node的数量。

    vim elasticsearch.yml

    # Set the number of shards (splits) of an index (5 by default):

    #

    index.number_of_shards: 2

    # Set the number of replicas (additional copies) of an index (1 by default):

    #

    index.number_of_replicas: 1

    cluster.max_shards_per_node: 3000

    对于生产环境

    vim elasticsearch.yml

    # Set the number of shards (splits) of an index (5 by default):

    #

    index.number_of_shards: 5

    # Set the number of replicas (additional copies) of an index (1 by default):

    #

    index.number_of_replicas: 2

    cluster.max_shards_per_node: 3000

    Index 的配置参数在es配置文件里直接配置,会报错。不过可以用Kibana来设置。

    打开 console

    DELETE /_all

    PUT _template/default

    {

    "index_patterns" : ["jaeger*"],

    "order" : 1,

    "settings": {

    "number_of_shards": "2",

    "number_of_replicas": "1"

    }

    }

    PUT _template/default1

    {

    "index_patterns" : ["*"],

    "order" : 0,

    "settings": {

    "number_of_shards": "5",

    "number_of_replicas": "2"

    }

    }

    PUT /_cluster/settings

    {

    "transient": {

    "cluster": {

    "max_shards_per_node":10000

    }

    }

    }

    order

    (Optional,integer) Order in which Elasticsearch applies this template if index matches multiple templates.

    Templates with lowerordervalues are merged first.

    Templates with higherordervalues are merged later, overriding templates with lower values.

    可以发现生效了

    $ curl -X GET 'http://127.0.0.1:9200/\_cat/indices?v'

    health status index uuid pri rep docs.count docs.deleted store.size pri.store.size

    yellow open jaeger-span-2019-12-17 2DHx3EaGTnKlVC4mefsUJw 2 1 27 0 22kb 22kb

    yellow open .kibana SeD9KqnhR7aKpzc2\_AcIDw 2 1 1 0 4.3kb 4.3kb

    最重要的是,要定期删除无用数据,比如对于jaeger的数据,可以每个月初删除一个月前的所有数据,即只保留最近1个月的Index数据。

    仅保存近30天的数据任务分解为

    delete_by_query设置检索近30天数据;

    执行forcemerge操作,手动释放磁盘空间。

    #!/bin/sh

    curl -XPOST "http://127.0.0.1:9200/jaeger-*/_delete_by_query?conflicts=proceed" -H'Content-Type:application/json' -d'{

    "query": {

    "range": {

    "pt": {

    "lt": "now-100d",

    "format": "epoch_millis"

    }

    }

    }

    }

    '

    force merge API

    这里有3个参数可以用

    max_num_segments 期望merge到多少个segments,1的意思是强行merge到1个segment

    only_expunge_deletes 只做清理有deleted的segments,即瘦身

    flush 清理完执行一下flush,默认是true

    forcemerge 脚本如下:

    #!/bin/sh

    curl -XPOST 'http://127.0.0.1:9200/_forcemerge?only_expunge_deletes=true&max_num_segments=1'

    有没有更简便的方法?

    有,使用ES官网工具——curator工具。

    curator 简介

    主要目的:规划和管理ES的索引。支持常见操作:创建、删除、合并、reindex、快照等操作。curator 官网地址

    curator 适用场景

    最重要的是:

    仅以删除操作为例:curator可以非常简单地删除x天后的索引。不过前提是:索引命名要遵循特定的命名模式——如:以天为命名的索引:

    jaeger-span-2019-09-20

    jaeger-span-2019-10-07

    jaeger-service-2019-10-11

    命名模式需要和action.yml中的delete_indices下的timestring对应。

    四,临时提高阈值

    通过ES API零时修改

    curl -X PUT "dev-jaeger-es01.bj:9200/_cluster/settings" -H 'Content-Type: application/json' -d'

    {

    "persistent" : {

    "cluster.max_shards_per_node" : "5000"

    }

    }

    '

    也可在kibana的tools中改变设置

    PUT /_cluster/settings

    {

    "transient": {

    "cluster": {

    "max_shards_per_node":10000

    }

    }

    }

    参考

    展开全文
  • 使用Black Green Shards搜索并获取最新新闻! 使用您喜欢的背景搜索网络:黑色和绿色碎片! 使用此搜索扩展程序,可以轻松访问所有最佳搜索内容,同时在背景中显示最佳的黑与绿碎片图像,并且单击工具栏上的图标时,...
  • 前言 注:ElasticSearch版本为5.4。...当用户去根据时间区间排序搜索日志信息的时候,ElasticSearch就会产生all shards failed异常。具体异常信息如下: Caused by: [.alert/NXa3zq5WSb-wGBKgyZibzw] Que

    前言

    注:ElasticSearch版本为5.4。

    在我们的日志系统里需要一些系统索引,这些系统索引在应用初始化的时候就会被添加到ElasticSearch中去,这些在ElasticSearch中的系统索引在没有索引数据的时候,只有索引名和一些配置信息,没有mapping信息。当用户去根据时间区间排序搜索日志信息的时候,ElasticSearch就会产生all shards failed异常。具体异常信息如下:

    Caused by: [.alert/NXa3zq5WSb-wGBKgyZibzw] QueryShardException[No mapping found for [timestamp] in order to sort on]
    	at org.ElasticSearch.search.sort.FieldSortBuilder.build(FieldSortBuilder.java:262)
    	at org.ElasticSearch.search.sort.SortBuilder.buildSort(SortBuilder.java:156)
    	at org.ElasticSearch.search.SearchService.parseSource(SearchService.java:617)
    	at org.ElasticSearch.search.SearchService.createContext(SearchService.java:468)
    	at org.ElasticSearch.search.SearchService.createAndPutContext(SearchService.java:444)
    	at org.ElasticSearch.search.SearchService.executeQueryPhase(SearchService.java:252)
    	at org.ElasticSearch.action.search.SearchTransportService$6.messageReceived(SearchTransportService.java:331)
    	at org.ElasticSearch.action.search.SearchTransportService$6.messageReceived(SearchTransportService.java:328)
    	at org.ElasticSearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:69)
    	at org.ElasticSearch.transport.TransportService$7.doRun(TransportService.java:627)
    	at org.ElasticSearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:638)
    	at org.ElasticSearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
    	... 3 more
    

    查看了.alert的索引数据再结合ElasticSearch的异常信息判断,我怀疑是由于.alert系统索引没有timestamp mapping信息引起的,.alert索引初始化没有任何数据时,ElasticSearch中的信息如下:

    http://dev:9200/.alert

    {
        ".alert": {
            "aliases": {
                "alert": {}
            },
            "mappings": {
                "alert": {}
            },
            "settings": {
                "index": {
                    "refresh_interval": "-1",
                    "number_of_shards": "5",
                    "provided_name": ".alert",
                    "creation_date": "1533613744728",
                    "store": {
                        "type": "fs"
                    },
                    "number_of_replicas": "1",
                    "uuid": "YuPjsObOTMO6u3fEdG6hVw",
                    "version": {
                        "created": "5040099"
                    }
                }
            }
        }
    }
    

    看到这些信息之后,我开始了用以下方法尝试解决。

    解决方法

    以下方法1和方法2都以失败而告终,只有方法3可以成功解决该问题。但在解决问题中我查找了很多资料,让我对ElasticSearch的mapping有了更深地理解,因此我将解决该问题的过程记录了下来。

    方法1:添加索引模板

    首先,由于是没有timestamp这个mapping信息,因此我想到创建索引模板,将.alert这个索引的mappings信息用模板来设置,以便在索引创建的时候就有相应的mapping信息。模板信息如下:

    {
        "alert": {
            "order": 0,
            "template": "alert",
            "settings": {
                "index": {
                    "number_of_shards": "5",
                    "number_of_replicas": "1",
                    "refresh_interval": "2s"
                }
            },
            "mappings": {
                "alert": {
                    "properties": {
                        "timestamp": {
                            "type": "date"
                        }
                    }
                }
            },
            "aliases": {}
        }
    }
    

    但是,经过测试后发现,all shards failed的问题还是会产生。究其原因是由于:

    索引模板只会在插入新索引数据的时候生效,如果没有索引数据,索引模板定义的mappings信息不会生效,而且对模板的改变不会影响到已存在的索引。

    此时,.alert这个索引为空,还没有新数据插入,因此,模板不会生效,也就致使该方法不会解决all shards failed的问题。

    方法2:创建索引时添加mapping

    由于ElasticSearch允许在创建索引时就创建mapping信息,于是我想到了这个方法,经过测试后,可以解决all shards failed的问题。但是,产生了一个严重的后果,我们用.alert索引来记录服务器报警信息,当我往.alert这个索引里添加数据时,只有timestamp这个字段的数据添加进去了,其他数据像产生报警的主机、报警内容等信息添加失败。

    查询官方文档发现:

    mapping信息一旦被创建,就不允许被修改。改变已有的mapping就意味着使已经存在的索引数据无效,解决的办法就是使用正确的mappings信息来创建新的索引,然后重新把数据添加到新索引中。虽然官方提供了reindex方法来解决这个问题,但是,在大数据量的情况下,reindex代价比较高,因此,创建索引时添加mapping这个方法也行不通。

    方法3:给排序条件加unmapped_type

    ElasticSearch的search api可以设置排序时忽略字段的哪些映射。默认情况下,如果没有与排序字段关联的映射,则搜索请求将失败。unmapped_type选项允许设置忽略没有映射的字段,从而不对该字段排序。由于timestamp的mapping为date类型,因此,在搜索排序条件中增加{“timestamp”:{“unmapped_type”:“date”}}成功解决由于排序字段没有date映射引起的all shards failed问题。

    展开全文
  • name : shards version : 0.1.0 dependencies : openssl : github : datanoise/openssl.cr branch : master development_dependencies : minitest : git : https://github.com/ysbaddaden/minitest.cr.git ...
  • shards-jdbc分库分表实例 dataSources: ds0: !!org.apache.commons.dbcp.BasicDataSource driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/ds0 username: root password: ...
  • Glass-Shards

    2021-04-09 19:00:02
    Glass-Shards-main.zip,Glass-Shards-main,.github,workflows,generate-readme.yml,_config.yml,cloudbuild.yaml,LICENSE,generate.py,.gitignore,README.md
  • hibernate shards.给下载不到的人。
  • 11, "active_shards":11, "relocating_shards":0, "initializing_shards":0, "unassigned_shards":11, "delayed_unassigned_shards":0, "number_of_pending_tasks":0, "number_of_in_flight_fetch":0, "task_max_...

    2017-01-12 21:21:07

    0

    I have an elastsicsearch instance on AWS (I have a similar one that is working just fine.

    I have a lambda function that ships logs to elasticsearch. It stopped working after a while and now I can't see any new logs. I looked into logs and found this :

    org.elasticsearch.transport.RemoteTransportException: [tqStC42][10.0.1.90:9300][indices:data/read/search[phase/query]]

    Caused by: java.lang.IllegalArgumentException: size must be positive, got 0

    at org.elasticsearch.search.aggregations.bucket.BucketUtils.suggestShardSideQueueSize(BucketUtils.java:40) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.search.aggregations.bucket.terms.TermsAggregatorFactory.doCreateInternal(TermsAggregatorFactory.java:100) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory.createInternal(ValuesSourceAggregatorFactory.java:55) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.search.aggregations.AggregatorFactory.create(AggregatorFactory.java:225) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.search.aggregations.AggregatorFactories.createTopLevelAggregators(AggregatorFactories.java:102) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.search.aggregations.AggregationPhase.preProcess(AggregationPhase.java:61) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:104) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.indices.IndicesService.lambda$loadIntoContext$18(IndicesService.java:1159) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.indices.IndicesService.lambda$cacheShardLevelResult$20(IndicesService.java:1229) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.indices.IndicesRequestCache$Loader.load(IndicesRequestCache.java:150) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.indices.IndicesRequestCache$Loader.load(IndicesRequestCache.java:133) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.common.cache.Cache.computeIfAbsent(Cache.java:398) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.indices.IndicesRequestCache.getOrCompute(IndicesRequestCache.java:116) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.indices.IndicesService.cacheShardLevelResult(IndicesService.java:1235) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.indices.IndicesService.loadIntoContext(IndicesService.java:1158) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.search.SearchService.loadOrExecuteQueryPhase(SearchService.java:257) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:273) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.action.search.SearchTransportService$6.messageReceived(SearchTransportService.java:300) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.action.search.SearchTransportService$6.messageReceived(SearchTransportService.java:297) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:69) ~[elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.transport.TransportService$6.doRun(TransportService.java:577) [elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:527) [elasticsearch-5.1.1.jar:5.1.1]

    at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-5.1.1.jar:5.1.1]

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_111]

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_111]

    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]

    I did a curl on cluster health (yellow because one node)

    {

    "cluster_name":"Pixel",

    "status":"yellow",

    "timed_out":false,

    "number_of_nodes":1,

    "number_of_data_nodes":1,

    "active_primary_shards":11,

    "active_shards":11,

    "relocating_shards":0,

    "initializing_shards":0,

    "unassigned_shards":11,

    "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":50.0

    }

    A bit more information on the instance:

    it's on m4.4xlarge with 100 GB of EBS. It also uses 32 GB mem. So far has 600k records in one index.

    What else should I look for?

    I also cat the shards

    pixel 1 p STARTED 130527 74.7mb 10.0.1.90 tqStC42

    pixel 1 r UNASSIGNED

    pixel 3 p STARTED 129687 74.4mb 10.0.1.90 tqStC42

    pixel 3 r UNASSIGNED

    pixel 2 p STARTED 130561 74mb 10.0.1.90 tqStC42

    pixel 2 r UNASSIGNED

    pixel 4 p STARTED 129870 74.6mb 10.0.1.90 tqStC42

    pixel 4 r UNASSIGNED

    pixel 0 p STARTED 129981 74.4mb 10.0.1.90 tqStC42

    pixel 0 r UNASSIGNED

    展开全文
  • elasticsearch报错 all shards failed修复

    千次阅读 2022-01-06 18:01:32
    启动后查看日志报错all shards failed 1.查看健康状态 [root@iZbp1bzugfiorbfrhd333aZ ~]# curl -XGET 'http://172.16.163.226:9200/_cluster/health?pretty=true' { "cluster_name" : "es-1", "status" : "yellow...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,910
精华内容 19,164
关键字:

shards