scala – 线程“main”中的异常java.lang.NoClassDefFoundError
请注意,我比程序员更好的数据.
我试图从作者Sandy Ryza的书中“使用Spark进行高级分析”中编写示例(这些代码示例可以从“ https://github.com/sryza/aas”下载), 我遇到了以下问题. 当我在Intelij Idea中打开这个项目并尝试运行它时,我收到错误“线程中的异常”主“java.lang.NoClassDefFoundError:org / apache / spark / rdd / RDD” 有谁知道如何解决这个问题? 这是否意味着我使用了错误版本的spark? 首先,当我尝试运行此代码时,我收到错误“线程中的异常”主“java.lang.NoClassDefFoundError:scala / product”,但我通过设置scala-lib在maven中编译来解决它. 解决方法
本书中的示例将显示sparkshell的–master参数,但您需要根据您的环境指定参数.如果您没有安装Hadoop,则需要在本地启动spark-shell.要执行示例,您只需将路径传递给本地文件引用(file:///),而不是HDFS引用(hdfs://)
作者提出了一种混合开发方法:
因此,示例代码被视为编译库而不是独立应用程序.您可以通过将编译的JAR传递给–jars属性来使编译的JAR可用于spark-shell,而maven用于编译和管理依赖项. 在本书中,作者描述了如何执行simplesparkproject: 使用maven编译和打包项目 cd simplesparkproject/ mvn package 使用jar依赖项启动spark-shell spark-shell --master local[2] --driver-memory 2g --jars ../simplesparkproject-0.0.1.jar ../README.md 然后你可以在spark-shell中访问你的对象,如下所示: val myApp = com.cloudera.datascience.MyApp 但是,如果要将示例代码作为独立应用程序执行并在想法中执行它,则需要修改pom.xml. <!--<scope>provided</scope>--> 您可以重新制作提供的范围,而不是您可以在想法中运行示例.但你不能再提供这个jar作为火花壳的依赖. 注意:使用maven 3.0.5和Java 7.我在使用插件版本的maven 3.3.X版本时遇到了问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |