ES常见问题

这篇具有很好参考价值的文章主要介绍了ES常见问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.修改某个索引的分片数

2.es 写入超时

3.重索引

4.es常用命令

5.华为云es开启安全模式,客户端使用方法

6.运维的一些命令

7.新加Es节点操作

8.由tranlog引起的文件句柄过多问题解决


1.修改某个索引的分片数

#其中, index_patterns 表示要匹配的索引名

#"order": 1 ,这个值,在的会overwite小的值,eg: 默认的es_tempate一般我们都配置为0,这个什为1,那个这值里面的所以参数都会overwirte 值为0的参数

#number_of_shards 表示分片数

#number_of_routing_shards 可扩展的最大分片数,要number_of_shards 倍数,8倍比较合适

PUT _template/gakx_vehicle1_new

{

  "index_patterns": [

    "gakx.vehicle1_*"

  ],

  "order": 1,

  "settings": {

    "index": {

      "number_of_shards": 15,

      "number_of_routing_shards": 120

    }

  }

}

2.es 写入超时

es 写入超时,多方面原因

#先查询集群状态

get _cluster/health

#再看五上bulk 或者 wirte 队列情况

# es 6.1 6.3

GET _cat/thread_pool/bulk?v&h=ip,port,name,type,active,size,queue,queue_size,rejected,largest,completed

# es 6.7

GET _cat/thread_pool/write?v&h=ip,port,name,type,active,size,queue,queue_size,rejected,largest,completed

3.重索引

#_reindex 重索引

POST _reindex

{

  "source": {

    "index": "fjst_gakx.bill1_20190808",

    "size": 5000

  },

  "dest": {

    "index": "fjst_gakx.bill1_20190808new"

  }

}

#索引与别名是多对多的关系

#一个索引可以有多个别名,一个别名也可以对应多个索引,

#设置别名

PUT /my_index_v1/_alias/my_index

#查看 别名为my_index所有 索引

