【大数据开发 Spark】第二篇:搭建 Spark 开发环境、 Spark 实现 WordCount 单词统计

1 版本说明

  • Spark:3.0.0
  • JDK:1.8
  • Scala:2.12.11

2 IDEA 开发环境

2.1 创建 Maven 工程

创建 Maven 聚合工程,方便之后学习 Spark 时,分模块创建多个子工程,更清晰。

2.2 配置 Scala 环境

在项目结构中导入 Scala 开发包,可以在 IDEA 中在线下载。

在这里插入图片描述

测试一下 Scala 环境是否已经配置进来,写一个 Object 静态类来测试一下,发现是可以正常输出的。

在这里插入图片描述

2.3 配置 Spark 环境

配置 pom.xml,引入依赖、插件:

<dependencies>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.12</artifactId>
        <version>3.0.0</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <!-- 该插件用于将 Scala 代码编译成 class 文件 -->
        <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>scala-maven-plugin</artifactId>
            <version>3.2.2</version>
            <executions>
                <execution>
                    <!-- 声明绑定到 maven 的 compile 阶段 -->
                    <goals>
                        <goal>testCompile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.1.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>

3 Spark 实现 WordCount 单词统计

3.1 方式一

如下图所示,先拆分出一个个单词,再按类分组,再统计出每类中单词个数。

在这里插入图片描述

编写测试数据

在这里插入图片描述

Hello World
Hello World
Hello Spark
Hello Spark

代码部分:

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

虽然当前这个程序运行没什么问题,但是一大堆爆红看着难受,这里可以自定义一下 log 日志配置

在这里插入图片描述

log4j.rootCategory=ERROR, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd 
HH:mm:ss} %p %c{1}: %m%n
# Set the default spark-shell log level to ERROR. When running the spark-shell,
the
# log level for this class is used to overwrite the root logger's log level, so
that
# the user can have different defaults for the shell and regular Spark apps.
log4j.logger.org.apache.spark.repl.Main=ERROR
# Settings to quiet third party logs that are too verbose
log4j.logger.org.spark_project.jetty=ERROR
log4j.logger.org.spark_project.jetty.util.component.AbstractLifeCycle=ERROR
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=ERROR
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=ERROR
log4j.logger.org.apache.parquet=ERROR
log4j.logger.parquet=ERROR
# SPARK-9183: Settings to avoid annoying messages when looking up nonexistent
UDFs in SparkSQL with Hive support
log4j.logger.org.apache.hadoop.hive.metastore.RetryingHMSHandler=FATAL
log4j.logger.org.apache.hadoop.hive.ql.exec.FunctionRegistry=ERROR

然后再配置一下 Hadoop 的环境变量就可以了
在这里插入图片描述

再次运行,结果就很清晰了
在这里插入图片描述

3.2 方式二

如下图所示,先拆分出一个个单词,并携带数量1,再按类聚合相加数量值

在这里插入图片描述
测试数据还是和上面一样

代码部分:
在这里插入图片描述在这里插入图片描述

还需要再配一次当前应用程序的参数环境变量

在这里插入图片描述

3.3 方式三

