SPark学习笔记:02-SPark简单应用WordCount
文章目录
- 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相关推荐
- Spark学习笔记(8)---Spark Streaming学习笔记
Spark Streaming学习笔记 同Spark SQL一样,Spark Streaming学习也是放在了github https://github.com/yangtong123/RoadOfS ...
- Spark学习笔记(7)---Spark SQL学习笔记
Spark SQL学习笔记 Spark SQL学习笔记设计到很多代码操作,所以就放在github, https://github.com/yangtong123/RoadOfStudySpark/bl ...
- Spark学习笔记1——第一个Spark程序:单词数统计
Spark学习笔记1--第一个Spark程序:单词数统计 笔记摘抄自 [美] Holden Karau 等著的<Spark快速大数据分析> 添加依赖 通过 Maven 添加 Spark-c ...
- Spark学习笔记[1]-scala环境安装与基本语法
Spark学习笔记[1]-scala环境安装与基本语法 正所谓工欲善其事必先利其器,Spark的开发语言不是java而是scala,虽然都是运行于JVM,但是两门语言的基本特性还是有些不一样,这里 ...
- 尚硅谷大数据技术Spark教程-笔记02【SparkCore(核心编程,map、mapPartitions、mapPartitionsWithIndex、flatMap、glom、groupBy)】
视频地址:尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01[Spark(概述.快速上手.运行环境.运行架构)] 尚硅谷大数据技术Spark教 ...
- spark 学习笔记
spark 学习笔记 spark介绍 Spark是是一种快速通用的集群计算系统,它的主要特点是能够在内存中进行计算.它包含了 spark 核心组件 spark-core,用于 SQL 和结构化处理数据 ...
- JavaWeb-综合案例(用户信息)-学习笔记02【登录功能】
Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb-综合案例(用户信息)-学习笔记01[列表查询] JavaWeb-综合案例(用户信息)-学习笔记02[登录功能] JavaWeb-综合案 ...
- JavaScript学习笔记02【基础——对象(Function、Array、Date、Math)】
w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...
- RN学习笔记02:利用WebStorm创建RN项目
RN学习笔记02:利用WebStorm创建RN项目 在RN学习笔记01里,安装了node.js与react-native-cli,而且配置了环境变量. 在命令行环境,利用react-native in ...
最新文章
- CentOS安装setup
- 自动化测试之iframe窗口的切换
- Promise.all捕获错误
- cvtcolor python opencv_蔡徐坤教你用OpenCV实现素描效果
- oracle11g中的join,sql - 使用Oracle 11g中的+符号进行左外连接
- 关于机器学习,这里有一份权威入门指南
- 在机器学习中,ground truth是什么意思?
- python模块:网络协议和支持
- 最好用的HDR图像处理器——Photomatix Pro新功能介绍及使用教程
- BN层和Dropout层
- Workbench中直接调用ICEM CFD进行网格划分
- 四川师范大学自然地理(1-地球)90分以上版本
- H5架设新手小白搭建教程(适用于新手)
- Object Detection经典代码与文章
- Java中hashcode和equals详解
- Linux 您未安装Flash Player 或者版本过低
- 测试中缺陷的管理流程
- 最简单的太阳能光伏发电系统
- [附源码]Python计算机毕业设计毕业设计管理系统
- 计算机课程作品观摩,计算机观摩教学活动心得体会(共7篇)