Spark2.2.0源码构建阅读

作者: 零度沸腾_yjz | 来源:发表于2017-07-25 15:46 被阅读271次

    源码下载

    源码获取有两种渠道:一种是通过Spark官网直接下载,第二种是通过github直接将spark的代码clone下来。
    官网地址:https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0.tgz
    github地址:https://github.com/apache/spark/tree/branch-2.2
    解压后目录:

    解压目录

    源码编译

    工具 版本
    maven 3.3.9+
    jdk 8+

    设置maven内存

    <pre>
    export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
    </pre>

    如果不调大maven内存,有可能会报:
    <pre>

    [INFO] Compiling 203 Scala sources and 9 Java sources to /Users/me/Development/spark/core/target/scala-2.11/classes...
    [ERROR] Java heap space -> [Help 1]
    </pre>

    Maven源码编译

    自动化构建

    在源码build目录下面有一个maven的独立安装脚本,这样能够帮助你轻松构建源码,这个脚本会自动下载和安装所有必须的构建要求。
    <pre>
    ./build/mvn -DskipTests clean package
    </pre>

    指定Hadoop版本

    可以通过hadoop.version指定Hadoop版本,如果未设置则采用默认的2.6.x版本,如果yarn的版本与Hadoop不一致,可以使用yarn.version来指定版本。
    <pre>
    ./build/mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 -DskipTests clean package
    </pre>

    Hive和JDBC支持

    Hive默认版本是1.2.1
    <pre>

    With Hive 1.2.1 support

    ./build/mvn -Pyarn -Phive -Phive-thriftserver -DskipTests clean package
    </pre>

    使用Mesos

    如果使用Mesos作为资源管理容器,可以指定mesos:
    <pre>
    ./build/mvn -Pmesos -DskipTests clean package
    </pre>

    单独构建子模块

    如果想要单独构建子模块,可以是使用maven的-pl参数。spark-streaming_2.11是其maven坐标的artifactId,定义在streaming/pom.xml中。
    <pre>
    ./build/mvn -pl :spark-streaming_2.11 clean install
    </pre>

    SBT源码编译

    官方推荐打包使用maven来构建,但因为SBT支持日常的开发,所以它能够更快速的迭代编译。
    <pre>
    ./build/sbt package
    </pre>

    编译完成

    源码编译

    IDEA导入源码

    Rebuild Project

    打开idea后,open之前刚才编译好的目录,需要做一些额外的操作,否则Rebuild Project会失败。

    1、点击File→Project Structure->Model->spark-streaming-flume-sink_2.11,右键target目录取消Exclude。

    target取消Exclude

    2、当前target->scala-2.11->src_managed->main→compiled_avro右键标记为Source目录。
    3、Build->Rebuild Project 项目即可

    环境配置

    Spark的配置都在conf目录下面,可以将spark-env.sh.template复制一份spark-env.sh,进行相应的配置(直接运行可skip)。

    Spark运行

    sbin/start-master.sh
    sbin/start-slave.sh spark://${localhost}:7077
    ${localhost}为你主机,如果不知道可以查看master的打印日志,会将其打印出来。
    检查WebUI:http://localhost:8080/

    webUI

    运行作业:bin/run-example SparkPi
    Pi is roughly 3.1471357356786784
    ok搭建完成

    相关文章

      网友评论

        本文标题:Spark2.2.0源码构建阅读

        本文链接:https://www.haomeiwen.com/subject/zcwwkxtx.html