SparkRDD案例:词频统计

一、提出任务

单词计数是学习分布式计算的入门程序,有很多种实现方式,例如MapReduce;使用Spark提供的RDD算子可以更加轻松地实现单词计数。
在IntelliJ IDEA中新建Maven管理的Spark项目,并在该项目中使用Scala语言编写Spark的WordCount程序,最后将项目打包提交到Spark集群(Standalone模式)中运行。
预备工作:启动集群的HDFS与Spark
在这里插入图片描述
HDFS上的单词文件-word.txt
在这里插入图片描述

二、完成任务

(一)新建Maven项目,基于JDK1.8

在这里插入图片描述
设置信息(项目名称、保存位置、组编号以及项目编号)
在这里插入图片描述
单击[finish]按钮
在这里插入图片描述
将Java目录改为Scala目录
在这里插入图片描述

(二)添加相关依赖和构建插件

由于源程序目录改成了scala,在元素里必须添加子元素,指定目录src/main/scala
在这里插入图片描述

(三)创建日志属性文件

在这里插入图片描述

(四)创建词频 统计单例对象

在这里插入图片描述

(五)本地运行程序,查看结果

查看HDFS上的结果文件内容
在这里插入图片描述
创建文本文件-word.txt
在这里插入图片描述
上传到HDFS的/input目录
在这里插入图片描述
给程序设置命令行参数(注意两个参数之间必须有空格)
在这里插入图片描述
查看HDFS上的结果文件内容
在这里插入图片描述

(六)对于程序代码进行解析

(七)将spark项目编译和打包

(八)将词频统计应用上传到虚拟机

在这里插入图片描述

将SparkRDDWordCount-1.0-SNAPSHOT.jar上传到master虚拟机/app目录
在这里插入图片描述

(九在集群上执行词频统计应用)

1、提交应用程序到集群中运行

(1)不带参数运行程序

在这里插入图片描述
原因是Maven项目里依赖的Scala版本问题

在这里插入图片描述
在pom.xml文件里修改Scala依赖的版本以及Spark依赖的版本
在这里插入图片描述
查看到输出结果
在这里插入图片描述
还可以查看HDFS的结果文件
在这里插入图片描述

(2)带参数运行程序

执行命令:spark-submit --master saprk://master:7077 --class net.py.rdd.WordCountSparkRDDWordCount-1.0-SNAPSHOT.jar hdfs://master:9000/imput/word.txt hdfs://master:9000/word_result

查看输出结果
还可以查看HDFS上的结果文件
在这里插入图片描述

2、命令参数解析

-master:Spark Master节点的访问路径。由于在WordCount程序中已经通过setMaster()方法指定了该路径,因此该参数可以省略。
-class:SparkWordCount程序主类的访问全路径(包名.类名)。

3、Spark WebUI界面查看应用程序信息

应用程序运行的过程中,可以访问Spark的WebUIhttp://master:8080/,查看正在运行的应用程序的状态信息(也可以查看已经完成的应用程序)

猜你喜欢

转载自blog.csdn.net/py20010218/article/details/125302841