http://blog.csdn.net/wzq294328238/article/details/48054525
通常我们将Spark任务编写后打包成jar包,使用spark-submit进行提交,因为spark是分布式任务,如果运行机器上没有对应的依赖jar文件就会报ClassNotFound的错误。
下面有三个解决方法:
方法一:spark-submit –jars
根据spark官网,在提交任务的时候指定–jars,用逗号分开。这样做的缺点是每次都要指定jar包,如果jar包少的话可以这么做,但是如果多的话会很麻烦。
spark-submit --master yarn-client --jars ***.jar,***.jar(你的jar包,用逗号分隔) mysparksubmit.jar
- 1
- 1
如果你使用了sbt的话,并且在build.sbt中配置好了依赖并下载完成,那么你可以直接去用户home目录下的.ivy/cache/中拷贝你的jar需要的jar包
方法二:extraClassPath
提交时在spark-default中设定参数,将所有需要的jar包考到一个文件里,然后在参数中指定该目录就可以了,较上一个方便很多:
spark.executor.extraClassPath=/home/hadoop/wzq_workspace/lib/*
spark.driver.extraClassPath=/home/hadoop/wzq_workspace/lib/*
- 1
- 2
- 1
- 2
需要注意的是,你要在所有可能运行spark任务的机器上保证该目录存在,并且将jar包考到所有机器上。这样做的好处是提交代码的时候不用再写一长串jar了,缺点是要把所有的jar包都拷一遍。
方法三:sbt-assembly
如果你还是觉得第二种麻烦,这种方法是将所有依赖的jar包包括你写的代码全部打包在一起(fat-jar)。在项目根目录输入sbt,键入plugins,发现assembly并没有默认安装,因此我们要为sbt安装sbt-assembly插件。
在你的项目目录中project/plugins.sbt中添加
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.13.0")
resolvers += Resolver.url("bintray-sbt-plugins", url("http://dl.bintray.com/sbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)
- 1
- 2
- 3
- 1
- 2
- 3
然后我们再根目录键入sbt,然后使用plugins查看plugins,如果看到有sbtassembly.AssemblePlugin,说明你的插件就安成功了:
还要设置下冲突解决,然后再在sbt交互命令行下使用assembly就可以了。这种方法打包后会使得jar包很大。
相关推荐
spark相关jar包
Spark缺少的jar包
当flink on yarn模式运行时,发生如下异常信息,需要将压缩包中的4个依赖jar包放入flink安装路径下的lib目录下。 Exception in thread "main" java.lang.NoClassDefFoundError: ...
spark 最新技术架包,具体说名请找度娘。知道的人可以下载
这个压缩包中包含的是Flume-1.6.0对接Spark-1.6.2下的Spark Streaming时需要用到的jar包,将这些jar包放置到flume安装目录下对应的lib中
这是每个学习spark必备的jar包,是根据我的个人试验后所得,官网正版,在spark官网下载。 资源包里不仅有需要的jar包,并且给不会再官网上下载的新手官方网址,可以自由下载资源
基于Scala2.11的spark-streaming 2.2.0 jar包,用于java开发
解决Spark升级到2.1后测试streaming-kafkaIDEA报java.lang.NoClassDefFoundError: org/apache/spark/Logging错误,将这个jar包放到spark的lib目录中,将这个jar包导进IDEA中的依赖,文档中除资源地址外,还有详细图解...
使用scala开发spark应用时用到的jar包:spark-assembly-1.5.2-hadoop2.6.0jar包
spark所需要的scalajar包依赖
spark版本xgboost的jar包,博客中有scala-spark使用案例
xgboost windows依赖jar包 用于 spark等计算 maven依赖: <groupId>ml.dmlc <artifactId>xgboost4j-spark <!--windows使用0.81-SNAPSHOT版本--> <!--version>0.80; <version>0.81-SNAPSHOT 包含 ...
hive-exec-1.2.1.spark2.jar spark2-shell 支持 hive2 hadoop3
spark-mong连接jar包 这个主要是spark 用JAVA语言连接mysql , mongodb 数据库的
sparkscala开发依赖包 ECLIPSE 开发IDE需要的对应依赖包
spark 读取excel 的jar 包
通过import org.apache.spark.sql.SparkSession等导入所需要的jar包,基本涵盖了sparksql所需要的jar包
openfire + spark 视频通话 war包放在openfire的plugins下重启openfire jar包spark的plugins目录下即可实现视频聊天功能
windows中使用yarn-cluster模式提交spark任务,百度找不着的啦,看我这里。另外spark的版本要使用正确哦 更简单的方式参考: https://blog.csdn.net/u013314600/article/details/96313579
java提交spark任务到yarn平台的配置讲解共9页.pdf.zip