Maven编译打包spark(2.1.0)源码及出现问题的解决方案(win7+Intellij IDEA)

来源:互联网 发布:lena藤井莉娜的淘宝店 编辑:程序博客网 时间:2024/06/05 16:45

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

                    

阅读全文
3 0
原创粉丝点击