【问题标题】:installing apache shark in stand alone mode result in scala error在独立模式下安装 apache Shark 会导致 scala 错误
【发布时间】:2014-08-02 03:42:57
【问题描述】:

我基本上遵循https://github.com/amplab/shark/wiki/Running-Shark-Locally 上的指南。我下载了 scala 我正在使用 ec2 amazon linux

我的 Shark/shark-0.8.0/conf/shark-env.sh 配置文件是这样的

export SPARK_MEM=1g
export SHARK_MASTER_MEM=1g
export SCALA_HOME="/home/user2/scala/"
export HIVE_HOME="/home/user2/shark/hive-0.9.0-shark-0.8.0-bin/"

我也将 JAVA_HOME 设置为 /usr/lib/jvm/jre

当我输入 java -version 时,它会返回:

java version "1.7.0_55"
OpenJDK Runtime Environment (amzn-2.4.7.1.40.amzn1-x86_64 u55-b13)
OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)

每次尝试使用以下命令运行鲨鱼:

shark/shark-0.8.0/bin/shark

我不明白为什么我会收到这么多错误。有人知道吗??

Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Caused by: java.lang.ClassNotFoundException: scala.ScalaObject 

【问题讨论】:

    标签: scala amazon-ec2 apache-spark shark-sql


    【解决方案1】:

    可能导致您出现问题的两个问题:

    1. 首先,第一条错误消息表明它无法找到 Scala 期望看到它的地方。我会仔细检查你是否可以 从该目录的命令行运行 scala 和 sbt。一世 相信 SCALA_HOME 必须指向顶级目录而不是 另一个包含 Scala,所以通常这是 /scala-2.9.3

    2. 其次,这只是一个可能的问题,您需要确定 你有 Scala 版本 2.9.3 - Shark 目前没有运行 较新的版本,我相信您会得到相似的(但不同的) 如果您尝试它,则会出现错误消息。大多数链接都是针对 通用 scala 下载页面 - 这是 2.9.3 的一个: http://www.scala-lang.org/download/2.9.3.html

    对这篇文章的评论可能会有所帮助:

    http://cornercases.wordpress.com/2013/08/07/getting-the-spark-demo-to-work/

    【讨论】:

      【解决方案2】:

      正确的 Scala 库版本很重要:我使用的是 Spark 1.4.0,它支持 Scala 2.10.5。 2.10.4 库不起作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-07
        • 2016-03-22
        • 2017-01-02
        • 1970-01-01
        • 1970-01-01
        • 2021-05-10
        • 1970-01-01
        相关资源
        最近更新 更多