Apache spark Spark Streaming-java.io.IOException:租约超时0秒已过期
我有一个spark流应用程序,它在HDFS上使用检查点写入 有人知道解决办法吗? 以前我们使用kinit指定principal和keytab,并得到建议通过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 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缓存”