Apache Spark探秘:利用Intellij IDEA构建开发环境
1)准备工作
1) 安装JDK 6或者JDK 7 或者JDK8 mac 的 参看http://docs.oracle.com/javase/8/docs/technotes/guides/install/mac_jdk.html
2) 安装scala 2.10.x (注意版本) 参看 http://www.cnblogs.com/xd502djj/p/6546514.html
2)下载Intellij IDEA最新版(本文以IntelliJ IDEA Community Edition 13.1.1为例说明,不同版本,界面布局可能不同):http://www.jetbrains.com/idea/download/
3)将下载的Intellij IDEA解压后,安装scala插件,流程如下:
依次选择“Configure”–> “Plugins”–> “Browse repositories”,输入scala,然后安装即可

(2)搭建Spark源码阅读环境(需要联网)
一种方法是直接依次选择“import project”–> 选择spark所在目录 –> “SBT”,之后intellij会自动识别SBT文件,并下载依赖的外部jar包,整个流程用时非常长,取决于机器的网络环境(不建议在windows下操作,可能遇到各种问题),一般需花费几十分钟到几个小时。注意,下载过程会用到git,因此应该事先安装了git。
第二种方法是首先在linux操作系统上生成intellij项目文件,然后在intellij IDEA中直接通过“Open Project”打开项目即可。在linux上生成intellij项目文件的方法(需要安装git,不需要安装scala,sbt会自动下载)是:在spark源代码根目录下,输入sbt/sbt gen-idea
注:如果你在windows下阅读源代码,建议先在linux下生成项目文件,然后导入到windows中的intellij IDEA中。
(3)搭建Spark开发环境
在intellij IDEA中创建scala project,并依次选择“File”–> “project structure” –> “Libraries”,选择“+”,将spark-hadoop 对应的包导入,比如导入spark-assembly_2.10-0.9.0-incubating-hadoop2.2.0.jar(只需导入该jar包,其他不需要),如果IDE没有识别scala 库,则需要以同样方式将scala库导入。之后开发scala程序即可:

编写完scala程序后,可以直接在intellij中,以local模式运行,方法如下:

点击“Run”–> “Run Configurations”,在弹出的框中对应栏中填写“local”,表示将该参数传递给main函数,如下图所示,之后点击“Run”–> “Run”运行程序即可。
如果想把程序打成jar包,通过命令行的形式运行在spark 集群中,可以按照以下步骤操作:
依次选择“File”–> “Project Structure” –> “Artifact”,选择“+”–> “Jar” –> “From Modules with dependencies”,选择main函数,并在弹出框中选择输出jar位置,并选择“OK”。
最后依次选择“Build”–> “Build Artifact”编译生成jar包。具体如下图所示。



