Maven编译Spark程序

更新时间:2015年12月29日15时10分 来源:传智播客云计算学科 浏览次数:

在IDEA中编写Spark入门级程序WordCount

Spark是用Scala语言开发的,目前对Scala语言支持较好的是IDEA的插件,这里我们编写一个Spark入门级程序,然后用Maven编译成jar包,然后提交到集群。

1.创建一个项目,利用Maven来管理jar包的依赖。

2.选择Maven项目,然后点击next

3.填写maven的GAV,然后点击next

4.填写项目名称,然后点击finish

5.创建好maven项目后,点击Enable Auto-Import

6.配置Maven的pom.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

cn.itcast.spark

spark-mvn

1.0-SNAPSHOT

1.7

1.7

UTF-8

2.10.6

2.10

org.scala-lang

scala-library

${scala.version}

org.apache.spark

spark-core_2.10

1.5.2

org.apache.spark

spark-streaming_2.10

1.5.2

org.apache.hadoop

hadoop-client

2.6.2

src/main/scala

src/test/scala

net.alchim31.maven

scala-maven-plugin

3.2.0

compile

testCompile

-make:transitive

-dependencyfile

${project.build.directory}/.scala_dependencies

org.apache.maven.plugins

maven-surefire-plugin

2.18.1

false

true

**/*Test.*

**/*Suite.*

org.apache.maven.plugins

maven-shade-plugin

2.3

package

shade

*:*

META-INF/*.SF

META-INF/*.DSA

META-INF/*.RSA

7.将src/main/java和src/test/java分别修改成src/main/scala和src/test/scala,与pom.xml中的配置保持一致

8.新建一个scala class,类型为Object

9.编写spark程序

package cn.itcast.spark

import org.apache.spark.{SparkContext, SparkConf}

object WordCount {

def main(args: Array[String]) {

//创建SparkConf()并设置App名称

val conf = new SparkConf().setAppName("WC")

//创建SparkContext,该对象是提交spark App的入口

val sc = new SparkContext(conf)

//使用sc创建RDD并执行相应的transformation和action

sc.textFile(args(0)).flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_, 1).sortBy(_._2, false).saveAsTextFile(args(1))

//停止sc,结束该任务

sc.stop()

}

}

点击idea右侧的Maven Project选项,再点击Lifecycle,选择clean和package,然后点击Run Maven Build

10.选择编译成功的jar包,并将该jar上传到Spark集群中的某个节点上

11.首先启动hdfs和Spark集群

启动hdfs

/usr/local/hadoop-2.6.1/sbin/start-dfs.sh

启动spark

/usr/local/spark-1.5.2-bin-hadoop2.6/sbin/start-all.sh

12.使用spark-submit命令提交Spark应用(注意参数的顺序)

/usr/local/spark-1.5.2-bin-hadoop2.6/bin/spark-submit \

--class cn.itcast.spark.WordCount \

--master spark://node1.itcast.cn:7077 \

--executor-memory 2G \

--total-executor-cores 4 \

/root/spark-mvn-1.0-SNAPSHOT.jar \

hdfs://node1.itcast.cn:9000/words.txt \

hdfs://node1.itcast.cn:9000/out

查看程序执行结果

hdfs dfs -cat hdfs://node1.itcast.cn:9000/out/part-00000

(hello,6)

(tom,3)

(kitty,2)

(jerry,1)

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