`
kavy
  • 浏览: 888193 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spark任务提交jar包依赖解决方案

 
阅读更多
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-core_2.11-1.5.2.logging.jar解决spark升级没有log的jar包

    ### Spark升级后遇到`java.lang.NoClassDefFoundError: org/apache/spark/Logging`问题解决方案 #### 一、问题背景及现象 在升级Spark至2.1版本之后,在使用streaming-kafka进行测试时,遇到了`java.lang....

    Flume对接Spark Streaming的相关jar包

    在大数据处理领域,Flume 和 Spark Streaming 是两个重要的工具,它们分别用于数据收集与实时流处理。...这种架构充分利用了 Flume 的稳定性与 Spark Streaming 的高性能,是大数据实时处理领域常见的解决方案之一。

    spark-assembly-1.5.2-hadoop2.6.0jar包

    Spark支持批处理、交互式查询(如SQL)、流处理和机器学习等多种计算模式,使其成为一站式的大数据解决方案。 这个jar包包含了Spark的所有核心库,包括: 1. Spark Core:Spark的基础模块,提供了分布式任务调度、...

    Kettle二次开发主要依赖的Jar包

    Kettle,全称为Pentaho Data Integration(PDI),是一款强大...总之,Kettle二次开发是提升Kettle灵活性和适应性的关键,通过理解和利用其主要依赖的Jar包,我们可以构建出更强大、更符合业务需求的数据集成解决方案。

    spark 二次开发所需缺失3jar包

    它提供了高可用性、可伸缩性和持久性的数据存储解决方案。在Spark的源码工程中,如果缺少这个jar包,可能会导致与缓存相关的功能无法正常工作。 2. **Coherence.jar**: 这是Coherence的核心库文件,包含了...

    openfire + spark 视频通话 war包和jar包

    在标题和描述中提到的"openfire + spark 视频通话 war包和jar包",指的是为了启用视频通话功能,你需要将特定的资源文件部署到Openfire和Spark的相应目录下。`redfire.war`是一个Web应用程序档案(WAR),这是Java...

    hadoop的各种jar包

    此外,了解Hadoop的其他组件,如HBase、Spark等,可以帮助你构建更复杂的数据处理解决方案。 总之,正确配置和使用Hadoop的JAR包是开发Hadoop应用程序的关键。通过Eclipse这样的IDE,可以方便地管理这些依赖,加速...

    original-spark-examples-2.4.3.jar.zip

    - 在编译过程中,记录每一步的详细操作,以便于复现或分享解决方案。 - 保持Spark和HBase的版本同步更新,以减少兼容性问题。 通过以上步骤,我们不仅可以解决PySpark访问HBase2的错误,还能更深入地理解Spark和...

    阿里云Elasticsearch7.x jar包.zip

    这些组件和依赖项共同构成了阿里云Elasticsearch 7.x的强大功能,为企业级数据处理和分析提供了高效、灵活的解决方案。在实际应用中,开发者可以根据需求选择使用这些组件,以优化系统性能和功能。

    全jar包.zip

    - Hadoop生态系统内的各个组件通常需要协同工作,因此理解每个组件的职责和接口,以及如何在它们之间进行交互,是成功实现大数据解决方案的关键。 综上所述,【全jar包.zip】提供的是一套完整的Hadoop及相关组件的...

    大数据Spark二次开发.pdf

    大数据Spark二次开发 ...4. 导入Idea将样例工程导入到Idea中,并同时导入spark依赖的hadoop的jar包。 通过本课程,您将能够了解Spark任务运行流程,搭建开发环境,运行程序,并掌握Spark核心概念RDD的使用。

    Hue-oozie运行spark

    接下来,我们将详细解读使用Hue编辑workflows提交Spark程序的过程、常见错误及解决方案。 首先,要使用Hue提交Spark程序,需要在Hue界面上操作。Hue界面提供了直观的交互界面,允许用户通过点击操作来完成复杂的...

    spark sparkStreaming sparkMaven

    总的来说,Spark为大数据处理提供了高效且灵活的解决方案,SparkStreaming则进一步扩展了Spark在实时数据流处理的能力。结合Maven,开发者可以更轻松地管理和构建基于Spark的项目,从而在大数据领域发挥出强大的效能...

    Spark不能使用hive自定义函数.doc

    2. **类路径问题**:Spark 在启动时可能没有正确地加载到 Hive 的自定义函数所在的 jar 包。 3. **依赖管理**:Hive UDF 所需的库或者依赖可能未被正确安装或配置。 #### 三、解决方案 为了解决 Spark 无法使用 ...

    适配CDH6.3.2的Spark3.2.2

    CDH是一个流行的Hadoop发行版,包含了Hadoop生态系统中的多个组件,如HDFS、YARN、Hive等,为大数据处理提供了一整套解决方案。 在CDH6.3.2中集成Spark3.2.2,用户可以利用Spark的新功能来提升大数据处理的效率和...

    flink-shaded-hadoop-2-uber-2.7.5-10.0.jar.zip

    此外,这种 JAR 文件便于分发和执行,因为用户只需要提交这一个 JAR 到集群,而无需关心内部的依赖关系。 这个特定版本的 Flink Shaded Hadoop Uber JAR 针对的是 Hadoop 2.7.5,这意味着它兼容这个版本的 Hadoop ...

    jackson2.4.4(spark2.1.1)

    6. **社区求助**:如果问题仍然无法解决,可以在Spark或Jackson的用户论坛、Stack Overflow等社区寻求帮助,分享遇到的问题和尝试过的解决方案。 在压缩包子文件的文件名称列表中,"spark2.1.1与对应的jackson2.4.4...

    spark-2.4.7-bin-hadoop2.6.tgz

    Spark是Apache软件基金会下的一个开源大数据处理框架,其2.4.7版本是该框架的一个稳定版本,提供了高效、容错性...通过与Hadoop2.6的兼容,Spark可以无缝集成到现有的Hadoop生态系统中,提供高效的大数据处理解决方案。

    spark_2.6.1.zip

    Spark 2.6.1是Apache Spark的一个稳定版本,它是一个强大的开源大数据处理框架,用于高效、快速地处理大...通过深入理解Spark的核心概念和组件,以及利用提供的源代码和文档,你可以构建出高效、灵活的大数据解决方案。

    hadoop2.7.2 window10编译后jar包

    Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在廉价硬件上处理大量数据,是大数据处理领域的...在使用过程中,遇到任何问题,可以查阅官方文档,或者参考社区的解决方案,进一步优化你的Hadoop体验。

Global site tag (gtag.js) - Google Analytics