栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Elasticsearch null

Elasticsearch null

一、系统环境
组件版本
ElasticSearch6.6.1

ES有6个节点,简称es1、es2、es3、es4、es5、es6

二、问题复现 1、ES索引
{
  "mappings": {
    "_doc": {
      "dynamic": "strict",
      "properties": {
        "title": {
          "type": "text",
          "analyzer": "ik_max_word"
        }
      }
    }
  },
  "settings": {
    "number_of_replicas": 1,
    "number_of_shards": 5
  }
}
2、插入数据
{
  "title":"测试用例"
}
3、ES报错null_pointer_exception

ES插入数据时,有些时候返回错误,有些时候正常

{
  "error": {
    "root_cause": [
      {
        "type": "null_pointer_exception",
        "reason": null
      }
    ],
    "type": "null_pointer_exception",
    "reason": null
  },
  "status": 500
}
三、问题分析

null_pointer_exception是由于ES部分节点没有ik分词器返回错误,如:只有es1上有ik分词器
因而当数据随机落在节点es1上时,正常插入,其他节点均失败

# 验证机器是否安装ik分词器方法,记得修改成你的IP地址和端口号
curl -XGET "http://192.168.1.1:9200/_analyze" -H 'Content-Type: application/json' -d'
{
  "analyzer": "ik_max_word",
  "text": "我安装了分词器"
}'

# 成功则返回分词结果,失败则返回Error
四、解决方法
// 移动分片到指定的节点
POST /_cluster/reroute
{
    "commands" : [ {
        "move" : 
            {
              "index" : "索引名",
              "shard" : 4, 
              "from_node" : "节点名", 
              "to_node" : "节点名"
            }
        }
    ]
}
参考鸣谢

ES指定分片移动到指定的节点

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/688367.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号