首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

搭建Windows下的Spark开发环境

更多腾讯海量技术文章,请关注云加社区:https://cloud.tencent.com/developer

作者:李军

1 搭建开发环境

本文描述了在Windows下用IntelliJ IDEA搭建Spark开发环境,以及在本地和YARD上运行Spark应用。

1.1 安装IntelliJ IDEA

下载并安装Community版本的IDEA。Community版本的IDEA是免费的,下载地址:https://www.jetbrains.com/idea/。

1.2 创建Spark项目

首先安装Scala插件,点击菜单栏 File ->Settings -> Plugins,搜索scala,点击右侧Install即可:

我们是通过Maven Archetype创建Spark工程的,创建Spark项目之前需先添加新的Archetype,点击菜单栏File -> New -> Project…,选择Maven项目,点击Add Archetype:

ArtifactId: scala-archetype-simple

Version: 1.6

只需手工添加一次Archetype。

然后创建Spark工程的,点击菜单栏File -> New -> Project…,选择刚才添加的Archetype:

填好相关参数,一路Next,等IDEA初始化完成后,得到如下的项目结构:

1.3 编译

YARD的Spark版本是2.0.1,Scala版本是2.11.8。编译前需修改pom.xml的内容,否则会导致编译错误。在pom.xml的中,把 scala.version 改成2.11.8:

在pom.xml的中,添加对Spark的依赖:

修改App.scala,添加Spark Examples中SparkPi的代码做演示:

点击菜单栏 Build ->Build Project(Ctrl + F9)编译工程,得到如下的错误提示:

这个错误是因为我们用的scala版本的编译器已经不支持该编译选项了,解决办法是打开pom.xml,查找到该行,删掉即可。

重新编译项目(Ctrl + F10),没有错误了,编译成功,编译结果保存在 traget目录下。

1.4 打包

在YARD上运行Spark应用需要上传jar文件,IDEA打包jar文件也很方便,打开Execute Maven Goal对话框:

填入打包命令clean package –DskipTests ,点击Execute:

等IDEA构建完成,在target目录下得到jar包:

2 运行Spark应用

2.1 本地运行

IDEA支持在本地运行Spark应用,非常便于测试和调试。要在本地运行Spark应用,只需在创建SparkConf时设置其Master为local即可:

val conf = new SparkConf() .setAppName("yourAppName") .setMaster("local")

点击菜单栏Run -> Run…(Alt + Shift + F10)运行,在大段的Spark日志中得到SparkPi的运行结果:

由于在YARD上运行时不能设置Master为local,有个小技巧兼容这种情况,即根据操作系统类型来创建SparkConf:

使用这个技巧的前提是本地开发的系统是Windows,生产环境是Linux。

3 参考资料

Scala

http://www.scala-lang.org/api/2.11.8/

https://twitter.github.io/scala_school/

Spark

http://spark.apache.org/docs/2.0.1/

http://spark.apache.org/docs/2.0.1/api/scala/index.html

Spark性能调优

https://www.zybuluo.com/xiaop1987/note/76737

https://www.zybuluo.com/xiaop1987/note/102894

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180103A0G07000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券