GET /*/_alias/my_index

#查看这个索引有几个别名

GET /my_index_v1/_alias/*

#设置副本数

PUT 4gyd.post_20191029/_settings

{

    "index": {

      "number_of_replicas": 0

    }

}

4.es常用命令

#查看分词情况

post idx_z06crjzjcs_j_qz_wg_my_1205/_analyze

{

"analyzer":"ik_max_word",

"text":"黄小明在台湾abcdedf"

}

post _analyze

{

"analyzer":"ik_max_word",

"text":"黄小明在台湾abcdedf"

}

#查看段的情况

get idx_z22czrk_gab_czrk_jbxx_new_zl_my_1218/_segments

#进行段的合并

post idx_z22czrk_gab_czrk_jbxx_new_zl_my_1218/_forcemerge?only_expunge_deletes=false&max_num_segments=1&flush=true&pretty

5.华为云es开启安全模式,客户端使用方法

1.kibana使用方法.

kibana需要使用oss的版本,如: kibana-oss-xxx-linux-x86_64.tar.gz

#配置里面需要修改

elasticsearch.ssl.verificationMode: none

#bWVpeWE6QWRtaW5AMTIzNDU= 为  base64(用户:密码)

elasticsearch.customHeaders: {"custom-proxy-username":"bWVpeWE6QWRtaW5AMTIzNDU="}

2.程序直接访问(有些功能没有配置资源目录,如姓名分析,可以使用这个方式).

1)把原来的http修改为https

2) request head 增加参数

#bWVpeWE6QWRtaW5AMTIzNDU= 为  base64(用户:密码)

"custom-proxy-username":"bWVpeWE6QWRtaW5AMTIzNDU="

6.运维的一些命令

#查看 硬盘分布情况

get _cat/allocation?v

#查看集群状态

#curl -Xget "http://192.168.1.1:9200/_cluster/health?pretty"

get _cluster/health

{

  "cluster_name": "elasticsearch_cluster",

  "status": "yellow",

  "timed_out": false,

  "number_of_nodes": 311,

  "number_of_data_nodes": 231,

  "active_primary_shards": 20161,

  "active_shards": 38804,

  "relocating_shards": 0,

  "initializing_shards": 60,

  "unassigned_shards": 13,

  "delayed_unassigned_shards": 0,

  "number_of_pending_tasks": 6,

  "number_of_in_flight_fetch": 0,

  "task_max_waiting_in_queue_millis": 53955,

  "active_shards_percent_as_number": 99.81222830979758

}

#如果有没分配的,要查看分配的分片

#查看分配情况 ,INITIALIZING 代表是在init初始化中,UNASSIGNED 代表还没分配的

get _cat/shards?v

4gdx.post_20191126 0     r      UNASSIGNED     

#如果还有没有分配的,查看一下原因

#查看分配失败的原因

get _cluster/allocation/explain

{

"index":"4gyd.post_20191126",

"shard":0,

"primary":false

}

#检查是否gc达到100%

 /opt/shell/jstat.sh /usr/local/elk/es1

观察O指标

#查看原因,解决

#原因1. allocation_expalin temporarily thottled 超过最大限制

#解决方法:设置初始化参数,加快初始化

put _cluster/settings

{

"transient":{

"cluster.routing.allocation.node_concurrent_recoveries":60

  }

}

#原因2.Too manny oppen file 文件句柄过多

#请查看 由tranlog引起的文件句柄过多问题解决

#原因3:  "allocate_explanation": "cannot allocate because all found copies of the shard are either stale or corrupt",

#说明数据有问题,或者不同步,找到一下"in_sync": false,的节点.完成后再查看explain .如果还有问题把allocate_stale_primary 设置成allocate_empty_primary .允许为空分片

POST _cluster/reroute

{

  "commands": [

    {"allocate_stale_primary": {

      "index": "t_sys_log_sga_20200709",

      "shard": 1,

      "node": "LN82kzp",

      "accept_data_loss":true

    }}

  ]

}

#设置平衡参数,加快平衡

put _cluster/settings

{

"transient":{

"cluster.routing.allocation.cluster_concurrent_rebalance":60,

"indices.recovery.max_bytes_per_sec":"1gb"

}

}

#查看集群的所有参数

GET _cluster/settings

{

  "persistent": {

    "indices": {

      "breaker": {

        "fielddata": {

          "limit": "20%"

        },

        "request": {

          "limit": "10%"

        },

        "total": {

          "limit": "70%"

        }

      }

    }

  },

  "transient": {

    "cluster": {

      "routing": {

        "rebalance": {

          "enable": "all"

        },

        "allocation": {

          "cluster_concurrent_rebalance": "2",

          "node_concurrent_recoveries": "60",

          "node_initial_primaries_recoveries": "4",

          "enable": "all"

        }

      }

    }

  }

}

#查看索引情况

get _cat/indices

#查看节点情况(挂了的就不在这里面)

GET _cat/nodes?v

#pending 任务

get _cat/pending_tasks?v

#重新分布分片?

post _cluster/reroute?retry_failed=true

#去掉只读模型

put */_settings

{

"index.blocks.read_only_allow_delete":null

}

#减少不平衡现象,每个表分配的主分片个数

put */_settings

{

"index.routing.allocation.total_shards_per_node":2

}

#比较多台,重启一般要操作的步骤

#关闭自动分片

PUT _cluster/settings

{

  "persistent": {

    "cluster": {

      "routing": {

        "allocation.enable": "none"

      }

    }

  }

}

#kill es 进程

#启动 es集群

#启动自动分片

PUT _cluster/settings

{

  "persistent": {

    "cluster": {

      "routing": {

        "allocation.enable": "all"

      }

    }

  }

}

7.新加Es节点操作

#分成两种情况.

#一:新的节点上部署.

1.做互信,系统参数祝始化,建立es用户,在/data盘,创建文件目录,受权给es用户.(可参考安装文档)

2.修改配置,增加新的ip地址,如:

vim /usr/local/elk/es1/config/elasticsearch.yml

discovery.zen.ping.unicast.hosts: ["xxxx","xxxx"]

3.分发软件,scp 到新的机器上

4.ssh 新的节点,修改配置文件

vim /usr/local/elk/es1/config/elasticsearch.yml

network.host: xxx.xxx.xxx

5.重启es集群

PUT _cluster/settings

