我在Spark中创建一个文档集合作为RDD并使用Elasticsearch的Spark读/写库。创建集合的集群很大,因此当它写入ES时,我得到下面的错误,表明ES已经过载,这并不让我感到惊讶。这似乎没有失败的工作。任务可能正在重试并最终成功。在Spark GUI中,报告作业已成功完成。
以下是许多报告的任务失败错误之一,但同样没有报告作业失败:
2017-03-20 10:48:27,745 WARN org.apache.spark.scheduler.TaskSetManager [task-result-getter-2] - Lost task 568.1 in stage 81.0 (TID 18982, ip-172-16-2-76.ec2.internal): org.apache.spark.util.TaskCompletionListenerException: Could not write all entries [41/87360] (maybe ES was overloaded?). Bailing out...
at org.apache.spark.TaskContextImpl.markTaskCompleted(TaskContextImpl.scala:112)
at org.apache.spark.scheduler.Task.run(Task.scala:102)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:227)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
我使用的lib是
org.elasticsearch" % "elasticsearch-spark_2.10" % "2.1.2"
答案 0 :(得分:0)
您能否关注此链接 - https://www.elastic.co/guide/en/elasticsearch/hadoop/current/spark.html 在Spark conf属性或弹性搜索属性中,您需要增加可以在单个帖子中转储的最大记录数,这应该可以解决您的问题。