安装配置最强Spark IDE--IDEA
1、安装IntelliJ IDEA
IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。
IDEA每个版本提供Community和Ultimate两个版本,如下图所示,其中Community是完全免费的,而Ultimate版本可以使用30天,过这段时间后需要收费。从安装后使用对比来看,下载一个Community版本足够了。

1.1 安装软件
1.1.1 下载IDEA安装文件
可以到Jetbrains官网http://www.jetbrains.com/idea/download/,选择最新的安装文件。由于以后的练习需要在Linux开发Scala应用程序,选择Linux系统IntelliJ IDEA14,如下图所示:
【注】在该系列配套资源的install目录下分别提供了ideaIC-14.0.2.tar.gz(社区版)和ideaIU-14.0.2.tar.gz(正式版)安装文件,对于Scala开发来说两个版本区别不大
1.1.2 解压缩并移动目录
把下载的安装文件上传到目标机器,用如下命令解压缩IntelliJ IDEA安装文件,并迁移到/app目录下:
cd /home/hadoop/upload tar -zxf ideaIU-.tar.gz sudo mv idea-IU- /app/idea-IU

1.1.3配置/etc/profile环境变量
使用如下命令打开/etc/profile文件:
sudo vi /etc/profile
确认JDK配置变量正确配置(参见第2节《Spark编译与部署》中关于基础环境搭建介绍):
export JAVA_HOME=/usr/lib/java/jdk1..0_55 export PATH=$PATH:$JAVA_HOME

1.2 配置Scala环境
1.2.1 启动IntelliJ IDEA
可以通过两种方式启动IntelliJ IDEA:
- 到IntelliJ IDEA安装所在目录下,进入bin目录双击idea.sh启动IntelliJ IDEA;
- 在命令行终端中,进入$IDEA_HOME/bin目录,输入./idea.sh进行启动
IDEA初始启动目录如下,IDEA默认情况下并没有安装Scala插件,需要手动进行安装,安装过程并不复杂,下面将演示如何进行安装。

1.2.2 下载Scala插件
参见上图,在启动界面上选择“Configure-->Plugins"选项,然后弹出插件管理界面,在该界面上列出了所有安装好的插件,由于Scala插件没有安装,需要点击”Install JetBrains plugins"进行安装,如下图所示:

待安装的插件很多,可以通过查询或者字母顺序找到Scala插件,选择插件后在界面的右侧出现该插件的详细信息,点击绿色按钮"Install plugin”安装插件,如下图所示:

安装过程将出现安装进度界面,通过该界面了解插件安装进度,如下图所示:

安装插件后,在启动界面中选择创建新项目,弹出的界面中将会出现"Scala"类型项目,选择后将出现提示创建的项目是仅Scala代码项目还是SBT代码项目,如下图所示:

1.2.3 设置界面主题
从IntelliJ IDEA12开始起推出了Darcula 主题的全新用户界面,该界面以黑色为主题风格得到很多开发人员的喜爱,下面我们将介绍如何进行配置。在主界面中选择File菜单,然后选择Setting子菜单,如下图所示:

在弹出的界面中选择Appearance &Behavior中Appearance,其中Theme中选择Darcula主题,如下图所示:

保存该主题重新进入,可以看到如下图样式的开发工具,是不是很酷!

2 使用IDEA编写例子
2.1 创建项目
2.1.1 设置项目基本信息
在IDEA菜单栏选择File->New Project,出现如下界面,选择创建Scala项目:

在项目的基本信息填写项目名称、项目所在位置、Project SDK和Scala SDK,在这里设置项目名称为class3,关于Scala SDK的安装参见第2节《Spark编译与部署》下Spark编译安装介绍:

2.1.2 设置Modules
创建该项目后,可以看到现在还没有源文件,只有一个存放源文件的目录src以及存放工程其他信息的杂项。通过双击src目录或者点击菜单上的项目结构图标打开项目配置界面,如下图所示:

在Modules设置界面中,src点击右键选择“新加文件夹”添加src->main->scala目录:

在Modules设置界面中,分别设置main->scala目录为Sources类型:

2.1.3 配置Library
选择Library目录,添加Scala SDK Library,这里选择scala-2.10.4版本

添加Java Library,这里选择的是在$SPARK_HOME/lib/spark-assembly-1.1.0-hadoop2.2.0.jar文件,添加完成的界面如下:

