使用 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 -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 源代码相关推荐
- spark 源码分析之八--Spark RPC剖析之TransportContext和TransportClientFactory剖析
spark 源码分析之八--Spark RPC剖析之TransportContext和TransportClientFactory剖析 TransportContext 首先官方文档对Transpor ...
- Spark源码的编译过程详细解读(各版本)(博主推荐)
本文转自大数据躺过的坑博客园博客,原文链接:xxxxx,如需转载请自行联系原作者说在前面的话 重新试多几次.编译过程中会出现下载某个包的时间太久,这是由于连接网站的过程中会出现假死,按ctrl+c,重 ...
- Spark源码打包编译的过程
前言 上篇文章介绍了下 安装sbt环境 启动scala项目 安装SBT环境运行Scala项目 为什么要弄这个 因为我本来是想对spark源码编译部署 spark是用scala语言编译的 spark源码 ...
- Spark源码走读10——Spark On Yarn
首先需要修改配置文件spark-env.sh.在这个文件中需要添加两个属性: Export HADOOP_HOME=/../hadoop.. ExportHADOOP_CONF_DIR=/../had ...
- Spark源码阅读(五) --- Spark的支持的join方式以及join策略
版本变动 2021-08-30 增加了对Broadcast Hash Join小表大小的评估内容 增加了对Sort Merge Join优于Shuffle Hash Join调用的解释 目录 Spar ...
- spark 源码分析之七--Spark RPC剖析之RpcEndPoint和RpcEndPointRef剖析
RpcEndpoint 文档对RpcEndpoint的解释: An end point for the RPC that defines what functions to trigger given ...
- Apache Spark源码走读(九)如何进行代码跟读使用Intellij idea调试Spark源码
<一>如何进行代码跟读 概要 今天不谈Spark中什么复杂的技术实现,只稍为聊聊如何进行代码跟读.众所周知,Spark使用scala进行开发,由于scala有众多的语法糖,很多时候代码跟着 ...
- Spark源码剖析(一):如何将spark源码导入到IDEA中
由于近期准备深入研究一下Spark的核心源码,所以开了这一系列用来记录自己研究spark源码的过程! 想要读源码,那么第一步肯定导入spark源码啦(笔者使用的是IntelliJ IDEA),在网上找 ...
- Windows + IDEA + SBT 打造Spark源码阅读环境
Spark源码阅读环境的准备 Spark源码是有Scala语言写成的,目前,IDEA对Scala的支持要比eclipse要好,大多数人会选在在IDEA上完成Spark平台应用的开发.因此,Spark源 ...
- spark的java源码,Spark源码包的编译
Spark源码包的编译和部署生成,其本质只有两种:Maven和SBT (Simple Build Tool), 只不过针对不同的场景而已: Maven编译 SBT编译 IntelliJ IDEA编译( ...
最新文章
- PAT(甲级)2019年冬季考试 7-4 Cartesian Tree
- 计算string长度 java_夯实基础:掌握从Java 9+开始的String的空间优化
- rds for mysql的监控指标_mysql(RDS)常用性能指标监控
- mysql怎样实现先判断后联合_MYSQ创建联合索引,字段的先后顺序,对查询的影响分析...
- youcans 的 OpenCV 学习课—3.图像的创建与修改
- MySQL 复制滞后怎么办?
- Java容易搞错的知识点
- php标签扩展,标签扩展 · ThinkPHP5.0完全开发手册 · 看云
- 梯度下降优化算法总结
- 地理类国际顶级期刊汇总
- 《Flutter 从0到1构建大前端应用》读后感—第9章【插件与混合工程】
- matlab挠率算法,中国科学院沈阳自动化研究所
- 基于.NET平台的分层架构实战(八)——数据访问层的第二种实现:SQLServer+存储过程...
- 【023】翼辉信息于南京召开国产嵌入式信息产业前沿技术交流会暨SylixOS新版发布会
- 国际短信平台怎么找?
- Window下,C++ 操作 Mysql、Url、utf-8文件 编码问题(读取和写入)
- Android 线程4件套 MessageQueue Message Looper Handler之Looper
- 计算机磁盘扫描教程,win7系统下关闭“检查磁盘”和“扫描并修复”提示的方法...
- fundamentals\java\java8新特性-Lambda(译自oracle官网)
- ISO转换QCOW2格式
热门文章
- Apache Server Status主机状态查看
- NET Compact Framework 与 .NET Framework 之间的差异
- Mac菜单栏设置教程,教你更改顺序或隐藏APP图标
- 常用网页元素命名规范参考
- wordpress后台加载速度异常缓慢排查记录(原创)
- 【把P2P进行到底:讲述Jxta的故事(2)】
- 菜鸟也玩系统安装盘的集成(图文教程)
- 苹果Mac最灵活的文件共享工具:​​​​Dropshare
- Ubuntu系统搭建以太坊开发平台过程
- 三维建模软件:Rhino 7 for Mac