Apache spark Spark Streaming-java.io.IOException:租约超时0秒已过期

Apache spark Spark Streaming-java.io.IOException:租约超时0秒已过期,apache-spark,hdfs,spark-streaming,kerberos,cloudera,Apache Spark,Hdfs,Spark Streaming,Kerberos,Cloudera,我有一个spark流应用程序,它在HDFS上使用检查点写入 有人知道解决办法吗? 以前我们使用kinit指定principal和keytab,并得到建议通过spark submit命令指定它们,而不是kinit,但仍然存在此错误并导致spark流应用程序关闭 spark-submit --principal sparkuser@HADOOP.ABC.COM --keytab /home/sparkuser/keytab/sparkuser.keytab --name MyStreamingApp

我有一个spark流应用程序,它在HDFS上使用检查点写入

有人知道解决办法吗? 以前我们使用kinit指定principal和keytab,并得到建议通过
spark submit
命令指定它们,而不是
kinit
,但仍然存在此错误并导致spark流应用程序关闭

spark-submit --principal sparkuser@HADOOP.ABC.COM --keytab /home/sparkuser/keytab/sparkuser.keytab --name MyStreamingApp --master yarn-cluster --conf "spark.driver.extraJavaOptions=-XX:+UseConcMarkSweepGC --conf "spark.eventLog.enabled=true" --conf "spark.streaming.backpressure.enabled=true" --conf "spark.streaming.stopGracefullyOnShutdown=true" --conf "spark.executor.extraJavaOptions=-XX:+UseConcMarkSweepGC --class com.abc.DataProcessor myapp.jar
我在日志中看到以下异常的多次出现,最后SIGTERM 15终止了执行器和驱动程序。我们正在使用CDH 5.5.2

2016-10-02 23:59:50错误提示ListenerBus LiveListenerBus:96- Listener EventLoggingListener引发了异常 java.lang.reflect.InvocationTargetException 位于sun.reflect.GeneratedMethodAccessor8.invoke(未知源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:606) 位于org.apache.spark.scheduler.EventLoggingListener$$anonfun$logEvent$3.apply(EventLoggingListener.scala:148) 位于org.apache.spark.scheduler.EventLoggingListener$$anonfun$logEvent$3.apply(EventLoggingListener.scala:148) 位于scala.Option.foreach(Option.scala:236) 位于org.apache.spark.scheduler.EventLoggingListener.logEvent(EventLoggingListener.scala:148) 位于org.apache.spark.scheduler.EventLoggingListener.onUnpersistRDD(EventLoggingListener.scala:184) 位于org.apache.spark.scheduler.sparksistenerbus$class.onPostEvent(sparksistenerbus.scala:50) 位于org.apache.spark.scheduler.LiveListenerBus.onPostEvent(LiveListenerBus.scala:31) 位于org.apache.spark.scheduler.LiveListenerBus.onPostEvent(LiveListenerBus.scala:31) 位于org.apache.spark.util.ListenerBus$class.postToAll(ListenerBus.scala:56) 位于org.apache.spark.util.AsynchronousListenerBus.postToAll(AsynchronousListenerBus.scala:37) 在org.apache.spark.util.AsynchronousListenerBus$$anon$1$$anonfun$run$1.apply$mcV$sp(AsynchronousListenerBus.scala:79) 位于org.apache.spark.util.Utils$.tryOrStopSparkContext(Utils.scala:1135) 位于org.apache.spark.util.AsynchronousListenerBus$$anon$1.run(AsynchronousListenerBus.scala:63) 原因:java.io.IOException:租约超时0秒已过期。 位于org.apache.hadoop.hdfs.DFSOutputStream.abort(DFSOutputStream.java:2370) 位于org.apache.hadoop.hdfs.DFSClient.closeAllFilesBeingWrite(DFSClient.java:964) 在org.apache.hadoop.hdfs.DFSClient.renewLease上(DFSClient.java:932) 更新(LeaseRenewer.java:423) 位于org.apache.hadoop.hdfs.LeaseRenewer.run(LeaseRenewer.java:448) 访问org.apache.hadoop.hdfs.LeaseRenewer.access$700(LeaseRenewer.java:71) 位于org.apache.hadoop.hdfs.LeaseRenewer$1.run(LeaseRenewer.java:304) 运行(Thread.java:745)

您是在启动时看到问题,还是在机票续签时看到问题?对于后一种情况,“…实际上,由于几个错误(HDFS-9276、SPARK-11182)…[对于]HA模式下的HDFS…必须禁用HDFS缓存”