Spark源码编译和IDEA导入源码

官方部署文档:http://spark.apache.org/docs/latest/building-spark.html
spark的github源码下载地址:https://github.com/apache/spark

源码编译

  1. 设置maven的执行内存:export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=1g"
  2. 打包:./build/mvn -DskipTests clean package
  3. 编译:./dev/make-distribution.sh --name 2.6.0-cdh5.16.2 --tgz -Pyarn -Phive -Phive-thriftserver -Pscala-2.12 -Phadoop-2.6 -Dhadoop.version=2.6.0-cdh5.16.2
    编译完后的版本:spark-2.4.5-bin-2.6.0-cdh5.16.2.tgz

IDEA导入源码

1、最好改下maven的setting.xml

   <mirror>
      <id>cloudera</id>
      <mirrorOf>cloudera</mirrorOf>
      <name>cloudera-repo</name>
      <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
    </mirror>
   <mirror>
      <id>cloudera</id>
      <mirrorOf>cloudera</mirrorOf>
      <name>cloudera-repo</name>
      <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
    </mirror>

2、scala2.12修改问题
由于spark2.4.5默认的pom.xml汇总,scala是2.11版本的,所以我们需要修改,我们在spark的源码文件夹下,通过git bash输入命令

./dev/change-scala-version.sh 2.12

3、修改主pom.xml的jdk/scala/maven的版本
Spark源码编译和IDEA导入源码_第1张图片

测试

1、主pom.xml加上如下配置,并且激活

<profile>
      <id>add-dependencies-for-IDEA</id>

      <activation>
        <property>
          <name>idea.version</name>
        </property>
      </activation>

      <dependencies>
        <dependency>
          <groupId>com.google.guava</groupId>
          <artifactId>guava</artifactId>
          <version>14.0.1</version>
          <scope>compile</scope>
        </dependency>
      </dependencies>
    </profile>

Spark源码编译和IDEA导入源码_第2张图片2、源码目录需要执行命令

./build/spark-build-info /d/Projects/IdeaProjects/spark-2.4.5/core/target/extra-resources spark-core_2.12

其中 /target/extra-resources 必须这么写

Spark源码编译和IDEA导入源码_第3张图片
测试代码记得勾选:include dependencies with “Provided” scope
Spark源码编译和IDEA导入源码_第4张图片
代码爆红但是不影响,如果看着不舒服可以找个代码拷贝一份License
Spark源码编译和IDEA导入源码_第5张图片

你可能感兴趣的:(spark)