原创文章,转载请注明: 转载自董的博客
本文链接地址: http://dongxicheng.org/framework-on-yarn/apache-spark-intellij-idea/
作者:Dong,作者介绍:http://dongxicheng.org/about/
本博客的文章集合:http://dongxicheng.org/recommend/
Apache Spark探秘:利用Intellij IDEA构建开发环境的更多相关文章
- [转]利用Docker构建开发环境
利用Docker构建开发环境 Posted by makewonder on 2014 年 4 月 2 日 最近接触PAAS相关的知识,在研发过程中开始使用Docker搭建了自己完整的开发环境, ...
- Spark Streaming揭秘 Day28 在集成开发环境中详解Spark Streaming的运行日志内幕
Spark Streaming揭秘 Day28 在集成开发环境中详解Spark Streaming的运行日志内幕 今天会逐行解析一下SparkStreaming运行的日志,运行的是WordCountO ...
- 使用 Vagrant 构建开发环境
使用 Vagrant 构建开发环境 摘要:本文描述了如使用 Vagrant 构建统一的开发环境. 问题 作为开发人员,我们通常面临的问题有: 开发环境需要手工安装配置,这包括操作系统(CentOS.U ...
- 如何使用Docker构建开发环境
我们在开发中都会遇到这样的问题:在本地开发好功能后,部署到服务器,或者其他人拉到本地接着开发时,会出现功能无法使用的情况. 这些异常情况,大多数时候是因为系统不同而导致的依赖差异.因此,为了解决这个问 ...
- Apache Spark探秘:三种分布式部署方式比较
转自:链接地址: http://dongxicheng.org/framework-on-yarn/apache-spark-comparing-three-deploying-ways/ 目 ...
- 利用Docker构建开发环境
最近接触PAAS相关的知识,在研发过程中开始使用Docker搭建了自己完整的开发环境,感觉生活在PAAS时代的程序员真是幸福,本文会简要介绍下Docker是什么,如何利用Docker来搭建自己的开发环 ...
- PyCharm/IntelliJ IDEA Golang开发环境搭建(最方便快捷的GO语言开发环境)
IntelliJ太牛了.为了配置Go语言开发环境,折腾了半天,下IDE(Sublime Text,IntelliJ Idea),然后装Go插件.装Go插件还要下载插件项目源码,编译等等,Sublime ...
- 【2014】【】辛星【php】【秋】【1】php构建开发环境
**************************什么是开发环境*********************** 1.我们学习PHP,是使用它来做web用的,通俗理解,就是做站点. 2.站点的执行须要 ...
- 利用XAMPP搭建PHP开发环境,解决443端口被占用
为了方便,作为学习使用的PHP环境,我们可以直接使用Apache+mysql+php集成开发环境.这样的集成软件有appserv和xampp,这里我们以xampp为例. 首先下载xampp软件,下载地 ...
随机推荐
- 一个快速检测系统CPU负载的小程序
原理说明 在对服务器进行维护时,有时也遇到由于系统 CPU(利用率)负载过高导致业务中断的情况.服务器上可能运行多个进程,查看单个进程的 CPU 都是正常的,但是整个系统的 CPU 负载可能是异常的. ...
- TED #08# Learn to read Chinese ... with ease!
ShaoLan: Learn to read Chinese ... with ease! Pre-requisites calligraphermy most treasured memoriesw ...
- phpstudy升级mysql版本到5.7 ,重启mysql不启动
phpstudy中mysql升级后MySQL服务无法启动 问题产生: 安装好phpstudy后,升级了MySQL后,通过phpstudy启动,Apache可以启动,Mysql无法启动. 解决方法: 之 ...
- 08: 查看Linux系统基本信息和硬盘CPU等
目录: 1.1 查看Linux系统基本信息 1.2 查看三秒内的平均CPU 1.3 查看内存使用情况 1.4 查看当前系统负载 1.1 查看Linux系统基本信息返回顶部 1.查看Linux系统uui ...
- 20145220韩旭飞《网络对抗》Exp7 网络欺诈技术防范
20145220韩旭飞<网络对抗>Exp7 网络欺诈技术防范 应用SET工具建立冒名网站 要让冒名网站在别的主机上也能看到,需要开启本机的Apache服务,并且要将Apache服务的默认端 ...
- noip 2014 提高组 Day 2
1.无线网络发射器选址 这道题数据范围很小,就直接暴力枚举就好了.为了提高速度,就从每个有公共场所的点枚举周围在(x,y)放无线网路发射器可以增加的公共场所数量,加到一个数组里.所有公共场所都处理完了 ...
- Java序列化流-ObjectOutputStream、ObjectInputStream
Java对象流的基本概念: 实例代码: 实体类User: import java.io.Serializable; /** * @author zsh * @company wlgzs * @crea ...
- C# MD5一句话加密
System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5")
- linux指定某用户某组挂载外接硬盘以便操作硬盘
一.环境:发行版本:ubuntu 14.04 64bit 二.获取要指定的用户及组id 使用id命令 (笔者获取的uid和gid都为1000) 三.获取识别的硬盘路径 sudo fdisk -l ( ...
- POJ 1830 开关问题(高斯消元)题解
思路:乍一看好像和线性代数没什么关系.我们用一个数组B表示第i个位置的灯变了没有,然后假设我用u[i] = 1表示动开关i,mp[i][j] = 1表示动了i之后j也会跟着动,那么第i个开关的最终状态 ...