{

  "persistent": {

    "cluster": {

      "routing": {

        "allocation.enable": "none"

      }

    }

  }

}

#kill es 进程

#启动 es集群

#启动自动分片

PUT _cluster/settings

{

  "persistent": {

    "cluster": {

      "routing": {

        "allocation.enable": "all"

      }

    }

  }

}

#二:在老节点上,新增加实例.

1.copy 软件,如

cp /usr/local/elk/es1 /usr/local/elk/es2

2.修改配置,增加新的ip地址,如:

#修改旧的地址配置,增加discovery.zen.ping.unicast.hosts 新的端口

vim /usr/local/elk/es1/config/elasticsearch.yml

  discovery.zen.ping.unicast.hosts:

["x.x.x.x:9300","x.x.x.x:9302",]

#修改新的地址配置,增加discovery.zen.ping.unicast.hosts 新的端口 和 http.port,transport.tcp.port 的端口

vim /usr/local/elk/es1/config/elasticsearch.yml

 http.port: 9202

 transport.tcp.port: 9302

 discovery.zen.ping.unicast.hosts: 

["x.x.x.x:9300","x.x.x.x:9302",]

3.分发软件,scp 到新的机器上

4.重启es集群

PUT _cluster/settings

{

  "persistent": {

    "cluster": {

      "routing": {

        "allocation.enable": "none"

      }

    }

  }

}

#kill 

es 进程

#启动 es集群

#启动自动分片

PUT _cluster/settings

{

  "persistent": {

    "cluster": {

      "routing": {

        "allocation.enable": "all"

      }

    }

  }

}

​​​​​​8.由tranlog引起的文件句柄过多问题解决

#查看机器文件占用的句柄

/opt/FusionInsight_SetupTool/preinstall/tools/cluster/clustercmd.sh "cat /proc/sys/fs/file-nr"

 "cat /proc/sys/fs/file-nr"

#如果有大于30W 应该处理一下.

vi /opt/check_fd.sh

ps -ef|grep java|grep org.elasticsearch.bootstrap.Elasticsearch|grep -v grep |awk '{print $2}'|while read line;do cd /proc/$line/fd;ls -l > /opt/fd_$line.txt;done;wc -l /opt/fd_*|grep -v 总用量|awk '{if($1>5000) print $2}'|while read line;do cat  $line|grep translog|awk -F'/' '{print $9}'|sort|uniq -c|awk '{if($1>1000)print $0}';done;

#分发到其它台机器 

/opt/FusionInsight_SetupTool/preinstall/tools/cluster/clusterscp.sh put /opt/check_fd.sh /opt/check_fd.sh

#执行检查脚本 查看是哪个索引引起的

 /opt/FusionInsight_SetupTool/preinstall/tools/cluster/clustercmd.sh "sh  /opt/check_fd.sh" 

47845 d6AF_i8_SWa3cV5kBybpXg

87405 57icq0x4S7KFsxe4k7sWrg

#查看所有 index 和对于的id

#地址要修改成对应的地址: eg:大集群:x.x.x.x:24148

curl -Xget "http://163.1.6.3:24148/_cat/indices?v" > /opt/all_index.txt

#这个ip就是对应的kibanna.yml里面的elasticsearch.url,位置在总控/usr/local/elk/kibana-6.1.3-8601/config

[root@hosts01 ~]# cat /opt/all_index.txt |grep h-sdnAM5Q32AoD1fTLIq0Q

green open 4gyd.log_20211215 h-sdnAM5Q32AoD1fTLIq0Q 5 1 37255447

#设置有问题的index, 副本设置为0,文章来源地址https://www.toymoban.com/news/detail-402492.html

PUT 4gdx.post_20211211/_settings

{

"number_of_replicas": 0

}



#副本设置为1



PUT 4gdx.post_20211211/_settings

{

"number_of_replicas": 1

}

