idea构建项目

  1. 创建一个maven项目,配置pom依赖,以及scala编译插件。 注意一定要保证,你的scala版本和spark版本和要提交的集群版本一致,要不很多莫名其妙的问题,scala如果你在window安装的版本就是和集群不一样,又懒得重新装,可以看 2 中,通过idea配置版本,并在编译插件里面指定好scala编译版本
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
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">
<modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId>
<artifactId>sparkextract</artifactId>
<version>1.0-SNAPSHOT</version> <properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties> <dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.11</artifactId>
<version>2.4.8</version>
</dependency> <dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.4.8</version>
</dependency> <dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.4.8</version>
</dependency> <dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.11.12</version>
</dependency>
</dependencies> <build>
<sourceDirectory>src/main/scala</sourceDirectory>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>4.7.2</version>
<configuration>
<scalaVersion>2.11.12</scalaVersion>
</configuration>
</plugin>
</plugins>
</build> </project>
  1. 配置scala的SDK, idea选项栏 File -> Project Structure -> Global Libraries

    点击 + 号,选择一致的scala版本

  2. 编辑你的代码, 需要注意,SparkConf里,不要配置master的内容,否则在submit提交的时候,指定的master会失效。

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext} object WordCount{
def main(args: Array[String]):Unit = {
// spark配置新建
val sparkConf = new SparkConf().setAppName("Operator")
// spark上下文对象
val spark: SparkContext = SparkContext.getOrCreate(sparkConf) // wordcount逻辑开始
val inPath: String = "hdfs:///user/zhangykun0508/exe.log"
val outPath: String = "hdfs:///user/zhangykun0508/wc.out" val file: RDD[String] = spark.textFile(inPath) val result: RDD[(String, Int)] = file.flatMap(a => a.split(" ")).map(a => (a, 1)).reduceByKey(_ + _) result.saveAsTextFile(outPath)
}
}
  1. 打jar包,注意先要用 scala插件编译,然后再用maven打包

任务提交

我这边提交的方式为提交到yarn上。将上一步打包好的jar文件,传到hadoop的节点,然后按以下命令执行

spark-submit \
--class WordCount \
--conf inPath=hdfs:///user/zhangykun0508/exe.log outPath=hdfs:///user/zhangykun0508 \
--master yarn \
--deploy-mode cluster \
./sparkextract.jar \
10 -- 命令解析
spark-submit \ # 执行spark-submit应用
--class WordCount \ # 指定本次任务的Main方法所在的类, 如果你的程序比较规范,记得要输入包名,如: com.zyk.sparktest.WordCount
--master yarn \ # 指定任务提交的方式为yarn
--deploy-mode cluster \ # 指定yarn的部署方式为 cluster, 即由yarn创建的 ApplicationMaster来运行创建driver
./sparkextract.jar \ # 指定你要执行的jar包
10 # 设置默认的任务数量

最新文章

  1. linux 下压缩大批量文件
  2. Linux常用命令(一)
  3. 利用反卷积神经网络可视化CNN
  4. spring学习遇到的问题汇总
  5. SmartZoneOCR识别控件免费下载地址
  6. Session的实现与存储
  7. ubuntu service
  8. noip 2009 细胞分裂
  9. Currency 货币 filter
  10. js面向对象小结(工厂模式,构造函数,原型方法,继承)
  11. c语言学习基础:[1]开发工具介绍
  12. HTML基础上
  13. dedecsm系统(企业简介)类单栏目模版如何修改和调用整理
  14. ORA-00471: DBWR process terminated with error案例
  15. MM-委外业务
  16. Linux 使用nexus搭建maven私服
  17. sublime lincense for linux
  18. Redis 常用监控信息命令总结
  19. 转csdn某位同学的 感谢bmfont
  20. Mysql(五) JDBC

热门文章

  1. 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(下)
  2. day38-IO流05
  3. 大家都在用MySQL count(*)统计总数,到底有什么问题?
  4. Django 简介和版本介绍
  5. Security:如何安装 Elastic SIEM 和 EDR
  6. Docker镜像仓库Harbor之Swagger REST API整合配置
  7. CAS核心思想、底层实现
  8. [题解] Atcoder ABC 225 H Social Distance 2 生成函数,分治FFT
  9. display:block 和display:inline-block的区别和用法
  10. HTML5中新增实用的标签