Maven編譯打包spark(2.1.0)源碼及出現問題的解決方案(win7+Intellij IDEA)


Maven編譯打包spark(2.1.0)源碼及出現問題的解決方案(win7+Intellij IDEA)

1、相關安裝請參照:http://blog.csdn.net/u011464774/article/details/76697183

      不要在intellij里配置spark這一步,這里是對spark源碼編譯,因此不需要這一步,其他安裝不變。

2、下載spark源碼,並解壓

      官網http://spark.apache.org/downloads.html

     

3、打開spark源碼下的pom.xml文件,修改對應的java和intellij里的maven版本

     

4、打開intellij,inport Project

     將saprk源碼添加進來

     

     選擇Maven

     

     勾選箭頭指示的選項

     

     添加yarn和hadoop2.4選項,其他保持默認

          

        

    

    

5、工程導入以后,點擊右側Maven Project,然后點擊第二個按鈕,Generate Sources and Update Folders For All Projects,點擊后Maven會下載編譯需要的源碼,需要等待一段時間,長短依賴網絡的好壞

     

6、此過程完成之后就可點擊菜單的build進行編譯,中間會出現一些問題,不要害怕,慢慢解決

      問題1

      

     解決方法:

      

      問題2、

       spark\external\flume-sink\src\main\scala\org\apache\spark\streaming\flume\sink\SparkAvroCallbackHandler.scala

       Error:(45, 66) not found: type SparkFlumeProtocol

      解決方案:有時需要重復進行幾次

     

      問題3、

       \spark\sql\catalyst\src\main\scala\org\apache\spark\sql\catalyst\parser\AstBuilder.scala

        Error:(34, 45) object SqlBaseParser is not a member of package org.apache.spark.sql.catalyst.parser

        import org.apache.spark.sql.catalyst.parser.SqlBaseParser._

        解決方案:

        類似於問題2,請參照問題2的解決方案

       一般解決這三個問題后就可以編譯成功,不要管警告

      

       問題4、關於用example里的例子測試的問題       

     

     解決方案:

     這個問題是需要在example model里將編譯打包的jar包添加進來。后面講Maven編譯打包

      

7、Maven編譯打包

     (1)檢查Maven版本(在settings),並在pom.xml文件里修改

     

       (2)檢查scala包

      

        版本保持一致,如果不一致,請刪除后重新添加

     

      編譯打包

      maven設置

      -Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m 

  添加到VM option:

    

    按照下面操作步驟開始打包編譯

    

    如果前面的配置全部正確,這里就可以打包成功。

     jar包在源碼目錄D:\Documents\spark-2.1.0\spark-2.1.0\assembly\target\scala-2.11\jars

     如果修改了某一個包里的源代碼,可以單獨編譯這個包,方法和打包全部類似,只是選中你想要的包,然后進行打包操作。產生的jar包在各自源代碼目錄下D:\Documents\spark-2.1.0\spark-2.1.0\mllib\target下,可單獨替換,然后就可以二次開發了。

   

8、編譯打包過程中可能出現的問題

    (1)、Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (default) on project spark-core_2.11: An Ant BuildException has occured: Execute failed: java.io.IOException: Cannot run program "bash" (in directory "C:\soft\spark\spark-2.0.0\core"): CreateProcess error=2,
[ERROR] around Ant part ...<exec executable="bash">... @ 4:27 in C:\soft\spark\spark-2.0.0\core\target\antrun\build-main.xml
[ERROR] -> [Help 1]
       解決方案
       安裝git,
       將Git下面的bin路徑加入系統Path中:D:\Program Files \git\bin

      (2)測試example中例子出現的問題(spark分布式計算依賴於hadoop,因此要設置成本地模式運行)

              例如:在val conf = new SparkConf().setAppName("DecisionTreeRegressionExample")句后加setMaster("local[2]")

             val conf = new SparkConf().setAppName("DecisionTreeRegressionExample").setMaster("local[2]")  根據自己的內核

              和可以在IDEA里設置

    

         解決方法

         將編譯產生的jar包添加到example Module

    

     (3) [ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce (enforce-versions) on             project spark-parent_2.11: Some Enforcer rules

       have failed. Look above for specific messages explaining why the rule failed. -> [Help 1]
       [ERROR]
       [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
       [ERROR] Re-run Maven using the -X switch to enable full debug logging.
       [ERROR]
       [ERROR] For more information about the errors and possible solutions, please read the following articles:
       [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
       解決方案:
       Maven版本不對,查看intellij的maven版本,修改對應的pox.hml文件的maven版本(檢查方法如上)

    (4)ERROR Shell: Failed to locate the winutils binary in the hadoop binary path

             配置環境變量E:\\ProgramFiles\\hadoop-2.6.0重啟電腦。或者代碼中設置System.setProperty("hadoop.home.dir","E:\\Program           Files\\hadoop-2.6.0");

            還有一種可能HADOOP_HOMEbin目錄下根本沒有winutils.exe

           下載地址https://github.com/srccodes/hadoop-common-      2.2.0-bin

參考文獻:https://siliconhalli.org/2017/02/09/spark-build-spark-from-source-on-windo/

                    https://msd.misuland.com/pd/300142128795750400

                    http://blog.csdn.net/ggz631047367/article/details/53811213

                    http://www.orz520.com/a/game/2017/0704/822643.html?from=haosou

                    http://blog.csdn.net/book_mmicky/article/details/25714445

                    


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com