一、Spark 2.4.0 源码编译

1.环境准备

  1. JAVA
    java的话,直接安装个1.8就行了,配置好环境变量和JAVA_HOME,在cmd当中java一下,确认java安装好即可。

  2. scala
    scala安装和java类似,把Scala安装包解压,然后配置好Windows环境变量中的path当中还有SCALA_HOME,这里根据你想要阅读的源码,选择合适的scala版本,我用的是scala 2.11版本,然后scala -version一下,确认安装好了。

  3. maven
    maven 安装也是一样的,配置好MAVEN_HOME还有path即可。我安装的版本是3.6.1,推荐你们使用比较新的maven版本

  4. IDEA
    这个根据个人选择选择合适的开发工具,如果选择了idea,记得选择File->setting->plugins 然后搜索scala,安装scala插件。

  5. git
    安装git是为了拉源码进行编译和源码阅读,直接从官网下安装即可。

  6. spark源码
    spark源码我选择的是2.4版本,这里有个需要注意的问题是如果你直接从git上拉代码,可能超级慢,这里推荐个方法,就是注册个码云(https://gitee.com/),然后注册好进去后,然后点右上角加号,有个
    一、Spark 2.4.0 源码编译_第1张图片然后新建仓库
    一、Spark 2.4.0 源码编译_第2张图片然后导入https://github.com/apache/spark.git 这个spark git上的地址,你就在码云上有了自己的仓库,然后从码云去clone代码,就会快得多。
    一、Spark 2.4.0 源码编译_第3张图片

2.编译代码

编译命令,建议使用git bash来编译,不然有的sh命令跑不通。

mvn -Pyarn -Phadoop2.7.4 -Pkinesis-asl -Phive -DskipTests clean package

进行编译的时候,可能会有这么以下几个问题:
一、
下载某个依赖或者插件超时,显示timeout,这时可能是网络的问题(pom里指定默认仓库还像是谷歌,根本连不上。。。)
打开spark source里面spark-parent的pom文件(就是·父目录的pom),修改如下内容:


    
      
      central
      Maven Repository
      
      http://maven.aliyun.com/nexus/content/groups/public/
      
        true
      
      
        false
      
    















  
  
    
      central
      
      http://maven.aliyun.com/nexus/content/groups/public/
      
        true
      
      
        false
      
    















  

将仓库改为国内地址,因为pom默认指定的是谷歌仓库地址,而且第二默认的maven仓库地址感觉也不好用,所以这里要改一下。

二、
Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed
这时因为spark中用插件对java版本和maven版本进行了规约。
一、Spark 2.4.0 源码编译_第4张图片 一、Spark 2.4.0 源码编译_第5张图片因为我本地安装的maven版本是3.6.1,所以有两种方法:
1.要么安装3.6.3的manven版本
2.将图中的参数改为3.6.1

如果你觉得maven版本和spark当中规约的版本相差不大(别差一个大版本那种),可以更改图中参数。

在这里插入图片描述
一、Spark 2.4.0 源码编译_第6张图片
三、中途如果有多次中断或者卡死,内存溢出啥的,直接杀掉从新编译即可

经过上述问题,即可顺利编译spark源码啦。

一、Spark 2.4.0 源码编译_第7张图片上面就算是编译完成了,对了,提醒一点,编译的时候,建议使用git bash来编译,因为里面要涉及到linux命令。

你可能感兴趣的:(spark,spark)