栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

文章目录
    • 1 版本说明
    • 2 IDEA 开发环境
      • 2.1 创建 Maven 工程
      • 2.2 配置 Scala 环境
      • 2.3 配置 Spark 环境
    • 3 Spark 实现 WordCount 单词统计
      • 3.1 方式一
      • 3.2 方式二
      • 3.3 方式三

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,引入依赖、插件:


    
        org.apache.spark
        spark-core_2.12
        3.0.0
    



    
        
        
            net.alchim31.maven
            scala-maven-plugin
            3.2.2
            
                
                    
                    
                        testCompile
                    
                
            
        
        
            org.apache.maven.plugins
            maven-assembly-plugin
            3.1.0
            
                
                    jar-with-dependencies
                
            
            
                
                    make-assembly
                    package
                    
                        single
                    
                
            
        
    

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 方式三


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/937478.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号