在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Spark开发环境搭建: 1. 安装Java环境:Spark运行需要Java环境,可以从Oracle官网下载JDK并安装。 2. 下载Spark:从Spark官网下载Spark安装包,解压到本地目录。 3. 配置环境变量:将Spark的bin目录添加到系统环境变量中。 4. 启动Spark:在终端中输入spark-shell命令,启动SparkWordCount案例: 1. 准备数据:将需要统计的文本文件放在本地或HDFS上。 2. 编写代码:使用Scala或Java编写WordCount程序,读取文本文件并进行单词计数。 3. 打包程序:将程序打包成jar包,以便在Spark上运行。 4. 提交任务:使用spark-submit命令提交任务,指定jar包和输入输出路径。 5. 查看结果:任务执行完成后,查看输出路径中生成的结果文件,即为单词计数结果。 ### 回答2: Spark是一个流行的分布式计算框架,可以为海量数据提供快速、高效的处理能力。要进行Spark开发,需要先搭建好相应的开发环境。在这里,我们以wordcount案例为例,介绍如何搭建Spark开发环境。 1.安装Java环境 Spark需要Java环境的支持,因此需要在计算机上安装Java环境。可以去Java官网下载相应版本的JDK安装包,然后按照提示安装即可。 2.安装SparkSpark官网上下载最新版本的Spark,并解压到指定目录。接着,需要根据实际需求进行一些配置,比如配置环境变量等。 3.写wordcount程序 这里我们以Scala语言为例,写出一个简单的wordcount程序。代码如下: ``` import org.apache.spark.{SparkConf, SparkContext} object WordCount { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("WordCount").setMaster("local") val sc = new SparkContext(conf) val input = sc.textFile("input.txt") val words = input.flatMap(line => line.split(" ")) val counts = words.map(word => (word, 1)).reduceByKey(_ + _) counts.collect().foreach(println) } } ``` 该程序功能是读取指定文件,统计文件中每个单词的出现次数,并输出到控制台上。 4.执行wordcount程序 在完成wordcount程序的编写后,可以运行Spark系统来测试该程序的执行效果。运行命令如下: ``` ./bin/spark-submit --class WordCount --master local WordCount.jar ``` 其中WordCount程序的主类名,--master local指定Spark程序运行在本地模式下,WordCount.jar是程序打包后的jar包文件。如果一切正常,此时程序就会开始执行,输出每个单词的出现次数。 到此为止,Spark开发环境搭建wordcount案例的实现就完成了。在实际的开发工作中,还需要根据具体需求加以完善和优化,提高Spark的效率和稳定性。 ### 回答3: Spark是一个分布式计算引擎,可以处理大规模的数据集。在这篇文章中,我们将介绍如何在Windows系统上搭建Spark开发环境,并使用Spark编写一个Word Count案例。 1.下载并安装Java JDK 首先,你需要下载并安装Java JDK。你可以在Oracle网站上下载最新版本的Java JDK。 2.下载并安装Spark 接下来,你需要从Spark官网上下载最新版本的Spark并解压缩它。你可以下载带有预构建“binaries”的版本,并且不需要对Spark进行任何重新编译。 3.配置环境变量 接下来,你需要配置环境变量,以便在系统中设置SPARK_HOME和Path。要设置这些变量,你需要按照以下步骤进行操作: 1)右键单击“此电脑”,然后单击“属性”。 2)单击“高级系统设置”。 3)单击“环境变量”。 4)在“系统变量”下,单击“新建”。 5)在“变量名”中输入SPARK_HOME,在“变量值”中输入Spark的安装路径。 6)在“系统变量”中找到Path,单击“编辑”。 7)在路径的末尾添加%SPARK_HOME%\bin。 8)单击“确定”以保存更改。 4.编写Word Count案例 接下来,你可以开始编写你的Word Count案例。Word Count案例是Spark开发中的最经典的案例之一,其任务是统计给定文本中每个单词出现的次数。 Spark使用Scala编写,因此你需要了解Scala语言的基础知识。以下是一个简单的Word Count案例: ``` import org.apache.spark.SparkConf import org.apache.spark.SparkContext object WordCount { def main(args: Array[String]) { val conf = new SparkConf().setAppName("Word Count").setMaster("local") val sc = new SparkContext(conf) val textFile = sc.textFile("input.txt") val counts = textFile.flatMap(line => line.split(" ")) .map(word => (word, 1)) .reduceByKey(_ + _) counts.saveAsTextFile("output.txt") sc.stop() } } ``` 在这个程序中,我们首先创建了一个SparkConf对象和SparkContext对象。接下来,我们使用SparkContext来读取输入文件,然后使用flatMap()函数将每行文本拆分成单词。之后,我们使用map()函数将每个单词的出现次数设置为1,接着使用reduceByKey()函数将每个单词的次数相加。最后,我们将计数结果保存到输出文件中。 5.运行Word Count案例 在本地模式下,你可以使用以下命令行来运行Word Count案例: ``` $SPARK_HOME/bin/spark-submit \ --class WordCount \ --master local[*] \ target/scala-2.11/word-count_2.11-1.0.jar input.txt output.txt ``` 在这个命令中,我们指定了Spark应用程序的名称为Word Count,并将启动模式设置为local。我们还指定了输入和输出文件的路径。 总结 在本文中,我们介绍了Spark开发环境搭建Word Count案例的编写和运行。使用Spark进行大规模数据处理可提高处理效率和质量,并且易于扩展和部署。Spark的适用范围非常广泛,可以用于各种领域的大数据处理,如金融、医疗等。希望本文能帮助你在开发中更好地利用Spark

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超周到的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值