【问题标题】:Exception in cleaner thread when reading files from S3 in local Spark从本地 Spark 中的 S3 读取文件时,清洁线程出现异常
【发布时间】:2017-11-14 19:45:51
【问题描述】:

以下是我的类路径:

  • aws-java-sdk-1.7.4.jar
  • hadoop-aws-2.7.3.jar
  • spark-sql-2.2.0.jar

以下代码可以正常工作:

object MySparkJob {
  def main(args:Array[String]):Unit = {
    val conf = new SparkConf().setAppName("MySparkTest").setMaster("local[4]")
    val spark = new SparkContext(conf)
    ......all credentials config stuff here.......
    val input = spark.textFile("s3a://mybucket/access_2017-10-30.log_10.0.0.176.gz")
    val pageStats = input filter(_.contains("pagestat"))
    val parsedRecords = pageStats flatMap accessLogRecordToCaseClass
    val evIDs = parsedRecords map (_.evid)
    println("Size is " + evIDs.collect().toSet.size)
    spark.stop
  }
}

我使用sbt clean compile run 运行该作业。

但在控制台中,我看到以下警告并包含异常:

17/11/10 15:22:28 WARN FileSystem: exception in the cleaner thread but it will continue to run
java.lang.InterruptedException
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
        at org.apache.hadoop.fs.FileSystem$Statistics$StatisticsDataReferenceCleaner.run(FileSystem.java:3063)
        at java.lang.Thread.run(Thread.java:748)

虽然这是一个警告,但我仍然想了解它发生的原因。可能你们中的一些人过去遇到过类似的事情并可以提供建议?

【问题讨论】:

    标签: scala apache-spark amazon-s3


    【解决方案1】:

    别担心;这只是一个清理步骤,被告知在应用程序关闭时停止。 HADOOP-12829 将中断时的警告消息显式调低为“清洁线程中断,将停止”

    【讨论】:

    • 我明白了。谢谢。
    • 不要害怕看源码;我做了什么来解决这个问题:按照堆栈跟踪,选择它并说“显示 git 修订历史以供选择”。出现的更改列表通常显示问题是否在最新版本中得到修复,或者至少显示问题是什么
    猜你喜欢
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多