[1.0]完美解读使用IDEA开发spark应用程序及spark源码阅读环境搭建

场景

第一次使用Intellij IDEA开发第一个spark应用程序?对 idea的操作相当不熟悉?听别人说spark高手更喜欢使用IDEA?
怎么在Intellij Idea导入 spark的源代码?使用 eclipse-scala阅读spark源代码相当不方便:没法在一个源文件中直接关联查询另一个源文件,必须另外从新ctrl+shift+t!
怎么编写脚本提交spark应用程序到spark集群中?

实验

实验环境

操作系统:Ubuntu Kylin 14.0.4
Intellij IDEA:Intellij IDEA 2016.1.1
JDK版本:1.8.0_77
scala版本:2.10.4
spark版本:1.6.0

第一个spark应用程序的开发
步骤
  • 建一个新的项目
    这里以新建一个名为hellospark的项目为例加以说明:

    这里写图片描述

这里写图片描述
- 导入spark依赖包

这里写图片描述

  • 编写wordcount应用程序
    先建包,以 cool.pengych.spark.core为例:

这里写图片描述

然后,选中包,鼠标右键 - New -> Scala Class -> 下拉框选择 object 输入对象名称: WordCount 。接下来编写 word count程序:

package cool.pengych.spark.core
import org.apache.spark.{SparkConf, SparkContext}
/**
 * Created by pengyucheng on 16-4-28.
  */
object WordCount {
  def main(args: Array[String]) {
    val conf = new SparkConf()
    conf.setAppName("my first spark app ") 
    val sc: SparkContext = new SparkContext(conf)  
    val lines = sc.textFile("hdfs://112.74.21.122:9000/input/test.log")
    val words = lines.flatMap {line => line.split(" ") } 
    val pairs = words.map { word => (word,1) }
    val wordCounts = pairs.reduceByKey(_+_).map(pair => (pair._2,pair._1)).sortByKey(false).map(pair => (pair._2,pair._1))
    wordCounts.collect.foreach(wordNumberPair => println(wordNumberPair._1 +":" + wordNumberPair._2)) 
    sc.stop
  }
}

此时的目录结构:

目录结果

  • 手动构建jar包

这里写图片描述

这里写图片描述

  • 提交应用程序

这里假设把上面手动构建好的jar包,放在 /home/pengyucheng/resource目录下。这里假设你提交应用程序的机器的spark安装目录为:/home/hadoop/spark-1.6.0-bin-hadoop2.6且spark集群已经在运行了,master地址为:spark://sparker:7077。接下来在任意目录下,编写一个可执行脚本wordcount.sh,用于向spark集群提交该应用程序。脚本内容如下:

/home/hadoop/spark-1.6.0-bin-hadoop2.6/bin/spark-submit --class cool.pengych.spark.core.WordCount --master spark://sparker:7077 /home/pengyucheng/resource/WordCount.jar

提交应用程序:

#./wordcount.sh

这里写图片描述

执行结果:

这里写图片描述

至此,成功的使用IDEA完成了第一个应用程序的开发与使用脚本提交到集群环境上运行!

源代码阅读环境搭建

编写好WordCount.scala应用程序后,如果想看看org.apache.spark.{SparkConf, SparkContext}等类的源文件怎么办呢? 当然,直接按下 ctrl+鼠标选中并点击会出现idea自动反编译后的源代码,但是没有注释,阅读相当费劲:

这里写图片描述

好,接下来我们开始导入spark源代码!

  • 下载源代码

打开IntelliJ IDEA 后,在菜单栏中选择 VCS→Check out from Version Control→Git,之后在 Git Repository URL 中填入 Spark 项目的地址,并指定好本地路径,如下图所示:

这里写图片描述

点击该窗口中的的 Clone 后,开始从 Github 中 clone 该项目,该过程试你网速而定,大概需要3-10分钟。
当 clone 完毕后,IntelliJ IDEA 会自动提示你该项目有对应的 pom.xml 文件,是否打开。这里直接选择 Open 该 pom.xml 文件,然后系统会自动解析项目的相关依赖,该步骤也会因你的网络和系统相关环境,所需时间不同。

  • 关联源代码

这里写图片描述

成功导入了源代码,现在再ctrl+鼠标选中点击相关spark相关类就可以看到有详细注释的源文件:

这里写图片描述

自我陶醉!成功的迈出了spark程序人生的第一步:开心啊!!!

[ 注 ] idea 常用操作基本快捷键

Ctrl+N 查找类
Ctrl+Shift+N 查找文件
Ctrl+Shift+Alt+N 查找类中的方法或变量
Ctrl+H 显示类结构图
Shift+F6 重构-重命名
Ctrl+X 删除行
Ctrl+D 复制行
Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者// )
Ctrl+E 最近打开的文件
Alt+1 快速打开或隐藏工程面板

参考

王家林DT大数据梦工厂
源码导入
idea常用快捷键
使用maven管理scala项目

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值