`

Spark学习:利用Eclipse搭建Spark集成开发环境

阅读更多

(1) 准备工作

在正式介绍之前,先要以下软硬件准备:

软件准备:

Eclipse Juno版本(4.2版本),可以直接点击这里下载:Eclipse 4.2

Scala 2.9.3版本,Window安装程序可以直接点击这里下载:Scala 2.9.3

Eclipse Scala IDE插件,可直接点击这里下载:Scala IDE(for Scala 2.9.x and Eclipse Juno)

硬件准备

装有Linux或者Windows操作系统的机器一台

(2) 构建Spark集成开发环境

我是在windows操作系统下操作的,流程如下:

步骤1:安装scala 2.9.3:直接点击安装即可。

步骤2:将Eclipse Scala IDE插件中features和plugins两个目录下的所有文件拷贝到Eclipse解压后对应的目录中

步骤3:重新启动Eclipse,点击eclipse右上角方框按钮,如下图所示,展开后,点击“Other….”,查看是否有“Scala”一项,有的话,直接点击打开,否则进行步骤4操作。

步骤4:在Eclipse中,依次选择“Help” –> “Install New Software…”,在打开的卡里填入http://download.scala-ide.org/sdk/e38/scala29/stable/site,并按回车键,可看到以下内容,选择前两项进行安装即可。(由于步骤3已经将jar包拷贝到eclipse中,安装很快,只是疏通一下)安装完后,重复操作一遍步骤3便可。

(3) 使用Scala语言开发Spark程序

在eclipse中,依次选择“File” –>“New” –> “Other…” –>  “Scala Wizard” –> “Scala Project”,创建一个Scala工程,并命名为“SparkScala”。

右击“SaprkScala”工程,选择“Properties”,在弹出的框中,按照下图所示,依次选择“Java Build Path” –>“Libraties” –>“Add External JARs…”,导入文章“Apache Spark学习:将Spark部署到Hadoop 2.2.0上”中给出的

assembly/target/scala-2.9.3/目录下的spark-assembly-0.8.1-incubating-hadoop2.2.0.jar,这个jar包也可以自己编译spark生成,放在spark目录下的assembly/target/scala-2.9.3/目录中。

跟创建Scala工程类似,在工程中增加一个Scala Class,命名为:WordCount,整个工程结构如下:

WordCount就是最经典的词频统计程序,它将统计输入目录中所有单词出现的总次数,Scala代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import org.apache.spark._
import SparkContext._
object WordCount {
  def main(args: Array[String]) {
    if (args.length != 3 ){
      println("usage is org.test.WordCount <master> <input> <output>")
      return
    }
    val sc = new SparkContext(args(0), "WordCount",
    System.getenv("SPARK_HOME"), Seq(System.getenv("SPARK_TEST_JAR")))
    val textFile = sc.textFile(args(1))
    val result = textFile.flatMap(line => line.split("\\s+"))
        .map(word => (word, 1)).reduceByKey(_ + _)
    result.saveAsTextFile(args(2))
  }
}

在Scala工程中,右击“WordCount.scala”,选择“Export”,并在弹出框中选择“Java” –> “JAR File”,进而将该程序编译成jar包,可以起名为“spark-wordcount-in-scala.jar”,我导出的jar包下载地址是 spark-wordcount-in-scala.jar

该WordCount程序接收三个参数,分别是master位置,HDFS输入目录和HDFS输出目录,为此,可编写run_spark_wordcount.sh脚本:

# 配置成YARN配置文件存放目录

export YARN_CONF_DIR=/opt/hadoop/yarn-client/etc/hadoop/

SPARK_JAR=./assembly/target/scala-2.9.3/spark-assembly-0.8.1-incubating-hadoop2.2.0.jar \

./spark-class org.apache.spark.deploy.yarn.Client \

–jar spark-wordcount-in-scala.jar \

–class WordCount \

–args yarn-standalone \

–args hdfs://hadoop-test/tmp/input \

–args hdfs:/hadoop-test/tmp/output \

–num-workers 1 \

–master-memory 2g \

–worker-memory 2g \

–worker-cores 2

需要注意以下几点:WordCount程序的输入参数通过“-args”指定,每个参数依次单独指定,第二个参数是HDFS上的输入目录,需要事先创建好,并上传几个文本文件,以便统计词频,第三个参数是HDFS上的输出目录,动态创建,运行前不能存在。

直接运行run_spark_wordcount.sh脚本即可得到运算结果。

在运行过程中,发现一个bug,org.apache.spark.deploy.yarn.Client有一个参数“–name”可以指定应用程序名称:

但是使用过程中,该参数会阻塞应用程序,查看源代码发现原来是个bug,该Bug已提交到Spark jira上:

1
2
3
4
5
6
7
8
9
10
11
12
// 位置:new-yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala
        case ("--queue") :: value :: tail =>
          amQueue = value
          args = tail
 
        case ("--name") :: value :: tail =>
          appName = value
          args = tail //漏了这行代码,导致程序阻塞
 
        case ("--addJars") :: value :: tail =>
          addJars = value
          args = tail

因此,大家先不要使用“–name”这个参数,或者修复这个bug,重新编译Spark。

(4) 使用Java语言开发Spark程序

方法跟普通的Java程序开发一样,只要将Spark开发程序包spark-assembly-0.8.1-incubating-hadoop2.2.0.jar作为三方依赖库即可。

(5) 总结

初步试用Spark On YARN过程中,发现问题还是非常多,使用起来非常不方便,门槛还是很高,远不如Spark On Mesos成熟。

 

 

转自:本文链接地址: http://dongxicheng.org/framework-on-yarn/spark-eclipse-ide/

4
3
分享到:
评论

相关推荐

    spark开发环境搭建(eclipse)

    * Eclipse 集成开发环境:Eclipse 是一个流行的集成开发环境,需要了解 Eclipse 的配置和使用方法。 * Spark 框架:需要了解 Spark 框架的基础知识,包括其架构、组件和 API。 * Hadoop 框架:需要了解 Hadoop 框架...

    eclipse集成hadoop+spark+hive开发源码实例

    在Windows操作系统中,Eclipse是一款广泛使用的Java集成开发环境(IDE),它对于开发分布式计算框架如Hadoop、Spark以及数据仓库工具Hive来说,是非常有用的。本教程将深入讲解如何在Eclipse中集成这些组件,以创建...

    Spark源代码在Eclipse中的部署、编译、运行.doc

    而Eclipse是一款广泛使用的Java集成开发环境(IDE),非常适合进行Spark源代码的开发和调试。 首先,我们需要进行必要的准备工作。这包括从官方网站下载以下组件: 1. **Openfire**(版本3.6.4):这是一个开源的...

    sparkscala开发依赖包

    在ECLIPSE这样的集成开发环境中,这些依赖包是构建、运行和调试Spark Scala应用程序的关键。 首先,我们来详细了解一下Spark的核心特性。Spark主要设计用于批处理、交互式查询(通过Spark SQL)、实时流处理(通过...

    第四章Spark&Scala的集成开发环境.docx

    第四章主要讲解的是Spark与Scala的集成开发环境的设置与运行,这涉及到大数据开发的关键步骤。首先,要确保你的Linux系统具有适当的Java环境,因为Spark和Scala都需要Java支持。安装和配置OpenJDK 8是必要的,这通常...

    Spark+Hadoop+IDE环境搭建

    本文将详细介绍如何在IDE环境下搭建Spark与Hadoop的集成环境。 首先,我们需要了解Hadoop的组成部分。Hadoop主要由HDFS(Hadoop Distributed File System)和MapReduce两部分组成。HDFS是分布式文件系统,用于存储...

    eclise开发spark集成环境.doc

    一、Eclipse 开发环境搭建 1. 解压 Eclipse 到 Linux 相关目录 在 Linux 中解压 Eclipse 安装包,并将其移到相关目录下。 2. 启动 Eclipse 在 Linux 中启动 Eclipse,确保在 CentOS 6.5 上正确设置。 二、Spark ...

    windows 下搭建eclipse的hadoop开发环境.rar_SPARKK_blew1bh_manufacturingkf

    Eclipse是一款流行的集成开发环境(IDE),支持多种编程语言,包括Java,它是Hadoop和Spark的主要开发语言。下载最新版本的Eclipse IDE for Java Developers,并按照官方指南进行安装。 接下来,我们需要安装Hadoop...

    openfire与spark环境搭建教程

    总的来说,搭建Openfire与Spark环境需要对Eclipse项目管理和Java开发有一定的了解,同时对即时通讯系统的运行机制要有基本的认识。虽然过程可能稍显繁琐,但只要按照上述步骤操作,就能成功建立一个本地即时通讯环境...

    eclipse-scala-plugin插件

    eclipse中集成spark开发环境: 步骤一:安装eclipse-scala-plugin插件,附件下载  解压缩以后把plugins和features复制到eclipse目录,重启eclipse以后即可。  Window -&gt; Open Perspective -&gt; Other…,打开Scala,...

    大数据云计算技术系列 hadoop搭建与eclipse开发环境设置-已验证通过(共13页).rar

    Hadoop是一个开源框架,主要用于分布式存储和计算大规模数据集,而Eclipse则是一个广泛使用的集成开发环境(IDE),适用于多种编程语言,包括Java,Hadoop的主要编程语言。本教程将深入探讨如何搭建Hadoop环境并配置...

    win7下Eclipse开发Hadoop应用程序环境搭建

    Eclipse则是一款广泛使用的Java集成开发环境(IDE),适用于各种Java应用和框架的开发,包括Hadoop。 1. **安装Java**: 开发Hadoop应用需要Java环境,因此首先确保系统上安装了Java Development Kit (JDK)。安装...

    老汤spark开发.zip

    5. **集成开发环境(IDE)**: "workspace"可能包含了使用某种IDE(如IntelliJ IDEA或Eclipse)的配置文件。这些IDE都有Spark和Scala的插件,能够提供良好的代码提示和调试支持。导入这些配置文件可以帮助快速设置好...

    Spark简单测试案例

    1. **安装 Scala IDE for Eclipse**:这是一个集成 Scala 开发环境的 Eclipse 插件,适合进行 Scala 项目的开发。 2. **新建 Scala 工程**:打开 Scala IDE for Eclipse,选择 `New` -&gt; `Scala Project`,在弹出的...

    eclipse 运行hadoop工具包

    标题 "eclipse 运行hadoop工具包" 涉及到的是在Eclipse集成开发环境中运行Hadoop项目的方法。Eclipse是一款广泛使用的Java IDE,而Hadoop是Apache开源项目,主要用于大数据处理和分析。通过特定的插件,Eclipse能够...

    Spark开发指南

    这些工具和方法能够帮助开发者搭建起一个稳定高效的Spark开发环境。 Spark Streaming是一个对实时数据流进行高通量、容错处理的流式处理系统。它可以处理多种数据源,执行复杂的操作,并将结果保存至外部系统。...

    spark-3.2.4-bin-hadoop3.2-scala2.13 安装包

    9. **开发和调试**: 对于开发者,IDEA、IntelliJ IDEA和Eclipse等集成开发环境有专门的Spark插件,便于代码编写和调试。此外,使用`--master local[*]`可以在本地模式下快速测试代码,而无需连接到集群。 10. **...

    eclipse-hadoop-plugin.rar

    4. **集成开发环境**:利用Eclipse的代码自动补全、语法高亮、错误检查等特性,提高编码效率。 5. **版本控制**:与Git或其他版本控制系统集成,方便团队协作开发。 Hadoop 2.8.5是一个稳定版本,包含了YARN(Yet ...

    spark-1.3.0

    Spark 1.3.0还支持各种开发工具,如IntelliJ IDEA和Eclipse插件,以及Spark Notebook,提供交互式的开发环境。此外,社区的活跃度持续高涨,为Spark开发了众多周边工具和库,如Spark JobServer、SparkR等,丰富了...

    Linux环境下Hadoop搭建与Eclipse配置

    而Eclipse是一款强大的集成开发环境(IDE),通过特定的插件可以支持Hadoop开发,提供便捷的编程和调试功能。 首先,我们来了解Linux操作系统。Linux是一个稳定、高效且开源的操作系统,非常适合用作服务器平台,...

Global site tag (gtag.js) - Google Analytics