【问题标题】:IllegalArgumentException with Spark 1.6Spark 1.6 的 IllegalArgumentException
【发布时间】:2016-12-14 10:05:42
【问题描述】:

我在 CDH 5.7 上运行 Spark 1.6.0,并将我的原始应用程序从 1.4.1 升级到 1.6.0。当我尝试运行我的应用程序(以前运行良好)时,我收到以下错误:

Exception in thread "main" java.lang.IllegalArgumentException: requirement failed
        at scala.Predef$.require(Predef.scala:221)
        at org.apache.spark.deploy.yarn.Client$$anonfun$prepareLocalResources$6$$anonfun$apply$3.apply(Client.scala:473)
        at org.apache.spark.deploy.yarn.Client$$anonfun$prepareLocalResources$6$$anonfun$apply$3.apply(Client.scala:471)
        at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
        at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
        at org.apache.spark.deploy.yarn.Client$$anonfun$prepareLocalResources$6.apply(Client.scala:471)
        at org.apache.spark.deploy.yarn.Client$$anonfun$prepareLocalResources$6.apply(Client.scala:469)
        at scala.collection.immutable.List.foreach(List.scala:318)
        at org.apache.spark.deploy.yarn.Client.prepareLocalResources(Client.scala:469)
        at org.apache.spark.deploy.yarn.Client.createContainerLaunchContext(Client.scala:725)
        at org.apache.spark.deploy.yarn.Client.submitApplication(Client.scala:143)
        at org.apache.spark.deploy.yarn.Client.run(Client.scala:1023)
        at org.apache.spark.deploy.yarn.Client$.main(Client.scala:1083)
        at org.apache.spark.deploy.yarn.Client.main(Client.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.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731)
        at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
        at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

我提交申请:

  • --jars 是一个逗号分隔的 jar 列表(带有绝对路径)
  • --files 是一个逗号分隔的文件列表(带有绝对路径)
  • --driver-class-path 是一个以冒号分隔的资源列表(没有完整路径,只有文件名)

我已经尝试使用驱动程序(和执行程序)类路径的完整路径,但这给了我同样的问题。与应用程序一起提交的所有文件和 jar 都存在,我检查了。

这可能与duplicates in the distributed cache 的问题有关还是这是另一个问题?

从源代码中,我看到唯一没有自定义消息的require 调用(如堆栈跟踪)与distribute() 方法有关。如果是这样,如何在不升级 Spark 的情况下运行应用程序?

【问题讨论】:

  • 在我看来它缺少依赖项。

标签: apache-spark


【解决方案1】:

这是由于相同的路径/URI 在 --files 选项的参数中出现两次而导致的异常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-14
    • 2018-12-23
    • 1970-01-01
    • 2018-07-14
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    相关资源
    最近更新 更多