Воздушный поток будет автоматически планировать и выполнять задачи каждую ночь. Обычно проблем нет, но задачи за эти два дня все провалились. О неудачных задачах сообщается следующим образом
org.apache.spark.SparkException: Error asking standalone scheduler to shut down executors
at org.apache.spark.scheduler.cluster.CoarseGrainedSchedulerBackend.stopExecutors(CoarseGrainedSchedulerBackend.scala:414)
at org.apache.spark.scheduler.cluster.CoarseGrainedSchedulerBackend.stop(CoarseGrainedSchedulerBackend.scala:420)
at org.apache.spark.scheduler.cluster.YarnSchedulerBackend.stop(YarnSchedulerBackend.scala:104)
at org.apache.spark.scheduler.TaskSchedulerImpl.stop(TaskSchedulerImpl.scala:653)
at org.apache.spark.scheduler.DAGScheduler.stop(DAGScheduler.scala:2194)
at org.apache.spark.SparkContext$$anonfun$stop$6.apply$mcV$sp(SparkContext.scala:1949)
at org.apache.spark.util.Utils$.tryLogNonFatalError(Utils.scala:1340)
at org.apache.spark.SparkContext.stop(SparkContext.scala:1948)
at org.apache.spark.sql.SparkSession.stop(SparkSession.scala:713)
at org.apache.spark.sql.SparkSession.close(SparkSession.scala:721)
at com.okjike.data.util.TableContext.close(TableContext.scala:43)
at com.okjike.data.table.JdbcReadTable$.main(JdbcReadTable.scala:58)
at com.okjike.data.table.JdbcReadTable.main(JdbcReadTable.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:684)
Caused by: java.lang.InterruptedException
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1039)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1328)
at scala.concurrent.impl.Promise$DefaultPromise.tryAwait(Promise.scala:212)
at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:222)
at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:227)
at org.apache.spark.util.ThreadUtils$.awaitResult(ThreadUtils.scala:220)
at org.apache.spark.rpc.RpcTimeout.awaitResult(RpcTimeout.scala:75)
at org.apache.spark.rpc.RpcEndpointRef.askSync(RpcEndpointRef.scala:92)
at org.apache.spark.rpc.RpcEndpointRef.askSync(RpcEndpointRef.scala:76)
at org.apache.spark.scheduler.cluster.CoarseGrainedSchedulerBackend.stopExecutors(CoarseGrainedSchedulerBackend.scala:410)
... 17 more
20/03/17 07:00:37 ERROR TransportResponseHandler: Still have 1 requests outstanding when connection from /xxxxx is closed
20/03/17 07:00:37 WARN BlockManagerMasterEndpoint: Error trying to remove RDD 66 from block manager BlockManagerId(1, xxxxx, 43933, None)
java.io.IOException: Connection from xxxx closed```
Кластер развернут на Amazon emr.Я подозреваю, что слишком много задач вызвало недостаток ресурсов в последнее время. Я не уверен, будет ли добавление ресурсов работать. Ниже приведена конфигурация искры. Может быть, лучшая конфигурация может заставить их работать лучше? Подскажите пожалуйста, как мне настроить
spark.driver.maxResultSize 2g
spark.hadoop.parquet.metadata.read.parallelism 100
spark.sql.shuffle.partitions 499
spark.sql.broadcastTimeout 1200
spark.sql.parquet.filterPushdown true
spark.default.parallelism 311
spark.dynamicAllocation.minExecutors 2
spark.dynamicAllocation.initialExecutors 4
spark.executor.instances 2
spark.executor.memory 12g
spark.driver.memory 2g
spark.kryoserializer.buffer.max 128
spark.driver.cores 2
spark.executor.cores 8
spark.io.compression.codec snappy
spark.sql.filesourceTableRelationCacheSize 0
spark.dynamicAllocation.maxExecutors 16
spark.scheduler.mode FAIR