零、本讲学习目标
- 掌握本地模式执行Spark程序
- 掌握集群模式执行Spark程序
一、词频统计准备工作
- 单词计数是学习分布式计算的入门程序,有很多种实现方式,例如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
log4j.rootLogger=ERROR, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.Pa