到了这里,关于ES常见问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • kibana中ES修改某个字段类型问题

     近日,发现同步数据到es的时候,有个新建的索引动态适配了mapping,而往往这种会有字段类型不是我们想要的,比如我这就有个tid字段,此字段要在聚合操作中使用,而此时的tid被识别成text类型了,而text不支持聚合,所以要更改字段类型为long或者keyword,注意es 不支持直接

    2024年02月08日
    浏览(52)
  • ES常见问题(1)-解决ElasticSearch每次只能返回10条数据

    使用ElasticSearch查询分页数据 有时候,我们需要使用ElasticSearch来分词查询,并分页返回指定的数据条数,但是当我们每次想得到分页数据条数超过十条的时候,ElasticSearch总是只能返回十条 因为ElasticSearch为了查询的速度,在默认的情况下已经设置了分页数据只能返回10条,所

    2024年02月11日
    浏览(43)
  • 线扫相机DALSA--常见问题四:修改相机参数,参数保存无效情况

    该问题是操作不当,未按照正常步骤保存参数所致,相机为RAM机制,参数需保存在采集卡的ROM内。 保存参数步骤: ①首先将相机参数保存至User Set1; ②然后回到Board(采集卡)参数设置区,鼠标选中Basic Timing; ③最后鼠标点击相机专家菜单栏”Save”按钮即可完成参数保存。

    2024年02月06日
    浏览(49)
  • SQL server中:常见问题汇总(如:修改表时不允许修改表结构、将截断字符串或二进制数据等)

    步骤 选择菜单栏中的“工具”-“选项”,在选项对话框左栏中找到“设计器”,在设计器右边取消勾选“阻止保存要求重新创建表的更改”即可。 图例 注意 设计表时,尽量一次性设计成功,避免使用alter修改表,修改起来有各种约束,不容易修改。 解决: 你设置的数据类型

    2024年02月03日
    浏览(42)
  • 【Visual Studio 2022创建ASP.NET Web应用程序(.NET Framework)发布并部署到局域网 及“常见权限问题和不列出目录问题解决”】

    然后给项目命名并选择文件保存位置 用一个空项目进行举例 创建完成如下 点击更多模板选择Web窗体 创建成功如下 .aspx页面编写前端代码,.aspx.cs页面编写后端代码 通过插入表格和拉取控件快速完成 然后给Button按钮设置一个点击事件,双击按钮后会跳到.aspx.cs页面,完善下面

    2024年02月07日
    浏览(81)
  • ES命令行查询es集群的状态、分片、索引

    查看es集群状态 查看es分片信息 查看es索引 查看ES索引 本文参考:https://www.cnblogs.com/expiator/p/14847705.html

    2024年02月12日
    浏览(53)
  • ElasticSearch---查询es集群状态、分片、索引

    查看es集群状态: 如果?后面加上pretty,能让返回的json格式化。 加上?v的返回结果,如下: 解释如下: 查看es分片信息: 查看es分片信息,模糊匹配,比如匹配test: 返回信息如下: 解析如下: 查看状态为unassigned的es分片信息: 查看es索引 查看es所有索引: indices表示索引,是

    2024年02月02日
    浏览(41)
  • ES中删除索引中某个字段

    ES中无法直接增删索引中的字段,只能能够覆盖,即重建新的索引 例:删除索引my_index中的source字段 先将source字段中的数据删除 否则后面reindex时,索引中会自动增加source字段和类型 创建新的索引my_index_bak,该mapping中不包含source字段 数据迁移 删除原来的索引 再重新创建索引

    2024年02月11日
    浏览(44)
  • es索引分片重新分配cluster.routing.allocation

    Index-level shard allocation filtering | Elasticsearch Guide [master] | Elastic index.routing.allocation.include.{attribute} Assign the index to a node whose  {attribute}  has at least one of the comma-separated values. index.routing.allocation.require.{attribute} Assign the index to a node whose  {attribute}  has  all  of the comma-separated values. i

    2024年02月09日
    浏览(46)
  • elasticSearch核心概念的介绍(十四):ES集群索引分片管理

    上一章节我们对ES的集群进行了搭建,有兴趣的朋友可以参考一下elasticSearch核心概念的介绍(十三):docker搭建ES集群 这里我们来介绍了ES集群索引的分片管理 ES集群索引分片管理 介绍 分片(shard):因为ES是个分布式的搜索引擎,所以索引通常都会分解成不同部分,而这些

    2023年04月27日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包