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.增加机器。