当前位置: 首页 > 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年市场化的量子通信产品可能产生
  • 奇异量子物理系统:它既在“绝对零度”之下,又在“绝对高温”之上
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • CSS 提示工具(Tooltip)
  • Github访问慢解决办法
  • JavaScript学习总结——原型
  • JDK 6和JDK 7中的substring()方法
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Node项目之评分系统(二)- 数据库设计
  • Python连接Oracle
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Spark RDD学习: aggregate函数
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 对象管理器(defineProperty)学习笔记
  • 面试遇到的一些题
  • 七牛云假注销小指南
  • 如何解决微信端直接跳WAP端
  • 微信小程序实战练习(仿五洲到家微信版)
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 用quicker-worker.js轻松跑一个大数据遍历
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • UI设计初学者应该如何入门?
  • ​flutter 代码混淆
  • #{}和${}的区别是什么 -- java面试
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (003)SlickEdit Unity的补全
  • (2)STL算法之元素计数
  • (办公)springboot配置aop处理请求.
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (转载)Linux 多线程条件变量同步
  • **PHP二维数组遍历时同时赋值
  • ..回顾17,展望18
  • ./和../以及/和~之间的区别
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET开源快速、强大、免费的电子表格组件
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • .NET值类型变量“活”在哪?
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)