2.2 例子1:直接运行
《Spark编程模型(上)--概念及Shell试验》中使用Spark-Shell进行了搜狗日志的查询,在这里我们使用IDEA对Session查询次数排行榜进行重新练习,可以发现借助专业的开发工具可以方便快捷许多。
2.2.1 编写代码
在src->main->scala下创建class3包,在该包中添加SogouResult对象文件,具体代码如下:
package class3
import org.apache.spark.SparkContext._
import org.apache.spark.{SparkConf, SparkContext}
object SogouResult{
def main(args: Array[String]) {
) {
System.err.println("Usage: SogouResult <file1> <file2>")
System.exit()
}
val conf = new SparkConf().setAppName("SogouResult").setMaster("local")
val sc = new SparkContext(conf)
//session查询次数排行榜
val rdd1 = sc.textFile(args()).map(_.split()
val rdd2=rdd1.map(x=>(x(),)).reduceByKey(_+_).map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1))
rdd2.saveAsTextFile(args())
sc.stop()
}
}

2.2.2 编译代码
代码在运行之前需要进行编译,可以点击菜单Build->Make Project或者Ctrl+F9对代码进行编译,编译结果会在Event Log进行提示,如果出现异常可以根据提示进行修改

2.2.3 运行环境配置
SogouResult首次运行或点击菜单Run->Edit Configurations打开"运行/调试 配置界面"

运行SogouResult时需要输入搜狗日志文件路径和输出结果路径两个参数,需要注意的是HDFS的路径参数路径需要全路径,否则运行会报错:
- 搜狗日志文件路径:使用上节上传的搜狗查询日志文件hdfs://hadoop1:9000/sogou/SogouQ1.txt
- 输出结果路径:hdfs://hadoop1:9000/class3/output2

2.2.4 运行结果查看
启动Spark集群,点击菜单Run->Run或者Shift+F10运行SogouResult,在运行结果窗口可以运行情况。当然了如果需要观察程序运行的详细过程,可以加入断点,使用调试模式根据程序运行过程。

使用如下命令查看运行结果,该结果和上节运行的结果一致
hadoop fs -ls /class3/output2 hadoop fs -cat /class3/output2/part- | less

2.3 例子2:打包运行
上个例子使用了IDEA直接运行结果,在该例子中将使用IDEA打包程序进行执行
2.3.1 编写代码
在class3包中添加Join对象文件,具体代码如下:
package class3
import org.apache.spark.SparkContext._
import org.apache.spark.{SparkConf, SparkContext}
object Join{
def main(args: Array[String]) {
) {
System.err.println("Usage: Join <file1> <file2>")
System.exit()
}
val conf = new SparkConf().setAppName("Join").setMaster("local")
val sc = new SparkContext(conf)
val format = new java.text.SimpleDateFormat("yyyy-MM-dd")
case class Register (d: java.util.Date, uuid: String, cust_id: String, lat: Float,lng: Float)
case class Click (d: java.util.Date, uuid: String, landing_page: Int)
val reg = sc.textFile(args()).map(_.split(), Register(format.parse(r()), r(), r(), r().toFloat, r().toFloat)))
val clk = sc.textFile(args()).map(_.split(), Click(format.parse(c()), c(), c().trim.toInt)))
reg.join(clk).take().foreach(println)
sc.stop()
}
}
2.3.2 生成打包文件
第一步 配置打包信息
在项目结构界面中选择"Artifacts",在右边操作界面选择绿色"+"号,选择添加JAR包的"From modules with dependencies"方式,出现如下界面,在该界面中选择主函数入口为Join:

第二步 填写该JAR包名称和调整输出内容
【注意】的是默认情况下"Output Layout"会附带Scala相关的类包,由于运行环境已经有Scala相关类包,所以在这里去除这些包只保留项目的输出内容

第三步 输出打包文件
点击菜单Build->Build Artifacts,弹出选择动作,选择Build或者Rebuild动作

第四步 复制打包文件到Spark根目录下
cd /home/hadoop/IdeaProjects/out/artifacts/class3 cp LearnSpark.jar /app/hadoop/spark-/ ls /app/hadoop/spark-/

2.3.3 运行查看结果
通过如下命令调用打包中的Join方法,运行结果如下:
cd /app/hadoop/spark- bin/spark-submit --master spark://hadoop1:7077 --class class3.Join --executor-memory 1g LearnSpark.jar hdfs://hadoop1:9000/class3/join/reg.tsv hdfs://hadoop1:9000/class3/join/clk.tsv

3、问题解决
3.1 出现"*** is already defined as object ***"错误
编写好SogouResult后进行编译,出现"Sogou is already as object SogouResult"的错误,

出现这个错误很可能不是程序代码的问题,很可能是使用Scala JDK版本问题,作者在使用scala-2.11.4遇到该问题,换成scala-2.10.4后重新编译该问题得到解决,需要检查两个地方配置:Libraries和Global Libraries分别修改为scala-2.10.4

