一、词频统计准备工作
单词计数是学习分布式计算的入门程序,有很多种实现方式,例如MapReduce;使用Spark提供的RDD算子可以更加轻松地实现单词计数。
在IntelliJ IDEA中新建Maven管理的Spark项目,并在该项目中使用Scala语言编写Spark的WordCount程序,最后将项目打包提交到Spark集群(Standalone模式)中运行。
(一)创建本地单词文件
在D:\spark_work\wordcount\input里创建单词文件words.txt
(二)启动集群的HDFS与Spark
启动HDFS服务
- 启动Spark集群
二)在HDFS上准备单词文件
- 在虚拟机上创建单词文件 -
words.txt
- 将单词文件上传到HDFS指定目录
/wordcount/input
二、本地模式执行Spark程序
(一)新建Maven项目
-
新建Maven项目,基于JDK11
- 设置项目信息(项目名称、保存位置、组编号以及产品编号)
- 单击【Finish】按钮
- 将
java
目录改成scala
目录
二)添加相关依赖和构建插件
在pom.xml文件里添加依赖与Maven构建插件
由于源程序目录改成了scala,在<build>元素里必须添加子元素<sourceDirectory>,指定目录src/main/scala
(三)创建日志属性文件
在resources目录里创建日志属性文件 - log4j.properties
四)添加Scala SDK
-
安装配置Scala 2.12.15
- 在项目结构窗口的
Global Libraries
里添加Scala 2.12.15
五)创建词频统计单例对象
- 创建
net.huawei.rdd
包,然后在包里创建WordCount
单例对象
六)本地运行程序,查看结果
- 首先看控制台输出结果
后查看HDFS上的结果文件内容
显示结果文件内容
有两个结果文件,我们可以分别查看其内容
再次运行程序,会报错说输出目录已经存在
-执行命令: hdfs dfs -rm -r /wordcount/output,删除输出目录
再次运行,查看结果