如何使用IntelliJ IDEA搭建spark开发环境(上)
来源:互联网 发布:php实现跨域 编辑:程序博客网 时间:2024/05/24 05:45
本文部分转自http://www.beanmoon.com/2014/10/11/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8intellij%E6%90%AD%E5%BB%BAspark%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/,其中有自己在实践中遇到的一些问题的记录,仅用来学习记录,所有权利归原作者所有。
安装完spark之后对于程序猿们来说接下来要做的事就是搭建开发环境了,据spark的官网上介绍,大多数spark的开发者们都是使用maven来开发spark的,但鉴于maven的学习曲线确实太陡,我们这里就介绍一个IDE工具来替代,那就是intellij了,intellij与eclipse关于谁是最好的java IDE之争已经打得热火朝天了,但关于scala IDE无疑是intellij~
好了,本教程共分为以下几点:
(1) 安装scala开发插件
官网jetbrains.com下载IntelliJ IDEA,有Community Editions 和Ultimate Editions,前者免费,用户可以选择合适的版本使用。我这里使用的是Ultimate Editions 13.1, 如果版本不一致,界面可能会有稍微差别,不过区别不大。(初学者还是下载社区版本比较好,毕竟免费,没有激活的烦恼)
根据安装指导安装IDEA后,打开IDEA:
然后依次点击:Configure -> Plugins -> Browse Repositories, 在出现的搜索框里搜索scala,然后安装scala插件即可:
(在最新的14版本的IntelliJ中,在安装即将结束时会有提示安装scala插件,可以在此时安装上)
(2) 建立Spark应用程序
在intellij IDEA中创建scala project,并依次选择“File”–> “project structure” –> “Libraries”,选择“+”,”java”, 将spark-hadoop 对应的包导入,比如导入spark-assembly_2.10-0.9.0-incubating-hadoop2.2.0.jar(只需导入该jar包,其他不需要,该包一般位于$SPARK_HOME/assembly/target/scala-2.10/中)
(实践用的spark-1.2.1-bin-hadoop2.4,直接就在解压后的文件夹的lib文件夹下就有这个jar包)
好了,在这里添加了jar包依赖之后就可以创建spark程序了,创建名为helloworld的project:启动IDEA -> Welcome to IntelliJ IDEA -> Create New Project -> Scala -> Non-SBT -> 创建一个名为helloworld的project(注意这里选择自己安装的JDK和scala编译器) -> Finish。
创建一个名为hello1的module,File -> Project Structure -> + -> New module -> Scala -> Non-SBT, 然后给自己的module起名为hello1, 然后Finish即可,项目结构图如下所示:
注意,这里新建的hello1 module还没有添加spark的jar包支持,所以是不能写spark程序的,我们这里要为hello1 module添加spark支持:File -> Project Structure -> Modules -> 选择hello1 -> Dependencies -> 左下角的‘+’ -> 选择上文中说过的jar包 -> ‘ok’ 即可。
(原博主的操作都是在mac版本的IntelliJ上进行的,windows版本中此部的‘+’在界面的右上角)
这里提供三个示例程序可供测试:
SparkPi.scala
123456789101112131415161718192021
package hello1 import scala.math.random import org.apache.spark._ /** Computes an approximation to pi */ object SparkPi { def main(args: Array[String]) { val conf = new SparkConf().setAppName("Spark Pi").setMaster("local") val spark = new SparkContext(conf) val slices = if (args.length> 0) args(0).toInt else 2 val n = 100000 * slices val count = spark.parallelize(1 to n, slices).map { i => val x = random * 2 - 1 val y = random * 2 - 1 if (x*x + y*y< 1) 1 else 0 }.reduce(_ + _) println("Pi is roughly " + 4.0 * count / n) spark.stop() } }
WordCount1.scala
123456789101112131415161718
package hello1 import org.apache.spark.{SparkContext, SparkConf} import org.apache.spark.SparkContext._ object WordCount1 { def main(args: Array[String]) { if (args.length == 0) { System.err.println("Usage: WordCount1 ") System.exit(1) } val conf = new SparkConf().setAppName("WordCount1").setMaster("local") val sc = new SparkContext(conf) sc.textFile(args(0)).flatMap(_.split(" ")).map(x => (x, 1)).reduceByKey(_ + _).take(10).foreach(println) sc.stop() } }
WordCount2.scala
123456789101112131415161718
package hello1 import org.apache.spark.{SparkContext, SparkConf} import org.apache.spark.SparkContext._ object WordCount2 { def main(args: Array[String]) { if (args.length == 0) { System.err.println("Usage: WordCount2 ") System.exit(1) } val conf = new SparkConf().setAppName("WordCount2").setMaster("local") val sc = new SparkContext(conf) sc.textFile(args(0)).flatMap(_.split(" ")).map(x => (x, 1)).reduceByKey(_ + _).map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1)).take(10).foreach(println) sc.stop() } }
保存最新修改后的源码后,点击”run” -> “run” 就可以在下面看到自己的运行结果了:
关于更多在spark集群上运行的内容可以参考下文如何使用intellij搭建spark开发环境(下)
参考链接:
http://www.aboutyun.com/thread-8404-1-1.html
http://dongxicheng.org/framework-on-yarn/apache-spark-intellij-idea/
- 如何使用IntelliJ IDEA搭建spark开发环境(上)
- Spark(八) -- 使用Intellij Idea搭建Spark开发环境
- Spark(八) -- 使用Intellij Idea搭建Spark开发环境
- 使用Intellij Idea搭建Spark开发环境
- Intellij IDEA使用Maven搭建spark开发环境(scala)
- 如何使用intellij搭建spark开发环境(下)
- Intellij Idea搭建Spark开发环境
- Intellij Idea搭建Spark开发环境
- Spark Scala IntelliJ IDEA开发环境搭建(入门)
- 使用Intellij IDEA构建spark开发环境
- Spark 开发环境搭建(2)IDEA 安装新版本IntelliJ IDEA 2017.1
- 【Spark】在window下搭建spark开发环境(IntelliJ IDEA)
- spark学习笔记(4)IntelliJ IDEA搭建Spark开发环境
- Spark Streaming+IntelliJ Idea+Maven开发环境搭建
- spark Intellij IDEA及eclipse开发环境搭建
- Intellij IDEA搭建Spark开发环境并运行
- 0070 IntelliJ IDEA+Scala+Hadoop +Spark的开发环境搭建
- Windows下使用IntelliJ IDEA搭建Spark环境
- mvc4 部署到win service 2008 r2 报错403
- eclipse tomcat JNdi配置笔记
- 10003---Tomcat建立虚拟主机最佳实践
- mysql必知必会(一)
- 60安全浏览器可以通过指定内核的方式来解决兼容性问题。
- 如何使用IntelliJ IDEA搭建spark开发环境(上)
- 【探秘ES6】系列专栏
- vim配置及插件安装管理(超级详细)
- iOS在线音频播放FreeStreamer
- API之SOA和数据格式
- 欢迎使用CSDN-markdown编辑器
- php 中的declare
- POJ 2028 When Can We Meet?(水~)
- 探讨自动化网页截图方法在全球化测试中的实际应用