MacOS使用IDEA+Maven+Scala+Spark进行本地调试
安装JDK
- 从这里下载Java 8的JDK
- 设置
JAVA_HOME环境变量,在Mac上它大概会是/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/这个样子
我选择的是在~/.bash_profile文件里添加一句:
export JAVA_HOME=/path/to/JDK,路径换成自己的JDK路径
安装Maven
Mac下用Brew安装即可:
brew install maven
Intellij IDEA
以下基本跟spark开发环境搭建(基于idea 和maven)一样,详细可以去这里看
下载和安装
这个……去官网下载即可,学生可以申请学生账号,挺方便的
配置Intellij IDEA
安装scala插件: 打开Intellij IDEA右下角的
Configure,然后选择Plugins,搜索scala插件并安装,安装完之后重启IDE。设置全局JDK: 在我的IDEA版本里是选择
Structure for New Projects,在弹出的界面依次选择Project-New-JDK,把目录设置成跟JAVA_HOME一样的目录设置全局
Scala SDK: 还是刚刚Structure for New Projects的界面,在Global Libraries选项卡下点+后选择Scala SDK,然后会弹出一个界面如下:

我不像那位Po主一样有
System选项,所以需要选择Download去下载一个SDK。!!!!!!!!这里有一个要点!!!!!!!!
注意一下你的Spark是什么版本的,比如我用的Spark 2.1.2,在官网上有这么一句:

所以下载的时候选择
2.11版本的scala即可,太高和太低都有可能出问题= =,我之前下了2.13出现跟这里一样的错误。下载完之后
Global Libraries里就有这个sdk啦,然后在这个sdk上右键,点击Copy to Project Libraries
新建Maven项目
点新建项目,然后选择Maven项目,在右侧Project SDK看看是不是成功配置了我们的JDK,然后设置好GroupId,ArtifactId和Version
运行scala程序
可以把main\java, main\resources 和 test 都暂时删掉,它们的作用见这篇文章
将Scala的框架添加到这个项目中,方法是在左侧栏中的项目名称上右键菜单中点击
Add Framework Support…,然后在打开的对话框左侧边栏中,勾选Scala前面的复选框,然后点击确定即可。
我是不用单独再导入这个框架,直接做下一步就可以了
在
main文件夹中建立一个名为scala的文件夹,并右键点击scala文件夹,选择Make Directory as,然后选择Sources Root,这里主要意思是将 scala 文件夹标记为一个源文件的根目录,然后在其内的所有代码中的 package ,其路径就从这个根目录下开始算起。
这一步非常重要!!!!! 不做这个下一步可能凉凉
在已经标记好为源文件根目录的 scala 文件夹 上,右键选择
New,然后选择Scala Class,随后设置好程序的名称,并且记得将其设置为一个Object(类似于Java中含有静态成员的静态类),正常的话,将会打开这个Object代码界面,并且可以看到IntelliJ IDEA自动添加了一些最基本的信息;
在Object元素内 输入:def main(args: Array[String]):Unit = {
println("Hello World!")
}
然后就可以Run它,会输出结果。
调试Spark
首先要修改pom.xml里导入相关依赖,注意scala和spark的版本要写对。每次修改完pom.xml之后记得Import Changes。点击右上角的Edit Configurations:

设置一下VM参数:

