您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

使用IDEA搭建Spark源码阅读环境

时间:2021-06-23 11:11:31  来源:  作者:个人技术分享

话一句

首先建议大家首先有一定的Spark基础,再来看源码。相信会学到更多的东西,尤其是整个App的运行过程,Spark的运行流程。

今天弄了一天,总算是弄好了。花费时间最多的就是在编译Spark。整个过程不是在排错就是在排错的路上。话不多说,直接说具体怎么搭建,同时也方便自己以后查阅。

准备工作:安装并下载一些必要的工具,本人使用的操作系统是Win10

1. JAVA1.8

2.Scala2.11.12

3.Maven3.5.3

4.git2.17.0

5.Spark2.2.1源码

6.Intellij IDEA 2017

使用IDEA搭建Spark源码阅读环境

 

Spark源码下载:

下载地址:
http://spark.Apache.org/downloads.html

使用IDEA搭建Spark源码阅读环境

 

选择Source Code进行源码下载。

开始编译Spark

下载好源码之后,然后将其解压,使用cmd命令,进入到Spark的源码目录下进行mvn的编译。

使用IDEA搭建Spark源码阅读环境

 

在这里我们介绍下一个少走坑路的命令,我也是踩了很多坑才在StackOverflow上找到的。

使用命令:mvn -Dscala-2.11.12 -DskipTests clean package

进行Spark的编译,在这里指定自己下载安装好的Scala版本,主要是防止和spark里面的Scala版本不一致。

在编译过程中遇到的错误:

  1. org.apache.maven.plugins:maven-antrun-plugin:1.8:run这个错误antrun。主要原因是git没有安装,如果安装了git环境,就将git的bin目录添加到环境变量中Path下。
  2. 如果遇见其他的错误,比如说在编译过程中,SparkSQL编译失败了,说什么找不到之类的,忽略,然后重新执行该命令进行编译,可能有时候是因为网咯原因,导致一些jar包没有下载下来。重新运行就好了。我是这样解决的。反复执行了好几次吧。然后终于编译成功了。

 

然后使用IDEA打开源代码编译后的目录。

菜单栏--> File --> Open --> 选择根目录下的pom.xml。然后确定就行了,等待idea加载环境。

使用IDEA搭建Spark源码阅读环境

 

运行demo代码:

在这里我们运行Pi这个例子。

首先我们先将依赖工程依赖添加进去。

添加Scala依赖

使用IDEA搭建Spark源码阅读环境

 

然后能打开这样一个窗口。

使用IDEA搭建Spark源码阅读环境

 

在这里可以添加Java依赖也可以添加Scala的依赖。

使用IDEA搭建Spark源码阅读环境

 

然后我们还需要添加scala的一些依赖Jar。

使用IDEA搭建Spark源码阅读环境

 

然后选择Spark根目录下的
assembly/target/scala-2.11/jars/

使用IDEA搭建Spark源码阅读环境

 


使用IDEA搭建Spark源码阅读环境

 

就ok拉。

做好这些之后,我们就开始运行Pi程序吧。

使用IDEA搭建Spark源码阅读环境

 

他说我们没有指定MasterURL,需要在config中配置。

RUN --> Edit Configurations

使用IDEA搭建Spark源码阅读环境

 

然后运行。

使用IDEA搭建Spark源码阅读环境

 

这样我们的PI就出来了。

当然也可以手动在代码中指定master的地址哈。比如说这样:

使用IDEA搭建Spark源码阅读环境

 

我试过也是可以的哈。

然后就可以单步调试代码,阅读源码了。



Tags:IDEA   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
昨天看到一个问题,“疫情结束后你最想吃什么?”仔细想了一下,火锅?烤肉?看了一下体重秤,怕是只能报个健身房了。你以为你胖N斤的时间复杂度是O(2^N), 事实上它是O(1),嗖嗖的.正文回...【详细内容】
2021-09-13  Tags: IDEA  点击:(44)  评论:(0)  加入收藏
话一句首先建议大家首先有一定的Spark基础,再来看源码。相信会学到更多的东西,尤其是整个app的运行过程,Spark的运行流程。今天弄了一天,总算是弄好了。花费时间最多的就是在编...【详细内容】
2021-06-23  Tags: IDEA  点击:(122)  评论:(0)  加入收藏
IDEA版本:2020.1【原因】使用intellij idea很长一段时间,软件相关的配置也都按照自己习惯的设置好,如果需要重装软件,还得需要重新设置【操作】:1.首先将本地的设置上传到云端[...【详细内容】
2021-06-15  Tags: IDEA  点击:(129)  评论:(0)  加入收藏
IDEA在手 天下我有我们打算将Pondus的所有生产服务器升级到这一新版本。 从那时起,我们将大部分代码库迁移到lambda表达式、数据流和新的日期API上。 我们也会使用Nashorn来...【详细内容】
2021-06-10  Tags: IDEA  点击:(173)  评论:(0)  加入收藏
一、概述毋庸置疑 IntelliJ IDEA 已经成为 Java 开发最好用的开发工具,这篇文章主要记录自己使用 idea 开发过程中的一些常用配置,主要是根据自己的开发习惯进行的配置,记录这...【详细内容】
2021-05-24  Tags: IDEA  点击:(241)  评论:(0)  加入收藏
MySQL 等数据库客户端软件市面上非常多了,别的栈长就不介绍了, 其实 IntelliJ IDEA 自带的数据库工具就很牛逼,不信你继续往下看。本文以 IntelliJ IDEA/ Mac 版本作为演示,其...【详细内容】
2021-04-30  Tags: IDEA  点击:(169)  评论:(0)  加入收藏
IDEA 2020.3 刚没用多久,2021.1 又陆续给我推送更新了: 启动就提醒更新,麻烦,那不如更新下,体验下新版本。 如上图所示,2021.1 更新了 9 个新特性,下面栈长会一一体验给大家介绍一...【详细内容】
2021-04-22  Tags: IDEA  点击:(196)  评论:(0)  加入收藏
IDEA使用技巧以及连接数据库IDEA真是越用越觉得它强大,它总是在我们写代码的时候,不时给我们来个小惊喜,把一些好用的IDEA技巧以及I如何连接数据库分享给大家!一、小技巧1、更加...【详细内容】
2021-04-08  Tags: IDEA  点击:(302)  评论:(0)  加入收藏
前言程序员对待IDE都是虔诚的,经常因为谁是最好的IDE而在江湖上掀起波澜,曾经我也是。后来我遇到了IDEA,从此是它,余生都是它。IDEA 毫无疑问是目前最强大的Java开发工具了,但是...【详细内容】
2021-04-06  Tags: IDEA  点击:(269)  评论:(0)  加入收藏
作为一名java工(B)程(U)师(G),相信大部分的狮子们都有自己心仪的IDE,idea作为目前人气最火的java编码工具。你的idea的UI界面是这样的:原始界面别人的可能是这样的:进阶版也可...【详细内容】
2021-01-07  Tags: IDEA  点击:(219)  评论:(0)  加入收藏
▌简易百科推荐
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(1)  评论:(0)  加入收藏
程序是如何被执行的  程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(9)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(19)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(23)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(24)  评论:(0)  加入收藏
一个项目的大部分API,测试用例在参数和参数值等信息会有很多相似的地方。我们可以复制API,复制用例来快速生成,然后做细微调整既可以满足我们的测试需求1.复制API:在菜单发布单...【详细内容】
2021-12-14  AutoMeter    Tags:AutoMeter   点击:(20)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条