文章目录

  • idea新建maven项目,配置scala环境
  • 配置pom.xml
  • Spark统计WordCount
  • 总结
  • 使用scala可能遇到的问题

idea新建maven项目,配置scala环境

File–>Project Structure -->Modules,添加scala依赖库

配置pom.xml

<dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.12</artifactId><version>3.3.0</version>
</dependency>
<!--如果需要访问hdfs中的文件,则要添加依赖-->
<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>3.3.1</version>
</dependency>

Spark统计WordCount

package com.hjt.yxh.hwimport org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}object WordCountApp {def main(args: Array[String]): Unit = {//1. 创建SparkConfval conf = new SparkConf();conf.setMaster("local").setAppName("WordCount")val sparkContext = new SparkContext(conf);//val inpath:String = "hdfs://k8s-node8:8020/root/data/wordcount.txt"val dataRdd1:RDD[String] = sparkContext.textFile("D:\\java_workspace\\BigData\\Spark\\SparkApp\\SparkLearn\\src\\main\\resources\\test.txt")val dataRdd2:RDD[String] = dataRdd1.flatMap(data=>{data.split(" ")}).filter(_.nonEmpty)val rdd3:RDD[(String,Int)] = dataRdd2.map(data=>{(data,1)})//    val result = rdd3.reduceByKey((val1:Int,val2:Int)=>{//      val1+val2
//    })val result = rdd3.groupByKey().map(data=>{(data._1,data._2.sum)})result.foreach(println)sparkContext.stop()}}

编写完成后可以在idea中运行测试,看到运行结果。

Tips:如果需要提交到spark集群上运行,需要先打成jar包,然后使用命令的方式提交。当然在代码中conf.setMaster()就不能写成“local”了。

--以客户端的方式提交任务
spark-submit --master spark://k8s-node3:6000 --class com.hjt.yxh.hw.transmate.WordCount ./SparkApp-1.0-SNAPSHOT.jar --以集群的方式提交任务
spark-submit --master spark://k8s-node3:6000 --deploy-mode cluster --class com.hjt.yxh.hw.transmate.WordCount ./SparkApp-1.0-SNAPSHOT.jar 

总结

开发一个Spark应用的流程:

  • 1.创建SparkConf
  • 2.设置Spark的Master的信息,有两种方式:
    • 一种在idea本地运行,conf.setMaster(“local”)
    • 另一种是集群提交的方式:conf.setMaster(“spark://k8s-node3:6000”)
  • 3.设置AppName,这个是必须要设置的,不然程序运行不起来
  • 4.创建一个SparkContext对象
  • 5.做其他的算子运算操作(注意,有些算子是“懒执行”算子,一个Application中至少得有一个Action算子)
  • 6.关闭sparkContext对象

使用scala可能遇到的问题

如果报错Failed to load class

22/07/11 19:18:49 WARN DependencyUtils: Local jar /home/software/spark-3.3.0-bin-hadoop3/SparkApp-1.0-SNAPSHOT2.jar does not exist, skipping.
Error: Failed to load class com.hjt.yxh.hw.transmate.WordCount.
22/07/11 19:18:49 INFO ShutdownHookManager: Shutdown hook called
22/07/11 19:18:49 INFO ShutdownHookManager: Deleting directory /tmp/spark-ac3b6c16-f668-493c-ae7b-4042bcf55e02
[root@k8s-node8 spark-3.3.0-bin-hadoop3]# 

可能是因为使用Scala打包时没有生成class文件,这时需要在pom.xml中添加编译插件

pom.xml:

  <build><plugins><plugin><groupId>net.alchim31.maven</groupId><artifactId>scala-maven-plugin</artifactId><version>3.4.6</version><executions><execution> <!-- 声明绑定到 maven 的 compile 阶段 --><goals><goal>compile</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>3.0.0</version><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins></build>

SPark学习笔记:02-SPark简单应用WordCount相关推荐

  1. Spark学习笔记(8)---Spark Streaming学习笔记

    Spark Streaming学习笔记 同Spark SQL一样,Spark Streaming学习也是放在了github https://github.com/yangtong123/RoadOfS ...

  2. Spark学习笔记(7)---Spark SQL学习笔记

    Spark SQL学习笔记 Spark SQL学习笔记设计到很多代码操作,所以就放在github, https://github.com/yangtong123/RoadOfStudySpark/bl ...

  3. Spark学习笔记1——第一个Spark程序:单词数统计

    Spark学习笔记1--第一个Spark程序:单词数统计 笔记摘抄自 [美] Holden Karau 等著的<Spark快速大数据分析> 添加依赖 通过 Maven 添加 Spark-c ...

  4. Spark学习笔记[1]-scala环境安装与基本语法

    Spark学习笔记[1]-scala环境安装与基本语法   正所谓工欲善其事必先利其器,Spark的开发语言不是java而是scala,虽然都是运行于JVM,但是两门语言的基本特性还是有些不一样,这里 ...

  5. 尚硅谷大数据技术Spark教程-笔记02【SparkCore(核心编程,map、mapPartitions、mapPartitionsWithIndex、flatMap、glom、groupBy)】

    视频地址:尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01[Spark(概述.快速上手.运行环境.运行架构)] 尚硅谷大数据技术Spark教 ...

  6. spark 学习笔记

    spark 学习笔记 spark介绍 Spark是是一种快速通用的集群计算系统,它的主要特点是能够在内存中进行计算.它包含了 spark 核心组件 spark-core,用于 SQL 和结构化处理数据 ...

  7. JavaWeb-综合案例(用户信息)-学习笔记02【登录功能】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb-综合案例(用户信息)-学习笔记01[列表查询] JavaWeb-综合案例(用户信息)-学习笔记02[登录功能] JavaWeb-综合案 ...

  8. JavaScript学习笔记02【基础——对象(Function、Array、Date、Math)】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  9. RN学习笔记02:利用WebStorm创建RN项目

    RN学习笔记02:利用WebStorm创建RN项目 在RN学习笔记01里,安装了node.js与react-native-cli,而且配置了环境变量. 在命令行环境,利用react-native in ...

最新文章

  1. CentOS安装setup
  2. 自动化测试之iframe窗口的切换
  3. Promise.all捕获错误
  4. cvtcolor python opencv_蔡徐坤教你用OpenCV实现素描效果
  5. oracle11g中的join,sql - 使用Oracle 11g中的+符号进行左外连接
  6. 关于机器学习,这里有一份权威入门指南
  7. 在机器学习中,ground truth是什么意思?
  8. python模块:网络协议和支持
  9. 最好用的HDR图像处理器——Photomatix Pro新功能介绍及使用教程
  10. BN层和Dropout层
  11. Workbench中直接调用ICEM CFD进行网格划分
  12. 四川师范大学自然地理(1-地球)90分以上版本
  13. H5架设新手小白搭建教程(适用于新手)
  14. Object Detection经典代码与文章
  15. Java中hashcode和equals详解
  16. Linux 您未安装Flash Player 或者版本过低
  17. 测试中缺陷的管理流程
  18. 最简单的太阳能光伏发电系统
  19. [附源码]Python计算机毕业设计毕业设计管理系统
  20. 计算机课程作品观摩,计算机观摩教学活动心得体会(共7篇)

热门文章

  1. 《华中科技大学公开课:哲学导论》 摘抄
  2. 【Rust日报】2020-04-13 Ruma,Flutter RS,Valora,Rust SSH,mathbench
  3. 利用zc序列进行简单的帧同步
  4. 智芯传感硅微加速度传感器在汽车安全碰撞测试中的产品应用
  5. 0基础学数据分析 那些黑客常用的网址
  6. 黑帽SEO是什么?做了真的能够一直保持排名?
  7. Cocos-2dx台球游戏实现
  8. 关于canvas的里fillText文字居中和画布清空重画内容
  9. 状态-特质焦虑量表(STAI)
  10. 玩转Ubuntu零基础教程,让你成为Ubuntu高手。