zoukankan      html  css  js  c++  java
  • 使用 IntelliJ IDEA 导入 Spark源码及编译 Spark 源代码

    各位工程师累了吗? 推荐一篇可以让你技术能力达到出神入化的网站"宅男门诊"

    1. 准备工作

    首先你的系统中需要安装了 JDK 1.6+,并且安装了 Scala。之后下载最新版的 IntelliJ IDEA 后,首先安装(第一次打开会推荐你安装)Scala 插件,相关方法就不多说了。至此,你的系统中应该可以在命令行中运行 Scala。我的系统环境如下:

    1. Mac OS X(10.10.4)
    2.JDK 1.7.79
    3.Scala 2.10.4
    4. IntelliJ IDEA 14
    

    另外,最后还是建议大家开始先使用 pre-built 的 Spark,对 Spark 的运行、使用方法有所了解,编写了一些 Spark 应用程序后再展开源代码的阅读,并尝试修改源码,进行手动编译。

    2. 从 Github 导入 Spark 工程

    打开IntelliJ IDEA 后,在菜单栏中选择 VCS→Check out from Version Control→Git,之后在 Git Repository URL 中填入 Spark 项目的地址,并指定好本地路径,如下图所示。

    点击该窗口中的的 Clone 后,开始从 Github 中 clone 该项目,该过程试你网速而定,大概需要3-10分钟。

    3. 编译 Spark(开发 jar 包)

    当 clone 完毕后,IntelliJ IDEA 会自动提示你该项目有对应的 pom.xml 文件,是否打开。这里直接选择 Open 该 pom.xml 文件,然后系统会自动解析项目的相关依赖,该步骤也会因你的网络和系统相关环境,所需时间不同。

    该步骤完成之后,请手动编辑 Spark 根目录下的 pom.xml 文件,找到其中指定 java 版本的那一行(java.version),根据你的系统环境,如果使用的是 jdk1.7 ,那么或许需要你将其值改成1.7(默认是1.6)。

    之后打开 shell 终端,在命令行中进入刚才导入的 spark 项目根目录,执行

    sbt/sbt assembly
    该编译命令将全部采用默认的配置来编译 Spark,若想指定相关组件的版本,可以查看 Spark 官网中的 Build-Spark(http://spark.apache.org/docs/latest/building-spark.html),查看所有常用的编译选项。该过程目前不需要 VPN 即可完成,为了预估编译所需的时间,你可以在新开一个 shell 终端,不断查看 spark 项目目录的大小,我最终采用默认配置,编译成功后的 spark 目录大小为2.0G。

    4.编译 spark (生成部署安装包)

    编译完源代码后,虽然直接用编译后的目录再加以配置就可以运行spark,但是这时目录很庞大,部署起来不方便,所以需要生成部署包。
    spark源码根目录下带有一个脚本文件make-distribution.sh可以生成部署包,其参数有:

    --tgz:在根目录下生成 spark-$VERSION-bin.tar.gz,不加参数是不生成tgz文件,只生成/dist目录。
    --hadoop VERSION:打包时所用的Hadoop版本号,不加参数时为1.0.4。
    --with-yarn:是否支持Hadoop YARN,不加参数时为不支持yarn。
    --with-tachyon:是否支持内存文件系统Tachyon,不加参数时为不支持,此参数spark1.0.0-SNAPSHOT之后提供。
    

    如果要生成spark支持yarn、hadoop2.6.0的部署包,只需要将源代码复制到指定目录,进入该目录后运行:

    make-distribution.sh --name custom-spark --tgz -Psparkr -Phadoop-2.6 -Phive -Phive-thriftserver -Pyarn
    
    make-distribution.sh --tgz --skip-java-test -Pyarn -Phadoop-2.6-Dhadoop.version=2.6.0 -Phive -Phive-thriftserver -DskipTests clean package
    
    

    阿斯达f

    5. 结束语

    至此,为了检验你的编译结果,可以在命令行中进入 spark/bin 目录,运行 spark-shell,若一切都正常启动,则编译成功。若你修改了 Spark 的源码,可以重新使用 sbt 来进行编译,并且编译的时间不会像第一次编译那么长。

  • 相关阅读:
    使用Uiautomator语法定位元素时,报错此元素不是一个字符串 is not a string 【已解决】
    真机使用adb命令打开包名报错 java.lang.SecurityException: Permission Denial: starting Intent 【已解决】
    Genymotion安装apk时报错 Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113] 【已解决】
    python+appium【第四章-adb命令之monkey命令】
    python+appium【第三章-adb命令之日志打印】
    弄明白5种IO模型
    Java网络编程
    Java中抽象类的构造器的作用
    mysql中sum与if,case when 结合使用
    逆向实战 | galgame的汉化研究(新坑)
  • 原文地址:https://www.cnblogs.com/chaoren399/p/5627896.html
Copyright © 2011-2022 走看看