安装配置最强Spark IDE--IDEA的更多相关文章
- Hive on Spark安装配置详解(都是坑啊)
个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/p/a7f75b868568 简介 本文主要记录如何安装配置Hive on Sp ...
- spark 安装配置
最佳参考链接 https://opensourceteam.gitbooks.io/bigdata/content/spark/install/spark-160-bin-hadoop26an_zhu ...
- Apache Spark 1.6 Hadoop 2.6 Mac下单机安装配置
一. 下载资料 1. JDK 1.6 + 2. Scala 2.10.4 3. Hadoop 2.6.4 4. Spark 1.6 二.预先安装 1. 安装JDK 2. 安装Scala 2.10.4 ...
- Eclipse IDE for C/C++ Developers安装配置详解
Eclipse IDE for C/C++ Developers安装配置详解(转) 转自:http://hi.baidu.com/ltb6w/item/986532efd712460f570f1ddc ...
- Spark之路 --- Windows Scala 开发环境安装配置
JDK安装 JDK安装包下载 到Oracle官网下载JDK. 传送门 下载之前要记得勾选上同意协议然后选择相应的版本(Windows/Linux, 32/64) JDK安装及验证 按提示完成安装,安装 ...
- spark集群安装配置
spark集群安装配置 一. Spark简介 Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发.Spark基于map reduce 算法模式实现的分布式计算,拥有Hadoo ...
- centOS7下Spark安装配置
环境说明: 操作系统: centos7 64位 3台 centos7-1 192.168.190.130 master centos7-2 192.168.190.129 slave1 centos7 ...
- 安装配置Spark集群
首先准备3台电脑或虚拟机,分别是Master,Worker1,Worker2,安装操作系统(本文中使用CentOS7). 1.配置集群,以下步骤在Master机器上执行 1.1.关闭防火墙:syste ...
- ubuntu下spark安装配置
一.安装vmware虚拟机 二.在虚拟机上安装ubuntu12.04操作系统 三.安装jdk1.8.0_25 http://www.oracle.com/technetwork/java/javase ...
随机推荐
- ArcGIS 网络分析[2.1] 最短路径
最短路径求解 [如果看到此博客还没有网络数据集的,请参考第一章的内容,点击我,看目录] 最短路径,是什么最短?时间最短?距离最短?什么距离?路程距离? 考虑到拥堵问题,限速问题,换乘问题,在现实的最短 ...
- lesson - 12 课程笔记
一.w 命令 作用: 用于显示已经登录系统的用户列表, 并显示用户正在执行的指令. 执行这个命令可得知目前登入系统的用户有哪些人, 以及他们正在执行的程序. 单独执行w 命令会显示所有的用户, 您也 ...
- tar --打包和压缩
tar 参考链接 作用:为linux的文件和目录创建档案,也可以在档案中改变文件,或者向档案中加入新的文件即用来压缩和解压文件.tar本身不具有压缩功能.他是调用压缩功能实现的 语法:tar[必要参 ...
- 串口调试者v2.1------开源c#串口调试工具
第一步:上图 第二步:上代码 >>>>>>>>>>>源代码下载<<<<<<<<< ...
- 如何将外部的obj模型导入OpenGL
1.关于obj的说明. obj中存放的是顶点坐标信息(v),面的信息(f),法线(vn),纹理坐标(vt),以及材质(这个放在mtl)中 我使用CINEMA 4D导出用VS查看后的信息: CINEMA ...
- mysql 数据表字段修改sql 语句
1 新增字段 alter table bulletin add citycode varchar(6) not null default 0 [after `id`]; # 城市代码 2 修改字段 a ...
- python pandas 合并数据函数merge join concat combine_first 区分
pandas对象中的数据可以通过一些内置的方法进行合并:pandas.merge,pandas.concat,实例方法join,combine_first,它们的使用对象和效果都是不同的,下面进行区分 ...
- Java数组的创建和初始化
我们说到数组,可能有的人就会比较害怕了,其实,数组只是把对象序列(很多个对象)或者基本类型序列(很多个基本类型)放在一起而已.数组是通过方括号下标操作符[]来定义和使用的.如果要定义,创建一个数组,只 ...
- Wechat 微信端调用“微信支付接口”的正确方式
微信端的项目中,比如微信商城之类的,肯定会涉及到微信支付这一块: 下面直接上详细的代码: var data = {--}; // 调用微信支付需要的数据 function onBridgeReady( ...
- windows平台调用函数堆栈的追踪方法
在windows平台,有一个简单的方法来追踪调用函数的堆栈,就是利用函数CaptureStackBackTrace,但是这个函数不能得到具体调用函数的名称,只能得到地址,当然我们可以通过反汇编的方式通 ...