一、IDEA创建一个maven的工程
1.选择scala-archetype-simple


二、修改pom.xml配置文件
1、修改scala版本、spark版本及hadoop版本
<properties>
<scala.version>2.11.8</scala.version>
<spark.version>2.3.1</spark.version>
<hadoop.version>2.6.0-cdh5.7.0</hadoop.version>
</properties>
2、添加hadoop和spark的依赖
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>${spark.version}</version>
</dependency>
hadoop 同spark
3、添加cdh的repository
由于hadoop版本是cdh的,所以需要添加cdh仓库
<repositories>
<id>cloudera</id>
<name>cloudera</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos</url>
</repositories>
修改完以上配置以后,maven会解析dependency然后下载相关的jar包及源码。如果这一步IDEA没有自动解析下载jar包,可以点开pom.xml,右键 - Maven - Reimport。如果还有红色波浪线报错,可以在右边Maven Prohects - Spark - Lifecycle - clean - Run Maven Build运行一下。
三、wc编程
1、新建一个package com.ruozedata.sparkG3
2、在package下面新建一个scala类,选择object

3、程序编写
package com.ruozedata.spark
import org.apache.spark.{SparkConf, SparkContext}
object WCApp {
def main(args: Array[String]): Unit = {
val sparkConf =new SparkConf()
val sc =new SparkContext(sparkConf)
val textFile = sc.textFile(args(0))
val wc = textFile.flatMap(line => line.split("\r")).map((_,1)).reduceByKey(_+_)
wc.collect().foreach(println)
sc.stop()
}
}
4、打包
Maven Project - Spark - Liftcycle - package右键 - Run Maven Build。打包的过程中会联网下载一些包
打包完会在项目路径下面的target文件夹下面有一个jar包
将该jar包丢到服务器上就可以使用
[hadoop@hadoop001 data]$ spark-submit \
--class com.ruozedata.spark.test.WCApp \
--master local[2] \
/home/hadoop/lib/sparkG3-1.0-SNAPSHOT.jar \
hdfs://hadoop001:9000/data/wc_input
网友评论