然后就可以正常Run了,理论上应该不会报错,如果有问题可以试试在terminal里输入mvn clean和mvn install安装需要的依赖。
MacOS使用IDEA+Maven+Scala+Spark进行本地调试的更多相关文章
- windows下Idea结合maven开发spark和本地调试
本人的开发环境: 1.虚拟机centos 6.5 2.jdk 1.8 3.spark2.2.0 4.scala 2.11.8 5.maven 3.5.2 在开发和搭环境时必须注意版本兼容的问题 ...
- Eclipse+maven+scala+spark环境搭建
准备条件 我用的Eclipse版本 Eclipse Java EE IDE for Web Developers. Version: Luna Release (4.4.0) 我用的是Eclipse ...
- eclipse构建maven+scala+spark工程 转载
转载地址:http://jingpin.jikexueyuan.com/article/47043.html 本文先叙述如何配置eclipse中maven+scala的开发环境,之后,叙述如何实现sp ...
- eclipse构建maven+scala+spark工程
前提条件 下载安装Scala IDE build of Eclipse SDK 构建工程 1.新建maven工程 2.配置项目信息 3.新建scala对应的Source Folder 4.添加scal ...
- Eclipse + Idea + Maven + Scala + Spark +sbt
http://jingpin.jikexueyuan.com/article/47043.html 新的scala 编译器idea使用 https://www.jetbrains.com/idea/h ...
- <Spark Streaming><本地调试>
写在前面 因为本地电脑没装flume,nginx各种.所以之前写Streaming程序的时候,都是打包了放到集群上跑.就算我在程序代码里不停地logger,调试起来也hin不方便. 于是本地写了两个程 ...
- Intellij IDEA使用Maven搭建spark开发环境(scala)
如何一步一步地在Intellij IDEA使用Maven搭建spark开发环境,并基于scala编写简单的spark中wordcount实例. 1.准备工作 首先需要在你电脑上安装jdk和scala以 ...
- spark之scala程序开发(本地运行模式):单词出现次数统计
准备工作: 将运行Scala-Eclipse的机器节点(CloudDeskTop)内存调整至4G,因为需要在该节点上跑本地(local)Spark程序,本地Spark程序会启动Worker进程耗用大量 ...
- 在IntelliJ IDEA中创建和运行java/scala/spark程序
本文将分两部分来介绍如何在IntelliJ IDEA中运行Java/Scala/Spark程序: 基本概念介绍 在IntelliJ IDEA中创建和运行java/scala/spark程序 基本概念介 ...
随机推荐
- ASP.NET Core中使用固定窗口限流
算法原理 固定窗口算法又称计数器算法,是一种简单的限流算法.在单位时间内设定一个阈值和一个计数值,每收到一个请求则计数值加一,如果计数值超过阈值则触发限流,如果达不到则请求正常处理,进入下一个单位时间 ...
- 【vector的输出问题】 洛谷 P1996 约瑟夫问题
题目:P1996 约瑟夫问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 可恶啊,本来是一道不算难的题,硬是因为cin,cout同步流卡了我一天qwq 关闭cin,cout同步流 ...
- [转]sizeof计算空间大小的总结
原文链接:http://www.cnblogs.com/houjun/p/4907622.html 关于sizeof的总结 1.sizeof的使用形式:sizeof(var_name)或者sizeof ...
- Output of C++ Program | Set 8
Predict the output of following C++ programs. Question 1 1 #include<iostream> 2 using namespac ...
- RPC、HTTP、RESTful
RESTful RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义.RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT ...
- 关于ssh-keygen 生成的key以“BEGIN OPENSSH PRIVATE KEY”开头
现在使用命令 ssh-keygen -t rsa 生成ssh,默认是以新的格式生成,id_rsa的第一行变成了"BEGIN OPENSSH PRIVATE KEY" 而不在是&q ...
- python中numpy库ndarray多维数组的的运算:np.abs(x)、np.sqrt(x)、np.modf(x)等
numpy库提供非常便捷的数组运算,方便数据的处理. 1.数组与标量之间可直接进行运算 In [45]: aOut[45]:array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ ...
- 【C/C++】C++ warning: control reaches end of non-void function return
控制到达非void函数的结尾. 一些本应带有返回值的函内数到容达结尾后可能并没有返回任何值. 这时候,最好检查一下是否每个控制流都会有返回值. 我是ostream声明的时候没有写return out; ...
- VSCode上发布第一篇博客
在VSCode上发布到博客园的第一篇博客 前段时间在VSCode安装好插件WriteCnblog,多次检查writeCnblog configuration配置信息也是完全正确的,但是一直没能在VSC ...
- C++11 标准库 bind 函数
bind 是什么? bind 顾名思义: 绑定 通俗来讲呢,可以这么理解有点像函数指针的意思. 资料上是这么讲的:可以将 bind 函数看做一个通用函数的适配器,它接受一个可调用对象,生成一个新的可以 ...