文档章节

Spark源码分析调试环境搭建

群星纪元
 群星纪元
发布于 2017/10/26 15:42
字数 574
阅读 40
收藏 0

目前常用的Spark版本有三种Cloudera、HDP和Apache,源码的获取方式可以在各自官网下载。本文选择Apache版本。

搭建环境所需要的工具如下:

  • CentOS 7
  • maven 3.5.0
  • Java 1.8.0
  • Scala 2.12.2
  • IntelliJ IDEA2017.1.2

本人选择在服务器上进行编译和调试,机器配置为至强CPU(56核)、内存256G。

下载源码

首先将apache/spark fork到自己的github仓库,接着再IDEA上通过VCS->Checkout from Version Control->Github 中选择刚刚fork下来到本地

配置本地maven

本文选择使用自己搭建的maven仓库,Spark源码自带的maven会从官方镜像上下载所需的依赖,此步骤会比较耗时,设置为本地maven仓库后,速度会大幅提升。设置方法如下图所示

preview

编译Spark源码

选择的最新版的Spark,目前是2.3.0。编译Spark源码,使用自己安装的maven进行编译,其中-T参数是设置编译的线程数,这里设置的是20

mvn -T 5 -DskipTests clean package

经过12分钟的等待,Spark源码编译完成,如下图所示

preview

接着可以通过运行下spark-shell来测试一下编译结果

./bin/spark-shell

preview

运行Spark源码自带的实例程序

由于大多数程序都是从hello world开始的,对应的,Spark的第一个程序为wordcount,我们选择调试JavaWordCount。

打开JavaWordCount程序

在代码编辑区右键选择

Create 'JavaWordCount.main()'...

设置如下图所示

preview

其中

VM options: -Dspark.master=local
Program arguments:/home/spark-sourcecode/examples/src/main/resources/people.txt

保存运行配置,这样直接运行会出现以下两个错误,缺失flume sink

  • 缺失flume sink

preview

解决方法是在

View->Tool Windows->Maven Projects

在Spark Project External Flume Sink上右键选择Generate Sources and Update Folders

  • 缺少Spark环境Jars包

preview

解决方案如下:

File -> Project Structure -> Modules -> spark-examples_2.11 -> Dependencies 添加依赖 jars -> {spark dir}/spark/assembly/target/scala-2.11/jars/

preview

接着成功运行JavaWordCount

调试例子程序

preview

接下来就可以看到Spark程序运行时每个变量的值变化,方便我们对Spark源码的设计进行分析。

不过当我们修改了Spark源码后,我们得使用前面的编译命令对其进行重新编程生成。

本文转载自:https://zhuanlan.zhihu.com/p/30333691

群星纪元
粉丝 44
博文 456
码字总数 44497
作品 0
朝阳
高级程序员
私信 提问
【Spark】Apache 及 CDH Spark 源码编译

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/gongxifacai_believe/article/details/86574327 1、Apache Spark 源码编译 软件版本: JDK:1.7.0_67 Scala:2.10....

魏晓蕾
01/21
0
0
基于Spark的机器学习实践 (三) - 实战环境搭建

0 相关源码 1 Spark环境安装 ◆ Spark 由scala语言编写,提供多种语言接口,需要JVM ◆ 官方为我们提供了Spark 编译好的版本,可以不必进行手动编译 ◆ Spark安装不难,配置需要注意,并且不一定需...

javaedge
04/09
0
0
windows 安装 spark 及 PyCharm IDEA 调试 TopN 实例

首先声明本文搭建的环境为:windows8.1 + spark1.6.0 + python2.7 + jdk8,spark on windows 对 windows及python版本不怎么挑,但是对 spark 版本要求极其苛刻,比如 spark1.6.1 就无法运行。...

大数据之路
2012/06/28
920
0
SPARK 源码分析技术分享(带bilibili视频)

SPARK 源码分析技术分享 (带bilibili视频) 【本站点正在持续更新中…2018-12-05…】 SPARK 1.6.0-cdh5.15.0 Hadoop 2.6.0-cdh5.15.0 spark-scala-maven 微信(技术交流) : thinktothings SPA...

thinktothings
2018/12/02
0
0
Openfire+Spark源码开发环境搭建

首先第一步,当然是环境搭建了... Openfire官网:http://www.igniterealtime.org/index.jsp 源码下载地址:http://www.igniterealtime.org/downloads/index.jsp Openfire SVN下载地址:http:......

FallenPanda
2014/01/13
2.5K
0

没有更多内容

加载失败,请刷新页面

加载更多

最简单的获取相机拍照的图片

  import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import andr......

MrLins
42分钟前
4
0
说好不哭!数据可视化深度干货,前端开发下一个涨薪点在这里~

随着互联网在各行各业的影响不断深入,数据规模越来越大,各企业也越来越重视数据的价值。作为一家专业的数据智能公司,个推从消息推送服务起家,经过多年的持续耕耘,积累沉淀了海量数据,在...

个推
44分钟前
7
0
第三方支付-返回与回调注意事项

不管是支付宝,微信,还是其它第三方支付,第四方支付,支付机构服务商只要涉及到钱的交易都要进行如下校验,全部成功了才视为成功订单 1.http请求是否成功 2.校验商户号 3.校验订单号及状态...

Shingfi
46分钟前
4
0
简述Java内存分配和回收策略以及Minor GC 和 Major GC(Full GC)

内存分配: 1. 栈区:栈可分为Java虚拟机和本地方法栈 2. 堆区:堆被所有线程共享,在虚拟机启动时创建,是唯一的目的是存放对象实例,是gc的主要区域。通常可分为两个区块年轻代和年老代。更...

DustinChan
52分钟前
6
0
Excel插入批注:可在批注插入文字、形状、图片

1.批注一直显示:审阅选项卡-------->勾选显示批注选项: 2.插入批注快捷键:Shift+F2 组合键 3.在批注中插入图片:鼠标右键点击批注框的小圆点【重点不可以在批注文本框内点击】----->调出批...

东方墨天
今天
6
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部