通常我们将Spark任务编写后打包成jar包,使用spark-submit进行提交,因为spark是分布式任务,如果运行机器上没有对应的依赖jar文件就会报ClassNotFound的错误。 
下面有三个解决方法:

方法一:spark-submit –jars

根据spark官网,在提交任务的时候指定–jars,用逗号分开。这样做的缺点是每次都要指定jar包,如果jar包少的话可以这么做,但是如果多的话会很麻烦。

  1. spark-submit --master yarn-client --jars ***.jar,***.jar(你的jar包,用逗号分隔) mysparksubmit.jar

方法二:extraClassPath

提交时在spark-default中设定参数,将所有需要的jar包考到一个文件里,然后在参数中指定该目录就可以了,较上一个方便很多:

  1. spark.executor.extraClassPath=/home/hadoop/wzq_workspace/lib/*
  2. spark.driver.extraClassPath=/home/hadoop/wzq_workspace/lib/*

需要注意的是,你要在所有可能运行spark任务的机器上保证该目录存在,并且将jar包考到所有机器上。这样做的好处是提交代码的时候不用再写一长串jar了,缺点是要把所有的jar包都拷一遍。

方法三:sbt-assembly或maven-assembly

        如果你还是觉得第二种麻烦,这种方法是将所有依赖的jar包,包括你写的代码全部打包在一起。使用sbt工具或者maven工具打包,这种方法打包后会使得jar包很大。
具体的打包方式另找sbt、maven教程。 

Spark任务提交jar包依赖解决方案的更多相关文章

  1. spark减少提交jar包处理

    spark一个应用,算上依赖一百多兆.每一次都如此,坑. 首先是<packing>jar</packing>这只为打包为jar,在plugin中增加一个assembly插件,这 ...

  2. spark提交jar包时出现unsupported major.minor version 52.0错误的解决方案

    一.问题: 最近在spark集群上做一个项目,打包提交jar包时,出现了unsupported major.minor version 52.0的报错,而在local模式运行却能正常运行! 二.错误原 ...

  3. 【maven】排除maven中jar包依赖的解决过程 例子:spring cloud启动zipkin,报错maven依赖jar包冲突 Class path contains multiple SLF4J bindings.

    一直对于maven中解决jar包依赖问题的解决方法纠结不清: 下面这个例子可以说明一个很简单的解决方法: 项目启动报错: Connected to the target VM, address: '1 ...

  4. IDEA从Github中Clone Maven项目,解决树形目录及Jar包依赖的问题

    很多人在开发中都会碰到的一个问题,当我们用IDEA从Github中检出Maven工程后(Java),发现既不能运行,也不能编译,左侧的树形目录还怪怪的,现在就来说说如何解决这个问题. IDEA从git ...

  5. 如何查看Maven项目中的jar包依赖树情况

    对于开发人员,我想大家对于Maven应该不会陌生吧,如何在一个Maven项目中对这个项目中所引用的第三方jar包有个直观的了解呢? 其实实现很简单,只需要借助于Maven的一条命令,如下所示: mvn ...

  6. maven添加jar包依赖

    maven的东西使用了一段时间,但是每次使用都多少有点含糊,所以总结一下. 目前主要使用是在jar包的控制上 原理: 在本地,指定一个文件夹,便是maven的仓库,maven会从远程的中央仓库中下载你 ...

  7. Failed to read artifact descriptor for xxx:jar 的Maven项目jar包依赖配置的问题解决

    在开发的过程中,尤其是新手,我们经常遇到Maven下载依赖jar包的问题,也就是遇到“Failed to read artifact descriptor for xxx:jar”的错误. 对于这种非 ...

  8. Maven仓库搜索jar包依赖网址

    可在该网站搜索jar包依赖 http://search.maven.org/

  9. 自动配置pom文件,构建maven项目jar包依赖关系,找到jar包运用到jmeter

    首先说下pom文件特别方便的优点: 什么是pom文件? POM(Project Object Model) 是Maven的基础. 它是一个XML文件,包含了Maven用来build项目所需要的项目配置 ...

随机推荐

  1. 利用itext生成pdf的简单例子

    一.itext简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文 ...

  2. 几种常见数据库的driverClassName和url

    DB2: driverClassName:com.ibm.db2.jcc.DB2Driver url:jdbc:db2://localhost:50000/sample Oracle: driverC ...

  3. oracle函数创建及调用

    创建函数的语法如下: CREATE [OR REPLACE] FUNCTION function_name[ (argment [ { IN | OUT | IN OUT } ] Type , arg ...

  4. make clean,make distclean与make depend的区别

    make clean仅仅是清除之前编译的可执行文件及配置文件. 而make distclean要清除所有生成的文件. Makefile 在符合GNU Makefiel惯例的Makefile中,包含了一 ...

  5. 【计算机视觉】KCF算法

    code opencv3.3.1-contrib  ---- TrackerKCF.cpp opencv如何更新目标区域的过程: // calculate filter response if(par ...

  6. 九度OJ1108-堆栈的使用

    题目1108:堆栈的使用 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:11620 解决:3372 题目描述: 堆栈是一种基本的数据结构.堆栈具有两种基本操作方式,push 和 pop.P ...

  7. TJU Problem 2548 Celebrity jeopardy

    下次不要被长题目吓到,其实不一定难. 先看输入输出,再揣测题意. 原文: 2548.   Celebrity jeopardy Time Limit: 1.0 Seconds   Memory Lim ...

  8. xdoj1194----(bsgs-用数组实现链表 真的是好啊)

    #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> ...

  9. java-BigDecimal类

    1.BigDecimal类的概述和方法使用 * A:BigDecimal的概述 * 由于在运算的时候,float类型和double很容易丢失精度. * 所以,为了能精确的表示.计算浮点数,Java提供 ...

  10. 2017.7.11 fuse工作原理

    FUSE的工作原理如图所示.假设基于FUSE的用户态文件系统hello挂载在/tmp/fuse目录下.当应用层程序要访问/tmp/fuse下的文件时,通过glibc中的函数进行系统调用,处理这些系统调 ...