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

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 -Pyarnmake-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 来进行编译,并且编译的时间不会像第一次编译那么长。

转载于:https://www.cnblogs.com/chaoren399/p/5627896.html

使用 IntelliJ IDEA 导入 Spark源码及编译 Spark 源代码相关推荐

  1. spark 源码分析之八--Spark RPC剖析之TransportContext和TransportClientFactory剖析

    spark 源码分析之八--Spark RPC剖析之TransportContext和TransportClientFactory剖析 TransportContext 首先官方文档对Transpor ...

  2. Spark源码的编译过程详细解读(各版本)(博主推荐)

    本文转自大数据躺过的坑博客园博客,原文链接:xxxxx,如需转载请自行联系原作者说在前面的话 重新试多几次.编译过程中会出现下载某个包的时间太久,这是由于连接网站的过程中会出现假死,按ctrl+c,重 ...

  3. Spark源码打包编译的过程

    前言 上篇文章介绍了下 安装sbt环境 启动scala项目 安装SBT环境运行Scala项目 为什么要弄这个 因为我本来是想对spark源码编译部署 spark是用scala语言编译的 spark源码 ...

  4. Spark源码走读10——Spark On Yarn

    首先需要修改配置文件spark-env.sh.在这个文件中需要添加两个属性: Export HADOOP_HOME=/../hadoop.. ExportHADOOP_CONF_DIR=/../had ...

  5. Spark源码阅读(五) --- Spark的支持的join方式以及join策略

    版本变动 2021-08-30 增加了对Broadcast Hash Join小表大小的评估内容 增加了对Sort Merge Join优于Shuffle Hash Join调用的解释 目录 Spar ...

  6. spark 源码分析之七--Spark RPC剖析之RpcEndPoint和RpcEndPointRef剖析

    RpcEndpoint 文档对RpcEndpoint的解释: An end point for the RPC that defines what functions to trigger given ...

  7. Apache Spark源码走读(九)如何进行代码跟读使用Intellij idea调试Spark源码

    <一>如何进行代码跟读 概要 今天不谈Spark中什么复杂的技术实现,只稍为聊聊如何进行代码跟读.众所周知,Spark使用scala进行开发,由于scala有众多的语法糖,很多时候代码跟着 ...

  8. Spark源码剖析(一):如何将spark源码导入到IDEA中

    由于近期准备深入研究一下Spark的核心源码,所以开了这一系列用来记录自己研究spark源码的过程! 想要读源码,那么第一步肯定导入spark源码啦(笔者使用的是IntelliJ IDEA),在网上找 ...

  9. Windows + IDEA + SBT 打造Spark源码阅读环境

    Spark源码阅读环境的准备 Spark源码是有Scala语言写成的,目前,IDEA对Scala的支持要比eclipse要好,大多数人会选在在IDEA上完成Spark平台应用的开发.因此,Spark源 ...

  10. spark的java源码,Spark源码包的编译

    Spark源码包的编译和部署生成,其本质只有两种:Maven和SBT (Simple Build Tool), 只不过针对不同的场景而已: Maven编译 SBT编译 IntelliJ IDEA编译( ...

最新文章

  1. PAT(甲级)2019年冬季考试 7-4 Cartesian Tree
  2. 计算string长度 java_夯实基础:掌握从Java 9+开始的String的空间优化
  3. rds for mysql的监控指标_mysql(RDS)常用性能指标监控
  4. mysql怎样实现先判断后联合_MYSQ创建联合索引,字段的先后顺序,对查询的影响分析...
  5. youcans 的 OpenCV 学习课—3.图像的创建与修改
  6. MySQL 复制滞后怎么办?
  7. Java容易搞错的知识点
  8. php标签扩展,标签扩展 · ThinkPHP5.0完全开发手册 · 看云
  9. 梯度下降优化算法总结
  10. 地理类国际顶级期刊汇总
  11. 《Flutter 从0到1构建大前端应用》读后感—第9章【插件与混合工程】
  12. matlab挠率算法,中国科学院沈阳自动化研究所
  13. 基于.NET平台的分层架构实战(八)——数据访问层的第二种实现:SQLServer+存储过程...
  14. 【023】翼辉信息于南京召开国产嵌入式信息产业前沿技术交流会暨SylixOS新版发布会
  15. 国际短信平台怎么找?
  16. Window下,C++ 操作 Mysql、Url、utf-8文件 编码问题(读取和写入)
  17. Android 线程4件套 MessageQueue Message Looper Handler之Looper
  18. 计算机磁盘扫描教程,win7系统下关闭“检查磁盘”和“扫描并修复”提示的方法...
  19. fundamentals\java\java8新特性-Lambda(译自oracle官网)
  20. ISO转换QCOW2格式

热门文章

  1. Apache Server Status主机状态查看
  2. NET Compact Framework 与 .NET Framework 之间的差异
  3. Mac菜单栏设置教程,教你更改顺序或隐藏APP图标
  4. 常用网页元素命名规范参考
  5. wordpress后台加载速度异常缓慢排查记录(原创)
  6. 【把P2P进行到底:讲述Jxta的故事(2)】
  7. 菜鸟也玩系统安装盘的集成(图文教程)
  8. 苹果Mac最灵活的文件共享工具:​​​​Dropshare
  9. Ubuntu系统搭建以太坊开发平台过程
  10. 三维建模软件:Rhino 7 for Mac