当前位置: 首页 > news >正文

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

http://guozhongxin.com/pages/2014/10/15/spark_source_code.html

Spark源码阅读环境的准备
Spark源码是有Scala语言写成的,目前,IDEA对Scala的支持要比eclipse要好,大多数人会选在在IDEA上完成Spark平台应用的开发。因此,Spark源码阅读的IDE理所当然的选择了IDEA。
本文介绍的是Windows下的各项配置方法(默认已经装了java,JDK)。
下面列举搭建此环境需要的各个组件:
IDEA,有两个版本:Ultimate Edition & Community Edition,后者是free的,而且完全能满足学习者所有的需求
Scala,Spark是用Scala语言写成的,在本地编译执行需要这个包
SBT,scala工程构建的工具
Git,IDEA自动下载SBT插件时可能会用到的工具
Spark Source Code,Spark源码
下载各个安装包。

Spark源码阅读环境的安装步骤

安装Scala。
完成后,在windows命令行中输入scala,检查是否识别此命令。
如果不识别,查看环境变量Path中是否有....\scala\bin(我的电脑右键,属性 -> 高级系统设置 -> 环境变量),没有的手动将Scala文件夹下的bin目录的路径
安装SBT
运行SBT的安装程序,运行完成后,重新打开windows命令行,输入sbt,检查是否识别此命令。没有的话,手动配置环境变量,添加...\sbt\bin
运行完SBT的安装程序之后,并不意味着完成了sbt的安装,在windows命令放下输入sbt后,SBT会自动的下载安装它所需要的程序包,请耐心等待全部下载成功。
安装Git
运行Git的安装程序,安装完成后,重新打开windows命令行,检查时候识别git命令。
安装IDEA
安装IDEA的Scala插件
打开IDEA,在‘Welcome to IntelliJ IDEA’界面的‘Quick Start’栏,点击Configure,选择Plugins。
在弹出的窗口中可以看到已安装的插件,现在IDEA默认还没有Scala的插件。需要点击左下角的Install JetBrains plugin...,在搜索框中输入‘scala’,点击安装。安装完成后可能会要求重启一下IDEA。
解压缩Spark Source Code包

导入Spark工程
在欢迎界面‘Quick Start’栏或者是在主界面的菜单栏File下,选Import Project,找到解压之后的spark工程文件夹,OK。
选择import project from external model中的SBT project,(这个选项只有在安装了IDEA的Scala插件才会有)。
下一步,选择Project SDK为JDK,最好勾上Use auto-import,然后点击Finish。这时,IDEA会自动下载安装SBT所需的各个包,没有装Git的话可能会报错。
因为Spark是一个比较大的工程,所需的包也很多,这个过程也会特别慢,请耐心等待。

导入完成
导入完成后,自动打开工程,要等一段时间,等待sbt对这个工程进行编译。

转载于:https://blog.51cto.com/57388/2107664

相关文章:

  • Node:异步编程
  • NO12 useradd-passwd-uname-hostname命令-上传rz下载sz-批量部署- Linux用户相关操作
  • 在Laravel中创建自己的PHP帮助函数
  • 配置Apache虚拟主机,实现在一台服务器上运行多个网站
  • PHP PSR 代码规范基本介绍
  • 各消息队列对比,Kafka深度解析,众人推荐,精彩好文!
  • Windows环境下,从零开始搭建Nodejs+Express+Ejs框架(一)---安装nodejs
  • CSS盒模型深入
  • ASP.NET MVC 学习笔记-3.面向对象设计原则
  • 干货分享:MySQL之化险为夷的【钻石】抢购风暴
  • Canon背后的故事
  • Linux 搭建私有软件仓库
  • Blockchain钱包全方位支持比特币现金(BCH)
  • 量子通信能否跨越“死亡之谷”?2017年市场化的量子通信产品可能产生
  • 奇异量子物理系统:它既在“绝对零度”之下,又在“绝对高温”之上
  • AHK 中 = 和 == 等比较运算符的用法
  • ECMAScript6(0):ES6简明参考手册
  • JAVA多线程机制解析-volatilesynchronized
  • mysql常用命令汇总
  • session共享问题解决方案
  • Unix命令
  • vue-router的history模式发布配置
  • 安卓应用性能调试和优化经验分享
  • 包装类对象
  • 大主子表关联的性能优化方法
  • 悄悄地说一个bug
  • 为什么要用IPython/Jupyter?
  • 小程序button引导用户授权
  • 从如何停掉 Promise 链说起
  • 湖北分布式智能数据采集方法有哪些?
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #AngularJS#$sce.trustAsResourceUrl
  • #考研#计算机文化知识1(局域网及网络互联)
  • #知识分享#笔记#学习方法
  • (function(){})()的分步解析
  • (九十四)函数和二维数组
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (轉)JSON.stringify 语法实例讲解
  • .bat批处理(一):@echo off
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .Net 8.0 新的变化
  • .net core 依赖注入的基本用发
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .net 反编译_.net反编译的相关问题
  • .Net6使用WebSocket与前端进行通信
  • .net访问oracle数据库性能问题
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • /etc/sudoer文件配置简析
  • @Import注解详解