工作采坑札记:3. Spark中es-hadoop插件异常解决

1. Es-Hadoop异常:

org.elasticsearch.hadoop.EsHadoopException: Could not write all entries [615/300864] (maybe ES was overloaded?). Bailing out...
    at org.elasticsearch.hadoop.rest.RestRepository.flush(RestRepository.java:235)
    at org.elasticsearch.hadoop.rest.RestRepository.doWriteToIndex(RestRepository.java:186)
    at org.elasticsearch.hadoop.rest.RestRepository.writeToIndex(RestRepository.java:149)
    at org.elasticsearch.spark.rdd.EsRDDWriter.write(EsRDDWriter.scala:49)
    at org.elasticsearch.spark.rdd.EsSpark$$anonfun$saveToEs$1.apply(EsSpark.scala:67)
    at org.elasticsearch.spark.rdd.EsSpark$$anonfun$saveToEs$1.apply(EsSpark.scala:67)
    at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
    at org.apache.spark.scheduler.Task.run(Task.scala:88)
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
View Code

  异常显示elasticsearch的负载过高,处理方案具体如下(参考):

  a. 增加Es重试次数及等待时间: es.batch.write.retry.count 和 es.batch.write.retry.wait

  b. 减少hadoop或spark的任务数或作业数

  c. 减少文档/大小的数量(这是每个任务的方式 - 因此具有100个任务的作业将导致每个连接100x(docs))。

原文地址:https://www.cnblogs.com/mengrennwpu/p/9364007.html