(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/
相关推荐
Eclipse搭建的spark开发环境,微云可下!Eclipse搭建的spark开发环境,微云可下!
Spark 开发环境搭建 关于scala for eclipse搭建
spark学习 Spark: Cluster Computing withWorking Sets Matei
spark学习 spark开发环境搭建spark学习 spark开发环境搭建spark学习 spark开发环境搭建spark学习 spark开发环境搭建
Spark集群及开发环境搭建,适合初学者,一步一步并配有截图。 目录 一、 软件及下载 2 二、 集群环境信息 2 三、 机器安装 2 1. 安装虚拟机VirtualBox 2 2. 安装CentOs7 2 四、 基础环境搭建(hadoop用户下)...
1. 解压Spark安装包 2. 配置Spark环境变量 2. 修改 spark-env.sh 文件,完成以下设置: 1. 设置运行master进程的节点, e
初学者手册 一、 软件及下载 2 二、 集群环境信息 2 ...八、 Scala开发环境搭建 21 1、系统安装 21 2、安装jdk8 21 3、安装scala2.11 21 4、安装scala for eclipse 21 5、创建scala工程 21
1. 解压Spark安装包 2. 配置Hadoop生态组件相关环境变量 2. 在 master 节点上,关闭HDFS的安全模式: 3. 在 master 节点上
基于Win7环境,IntelliJ IDEA 搭建Spark开发环境。
mongodb-spark官方连接器,运行spark-submit --packages org.mongodb.spark:mongo-spark-connector_2.11:1.1.0可以自动下载,国内网络不容易下载成功,解压后保存到~/.ivy2目录下即可。
Apache Spark开发环境搭建
spark源码:spark-master.zip。方便不能登录GitHub的小伙伴下载。如果实在需要留言,可以私下给。
windows10下spark2.3.0本地开发环境搭建 win10上部署Hadoop非Cygwin、非虚拟机方式。安装目录为D:\setupedsoft。涉及相关组件版本: win10 家庭装,64位,x86处理器 JDK1.8.0_171 hadoop-2.7.6 Spark-2.3.0 Scala-...
Spark 环境搭建 - Windows 本文将指导您在 Windows 平台上搭建 Spark 环境,包括 JDK、Scala、Hadoop、Python 和 Spark 的安装和配置。 Python 的安装与配置 Python 是 Spark 的依赖项之一,需要安装 Python ...
课时14:Spark机器学习对各种监督与非监督分类学习详细介绍 课时15:Spark协同过滤算法,构建用户与产品模型 课时16:Spark协同算法完成给用户推荐产品 课时17:mongodb的安装以及其基本操作 课时18:Spark与...
描述spark开发环境的搭建过程.pdf
windows系统下eclipse集成hadoop,spark,hive开发环境
实时计算框架:Spark集群搭建与入门案例。50字50字50字50字50字50字
Spark环境搭建-Linux
Spark入门文档,来源于Linux公社