【问题标题】:How to launch a Jar file using Spark on hadoop如何在 hadoop 上使用 Spark 启动 Jar 文件
【发布时间】:2015-08-24 12:50:19
【问题描述】:

我正在安装 hadoop 的 Google Cloud Platform 上做一个项目。我在 scala 中编写了一个程序,并使用 sbt 的汇编指令创建了一个可执行的 JAR 现在我必须在我的平台上上传并运行它。我尝试使用命令spark-submit --class "Hi" provaciao.jar 但即使它在本地的 spark 独立工作,我也会收到错误消息。 我用的是spark的1.1.0版本和hadoop的2.4版本

这是我的错误日志

marooned91_gmail_com@hadoop-m-on8g:/home/hadoop/spark-install/bin$ spark-submit --class "Hi" provaciao.jar java.lang.ClassNotFoundException:嗨 在 java.net.URLClassLoader$1.run(URLClassLoader.java:366) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:425) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:358) 在 java.lang.Class.forName0(本机方法) 在 java.lang.Class.forName(Class.java:274) 在 org.apache.spark.deploy.SparkSubmit$.launch(SparkSubmit.scala:318) 在 org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:75) 在 org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

【问题讨论】:

  • 检查你的罐子! jar -tf provacaio.jar。您的课程可能会丢失
  • 否,因为它在本地工作
  • 即使是本地的。我认为您可能正在做的是用 sbt 或 maven 打包您的应用程序。所以你的应用 jar 不包含 jar 库。
  • 那么hadoop文件夹中的权限呢?我不知道我是否真的可以访问该文件
  • 你试过我告诉你的吗?

标签: scala hadoop apache-spark google-cloud-platform


【解决方案1】:

尝试将完整的包路径添加到 Hi 类。如果你没有为类指定包,那就去做吧。

喜欢

spark-submit --class "com.mycompany.something.Hi" provaciao.jar

同时解压你的 jar 文件并检查其中是否存在 Hi 类

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    相关资源
    最近更新 更多