如何使用IntelliJ IDEA搭建spark开发环境(上)

转载 2015年07月08日 11:22:12

本文部分转自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:

idea_Configure

然后依次点击:Configure -> Plugins -> Browse Repositories, 在出现的搜索框里搜索scala,然后安装scala插件即可:

在最新的14版本的IntelliJ中,在安装即将结束时会有提示安装scala插件,可以在此时安装上

idea_install_scala_plugin

(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包

Screen Shot 2014-10-11 at 4.58.48 PM

 

好了,在这里添加了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即可,项目结构图如下所示:

Screen Shot 2014-10-11 at 6.08.21 PM

注意,这里新建的hello1 module还没有添加spark的jar包支持,所以是不能写spark程序的,我们这里要为hello1 module添加spark支持:File -> Project Structure -> Modules -> 选择hello1 -> Dependencies -> 左下角的‘+’ -> 选择上文中说过的jar包 -> ‘ok’ 即可。

原博主的操作都是在mac版本的IntelliJ上进行的,windows版本中此部的‘+’在界面的右上角

Screen Shot 2014-10-11 at 6.11.02 PM

这里提供三个示例程序可供测试:

SparkPi.scala

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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” 就可以在下面看到自己的运行结果了:

Screen Shot 2014-10-11 at 6.39.38 PM

 

关于更多在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开发环境

环境:Cent OS 6.7 jdk1.8.0_101 Spark-1.6.3-bin-hadoop2.6.tgz 下载安装包前去官网下载Spark-1.6.3-bin-hadoop2.6.tgz;或...

Intellij Idea搭建Spark开发环境

在Spark快速入门指南 – Spark安装与基础使用中介绍了Spark的安装与配置,在那里还介绍了使用spark-submit提交应用,不过不能使用vim来开发Spark应用,放着IDE的方便不用。...

Spark Streaming+IntelliJ Idea+Maven开发环境搭建

国内关于Spark流处理方面的资料实在是少之又少,开发环境搭建上一些细节上的说明就更少了,本文主要介绍在Windows下通过IntelliJ Idea连接远程服务器的Spark节点,接收FlumeNG...

利用Intellij Idea在windows搭建spark 开发环境(含打jar包过程)(一)

本文的目的:利用Intellij Idea在windows搭建spark 开发环境 环境:windows 10, intellij idea2016.1.1, spark 1.6.2(HDP),had...

Scala2.11.8 + Sbt + Maven + IntelliJ Idea + Spark2.0开发环境搭建备忘

已有hadoop yarn 和 spark 集群部署、运行在分布式环境中,程序开发编码在PC上,由于逐渐增多scala编写spark2.0程序,入乡随俗使用sbt和IntelliJ Idea,顺便对P...

利用Intellij IDEA构建Spark开发环境(包括scala环境的搭建)

(1)准备工作 1)  安装JDK 6或者JDK 7 2)  安装scala 2.10.x (注意版本) 2)下载Intellij IDEA最新版(本文以IntelliJ IDEA ...

使用IntelliJ IDEA配置Spark应用开发环境及源码阅读环境

在本地搭建好Spark 1.6.0后,除了使用官方文档中的sbt命令打包,spark-submit提交程序外,我们可以使用IntelliJ IDEA这个IDE在本地进行开发调试,之后再将作业提交到集群...

Spark开发环境配置(windows/Intellij IDEA 篇)

Intellij IDEA是一个蛮不错的IDE,在java/scala/Groovy领域深得人心。笔者之前使用的是Eclipse那一套开发环境,虽然也不错,但忍不住好奇心的驱使,折腾了一下IDEA,发...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)