zoukankan      html  css  js  c++  java
  • Spark任务提交jar包依赖解决方案

     
            通常我们将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教程。 

  • 相关阅读:
    论自己电脑如何搭建服务器
    nodejs + express + art-template + mongodb简单项目
    npm和yarn使用
    Linux内核编译
    Linux 网络编程
    Linux进程管理
    LeetCode1576. 替换所有的问号
    LeetCode392. 判断子序列
    LeetCode674. 最长连续递增序列
    剑指 Offer 48. 最长不含重复字符的子字符串
  • 原文地址:https://www.cnblogs.com/yangcx666/p/8723902.html
Copyright © 2011-2022 走看看