Spark源码的下载和编译

1.spark的下载

打开网址spark.apache.org,点击download,选择想要下载的版本,我这里选择了最新的2.2.0版本

在choose a package type 中选择source code,获取spark2.2.0的下载镜像,即可完成下载。

(官网有时候版本切换会有问题,可以在download spark下方的signatures and checksums中选择想要的版本)

2.spark的编译

spark2.2.0的maven版本要求3.3.9以上,jdk要求8以上。scala最好选择2.11版本,内存要求2-8个G(重要)

编译这部分主要看官网,spark.apache.org

官网给了两种编译方式,个人喜欢打包的方式,因为打包完成后可以根据自己的需要去部署spark环境,所以也推荐打包编译方式

spark源码中提供了一个脚本,是根目录dev下的make-distribution,我们可以通过这个脚本对spark进行编译

命令是这样的:./dev/make-distribution.sh --name 2.6.0-cdh5.7.0 --tgz  -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.7.0

--name 是指定编译完成后的文件名的,用版本号即可,清晰明了,文件名的格式可以在make-distribution.sh源码中找到:spark-$VERSION-bin-$NAME.tgz

--tgz 就是说要打包成tgz格式 

-P 对应的是pom.xml源码中的,根据需要进行选择

-D 是用来更改版本的,我们更改hadoop的版本为2.6.0-cdh5.7.0,也能在pom.xml中找到

第一次编译时间会很慢,内存和网速够用的话1个小时也许就能编译完成,我第一次编译整整编译了一个通宵,这里有一个提高编译速度的小tip

我们看make-distribution.sh的源码,找到这部分

VERSION=$("$MVN" help:evaluate -Dexpression=project.version $@ 2>/dev/null | grep -v "INFO" | tail -n 1)
SCALA_VERSION=$("$MVN" help:evaluate -Dexpression=scala.binary.version $@ 2>/dev/null\
    | grep -v "INFO"\
    | tail -n 1)
SPARK_HADOOP_VERSION=$("$MVN" help:evaluate -Dexpression=hadoop.version $@ 2>/dev/null\
    | grep -v "INFO"\
    | tail -n 1)
SPARK_HIVE=$("$MVN" help:evaluate -Dexpression=project.activeProfiles -pl sql/hive $@ 2>/dev/null\
    | grep -v "INFO"\
    | fgrep --count "hive";\
    # Reset exit status to 0, otherwise the script stops here if the last grep finds nothing\
    # because we use "set -o pipefail"
    echo -n)

这部分是检测我们的环境变量以确定我们的spark,scala,hadoop和hive的版本,我们可以通过直接将我们的版本加上去来提速

VERSION = 2.2.0 #spark的版本为2.2.0

SCALA_VERSION = 2.11 #scala的版本为2.11

SPARK_HADOOP_VERSION = 2.6.0-cdh5.7.0 #hadoop的版本为2.6.0-cdh5.7.0

SPARK_HIVE = 1 #支持hive

最后我编译完成后的文件为spark2.2.0-bin-2.6.0-cdh5.7.0.tgz,我们就可以用这个包进行部署啦

你可能感兴趣的:(报错,Spark)