在本地Spark中从S3读取文件时,在更干净的线程中出现异常

时间:2017-11-10 13:34:56

标签: scala apache-spark amazon-s3

以下是我的课程路径:

  • AWS-java的SDK-1.7.4.jar
  • Hadoop的AWS-2.7.3.jar
  • 火花-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)

虽然这是一个警告,我仍然想了解它为什么会发生。可能你们有些人过去遇到过类似的事情,可以提出建议吗?

1 个答案:

答案 0 :(得分:2)

别担心;它只是一个清理过程被告知在应用程序关闭时停止。 HADOOP-12829在中断“”清理线程中断后,显式降低警告信息,将停止“