IDEAの達人ジャー包装プロセスを使用してプラグイン

Mavenのプラグインのjarパッケージング段階と遭遇した問題を使用するためのアイデア

  アイデアは、Mavenのツールを付属し、アイデアMavenは右のオプションをクリックします。

  

まず、ダイレクトコピーのように、ポンポンで次のオプションをプラグインを追加

          <プラグイン> 
                <たartifactId> Mavenのアセンブリ・プラグイン</たartifactId> 
                <バージョン> 2.4 </バージョン> 
                <構成> 
                    <descriptorRefs> 
                        <descriptorRef>ジャー付き依存性</ descriptorRef> 
                    </ descriptorRefs> 
                    <アーカイブ> 
                        <マニフェスト> 
                            <mainClass> test.TestOperFile </ mainClass> 
                        </マニフェスト> 
                    </アーカイブ> 
                </構成> 
                <実行>
                    <実行>  
                        <ID>メイクアセンブリ</ ID>
                        <フェーズ>パッケージ</位相> 
                        <目標> 
                            <目標>シングル</目標> 
                        </目標> 
                    </実行> 
                </実行> 
            </プラグイン>

注意:この場所にプラグインがに注意を払う必要があります。

ここでは、2つのケースがあります

  。Scalaのプログラムパッケージ

    のみのパッケージのScalaプログラムは、ここで表されるメソッド名の主な機能である場合は、フルパス名が(パッケージ名+クラス名)でなければなりません

    JARパッケージを実行します。java -jar test.jar [パラメータ1パラメータ2 ...]

  B。包装スパークプログラム

    それがパッケージ化され、スパークプログラムである場合は、ここでは無料で、影響はありませんが、実行時には、クラス名を指定する必要があります

    ジャーパッケージ操作:

        spark-submit --class test.testOperator \
          --master yarn \
          --deploy-mode client \
          --driver-memory 3g \
          --executor-memory 2g  \
          --executor-cores 1 \
          --num-executors 4 \
          --jars /hadoop/datadir/deploy/lib/mysql-connector-java-5.1.7-bin.jar \
          --conf spark.sql.shuffle.partitions=100 \
          --conf spark.shuffle.sort.bypassMergeThreshold=5 \
          --conf spark.kryoserializer.buffer.max=128m \
          --conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
          --conf spark.sql.parquet.compression.codec=snappy \
          --conf spark.shuffle.sort.bypassMergeThreshold=5 \
          --conf spark.locality.wait.node=6 \
          --conf spark.locality.wait.process=6 \
          test.jar [参数1,参数2...]

        运行参数可以根据自己的需求进行调整

二、开始打包(清空target目录->编译->打包),有时候也需要执行install进行发布到仓库中,根据自己的需求

  

打包后的结果:

  如果出现上图所示,说明打包成功,此时找到右边的target目录,下面会有两个包:

           

  然后执行的时候,我们只需要执行第二个包就可以了,也就是名字长的那个包:

三,jar包的执行:

  a.对于scala程序的jar包,因为main函数已经在pom中打包之前指定了,所以执行的时候如果有参数,只需要传入相应的参数即可,用空格分开

    1、使用 "java -jar" 的方式提交:

    

    2、使用submit的方式提交程序

    

    可以看到,也可使用submit的方式进行提交,可以指定--class,也可以不指定

    b.对于spark程序的jar包,此时即使是在pom中指定了main函数,在提交的执行的时候必须按照spark程序的提交方式进行提交,即使用submit的方式,不能用 java -jar的方式提交,否则会报错

    1、使用submit的方式提交程序:

     

    这样提交运行之后是没有什么问题的

    2、使用 "java -jar" 的方式提交:

      

    报错,至于如何解决,本人暂时还没有找到好的方案。希望能够帮到需要的童鞋

  

おすすめ

転載: www.cnblogs.com/Gxiaobai/p/10960599.html