Es 报错信息

问题一:

WARN TaskSetManager: Lost task 5.0 in stage 5.0 (TID 265, hdp01.test.com, executor 1): org.elasticsearch.hadoop.rest.EsHadoopInvalidRequest: Found unrecoverable error [192.168.100.102:9201]
 returned Bad Request(400) - Limit of total fields [1000] in index [ultiwill_http] has been exceeded; Bailing out..

此问题是索引setting里面字段超过1000。

解決:把字段限制提升至2000。

PUT ultiwill_http/_settings
{
  "index": {
    "mapping.total_fields.limit": 2000
  }
}

查看:

问题二:

org.apache.spark.util.TaskCompletionListenerException: Connection error (check network and/or proxy settings)- all nodes failed; tried [[10.162.7.17:9219, 10.162.7.16:9219, 10.162.7.18:9219]] 

这个问题是es内存占用过高导致, 

1.导致这个问题的原因可能是es索引字段过多过大, 设计索引时控制字段的大小和个数。

2.降低es-spark并发,并重启主节点。设置es.nodes.wan.only为false,即不用域名访问。将es.nodes配置为client节点的IP。

   es.nodes.wan.only设置为true时即只通过client节点进行读取操作,因此主节点负载会特别高,性能很差。长时间运行后,java gc回收一次要几十秒,慢慢的OOM,系统崩溃。

3.减小写的压力。

4.增加机器。

原文地址:https://www.cnblogs.com/chong-zuo3322/p/13915148.html