用intellij idea写spark代码

最近在研究spark源代码,做一些与spark mlib相关的工作,需要需要自己写一些相关的spark代码。故整理一下。
首先,下载intellij idea 官方程序,我这里下载的是其社区版(免费)。接着下载spark2.0源代码以及spark2.0 预编译版本。再下载并安装scala程序。当然如果你没有安装java sdk的话,那你需要安装java sdk(这些基本安装就不介绍了)。接下来开始正式开工了。
这里以spark-2.0.2/examples/src/main/scala/org/apache/spark/examples/ml/PipelineExample.scala作为一个例子来详细叙述。
安装好intellij idea后,那么直接创建新的project。
如果以前有用intellij idea写过project的话,那在程序左上角点击新建工程:
新建工程界面

因为这里是scala程序,所以选择Scala
这里写图片描述
点击Next之后,这里需要注意根据java版本和scala版本选择相应的sdk(红线部分)。
这里写图片描述
点击Finish,就完成了pipe项目的初始化创建工作了。接下来,我们需要向pipe里面添加代码了,这里我们将PipelineExample.scala文件放到src 目录下面,并点击同步。这里写图片描述
这样鼠标点击src,就可以看到PipelineExample.scala文件了。
这里写图片描述
此时,点击进入PipelineExample.scala文件,会发现文件上很多红色提示符,意味着很多编译错误。
这里写图片描述
这里,由于没有加载依赖包,导致编译器很多不识别。为了解决这些问题,可以去官方下载spark的预编译版本,预编译版本里面有个jars文件夹。接下来就该把jars文件夹里的包导入到我们的工程里去了,这里 选择File->ProjectStructure
这里写图片描述
在弹出来的小窗口中,选择modules及Dependencies(箭头所示)。
这里写图片描述
点击右侧的+号,这里跳出来的jars or directories,点击该选项后,会弹出文件选择框。这里既可以添加单独的jars包,也可以添加包含jars包的文件夹,这里导入预编译版里面的jars文件夹
这里写图片描述
点击OK后,文件选择框会关闭。这时先点击窗口右下角的Apply,再点击Apply左边的OK。窗口关闭,jars包就会被导入到工程里了。Intellij idea 会自动建立包的索引。

到这里,会发现原本那些红字全部消失了,代表编译通过了,这里可以尝试在编译器内运行了.
这里写图片描述
这里写图片描述
因为在windows下,没有配置相应的hadoop依赖及其 环境,所以目前运行中会遇到一些错误,无法初始化sparkContext。这时候,我们可以将该程序打包成jars,放到布置好环境的linux下面运行。具体方式如下:首先File->ProjectStructure, 打开面板后,作如下操作,
这里写图片描述
点击后会弹出面板,选择copy to output directory and link via manifest, 再点击红线部分
这里写图片描述
会继续弹出一个面板,选择Mainclass.
这里写图片描述
这里由于我把PipelineExample.scala 里面的package那一行注释掉了,所以我的代码位于default package下面,因而它显示的是PipelineExample< default>,选中后,该面板就自动关闭了。
这里写图片描述
接着点击Apply 和OK。
这里写图片描述
窗口就会关闭了。
工程自动为我们生成出来一个MANIFEST.MF。接下来点击build。
这里写图片描述
选择Build Artifacts
这里写图片描述
会跳出个小窗口。点击Build
这里写图片描述
Intellij idea会自动生成一个out文件夹,里面有个artifacts文件夹,在下面就是pipe_jar文件夹,里面包括pipe.jar以及它所依赖的jar包。
这里写图片描述

到这里我们已经完成了代码的编译和打包工作了,接下来该执行我们生成的jar了。
把out下面的 artifacts文件夹丢到linux上面, 这里我直接将pipe目录页带进去了
执行命令
$SPARK_HOME/bin/spark-submit –class PipelineExample /root/pipe/out/artifacts/pipe_jar/pipe.jar
就可以看到我们的代码正在被执行了。

这里因为一个只涉及到spark 预编译版本的jars文件夹下的包,如果你需要其他的依赖包,可以去官方网站
https://mvnrepository.com/去搜索官方的一些jars 包。当然如果你觉得翻墙太慢的话,可以利用阿里云的镜像http://maven.aliyun.com/nexus去搜索并下载相关的jars包,下载好jars包后,按照之前描述导入预编译版jars文件夹下的包的方式导入指定的包。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值