一直想搞清楚spark读取不同数据源时的分区是怎么决定的,趁着国庆有时间终于下决心来做这个事。关于这个分区数,很多说法,最后决定自己看下源码,也算是接触spark源码的第一步吧。挺多坑,零零散散花了2天多的时间,总算跑通spark源码里面的example了。mark一下。
一、spark源码包下载&解压
spark下载传送门(可能需要翻墙)
下载完,拷贝到自己想放的目录,双击即可解压得到项目文件夹。
二、安装maven&scala
2.1、 先到刚刚解压出来的spark源码根目录,打开pom.xml文件看下maven和scala的版本,安装对应的版本。
scala - 2.11.12
maven - 3.5.4
2.2、安装好后,使用命令查看版本
maven的安装注意将源修改成阿里云的源,不然会慢到怀疑人生…
到这里编译前的准备工作就完成了
三、编译
peterpan@PeterdeMBP ~ % cd Documents/work/projects/idea/spark-2.4.7
peterpan@PeterdeMBP spark-2.4.7 % pwd
/Users/peterpan/Documents/work/projects/idea/spark-2.4.7
peterpan@PeterdeMBP spark-2.4.7 % mvn -T 4 -DskipTests clean package
peterpan@PeterdeMBP spark-2.4.7 %
peterpan@PeterdeMBP spark-2.4.7 %
...
...
...
# after 30-60分钟
...
[INFO]
[INFO] --- maven-source-plugin:3.0.1:jar-no-fork (create-source-jar) @ spark-examples_2.11 ---
[INFO] Building jar: /Users/peterpan/Documents/work/projects/idea/spark-2.4.7/examples/target/spark-examples_2.11-2.4.7-sources.jar
[INFO]
[INFO] --- maven-source-plugin:3.0.1:test-jar-no-fork (create-source-jar) @ spark-examples_2.11 ---
[INFO] Building jar: /Users/peterpan/Documents/work/projects/idea/spark-2.4.7/examples/target/spark-examples_2.11-2.4.7-test-sources.jar
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Spark Project Parent POM 2.4.7 ..................... SUCCESS [ 2.603 s]
[INFO] Spark Project Tags ................................. SUCCESS [ 5.171 s]
[INFO] Spark Project Sketch ..........</