大数据E10:基于Spark和Scala编程解决一些基本的数据处理和统计分析,去重、排序等

实验10:Spark基础编程2

  • 实验目的
  1. 通过实验掌握基Scala的Spark编程方法;
  2. 掌握基于Spark和Scala编程解决一些基本的数据处理和统计分析,去重、排序等;
  • 实验要求
  1. 掌握Spark基于Scala编写应用程序的方法;
  2. 完成下面的实验内容,实现数据信息的处理分析;
  • 实验平台
  1. 操作系统:Linux(建议Ubuntu16.04或者CentOS 7 以上);
  2. Spark版本:2.4.0;
  3. Maven:3.6.3;
  4. JDK版本:1.8;
  5. Java IDE:Eclipse。
  • 实验内容、结果及分析(直接在题目后面列出实验过程、结果以及分析)

启动IntelliJ Idea并创建spark项目,导入spark的jar包到项目

  1. WordCount
  1. 在本地创建一个文本文件以**"学号sparktest** . txt" 命名,向其中各输入一个长篇英语文章,将其上传至hadoop中的分布式文件系统中**/input** / 学号文件夹中;
  1. 编写基于Spark的WordCount scala应用程序,进行单词统计并按照单词频数由大到小输出统计结果(sortBy操作,代码以截图方式呈现并标注重点代码);

2.1将22111303195shakestest.txt拷贝到项目的resources目录下。

2.2编写spark代码:

2.3 运行测试输出:

(1)打印单词统计结果:

  1. 打印单词总数:
  1. 编写pom文件;
  1. 打包应用程序并列出打包结果;

4.1部署分布式Spark应用程序

在生产环境中,Spark通常会处理存储在HDFS等分布式文件系统中的数据。Spark通常也以集群模式运行。

修改源代码如下:

打包文件

执行作业:

使用spark-submit运行我们的代码。我们需要指定主类、要运行的jar和运行模式(集群),且主机名为instance-00000868执行:

此时遇到问题:

检查:

确保端口监听:在 IP 地址 172.17.0.2 上的 7077 端口正在被监听。

解决以上问题后重新执行命令出现新问题:

解决以上问题后,运行

出现报错:

检查:

  1. 检查 Spark Master 状态:

检查结果:Spark Master 服务正在运行,并且监听在正确的端口上。

2、检查端口占用

使用 netstat 命令检查端口占用:

检查结果:端口 9000 没有被其他服务占用。

  1. 运行Word Count程序(包含Scala代码运行成功截图)
  1. 修改2)中的程序,使得单词统计按照单词出现的次数降序排序,输出统计结果(代码以截图方式呈现并标注重点代码,并附上成功运行结果截图);

运行结果:

  1. 成绩统计

每个输入文件表示班级学生某个学科的成绩,每行内容由两个字段组成,第一个是学生名字,第二个是学生的成绩;输入文件样例如下,供参考。

Algorithm.txt:

Xiaoming 92

Xiaohong 87

Xiaoxin 82

Xiaoli 90

Database.txt:

Xiaoming 95

Xiaohong 81

Xiaoxin 89

Xiaoli 85

Python.txt:

Xiaoming 82

Xiaohong 83

Xiaoxin 94

Xiaoli 91

  1. 新建三个成绩文件,并输入对应的成绩数据,将三个成绩文件上传至HDFS中**/input** / 学号文件夹中;

1.1在本地data/dataset创建文件:

1.2上传导hdfs中input/22111303195/目录,并查看:

  1. 编写 Spark Scala 独立应用程序求出所有学生以及平均成绩信息,并根据成绩降序输出统计结果,最后将统计结果存储在HDFS的**/output** / 学号 文件夹中(代码以截图方式呈现并标注重点代码,下面代码供参考使用);

本地运行输出:

  1. 打包运行程序,并列出运行结果;
  • 实验小结(问题和收获)

学习曲线:最初对 Spark 的分布式计算模型和编程模型不太熟悉,但通过实验逐渐理解了其工作原理。问题解决:在实验过程中遇到了连接和配置问题,通过查阅文档和社区支持得以解决,增强了解决问题的能力。性能优势:体会到了 Spark 在处理大规模数据时的性能优势,尤其是在分布式环境中。工具掌握:通过实验,熟悉了 spark-submit 命令的使用,以及如何在集群模式下运行 Spark 应用程序。

相关推荐
计算机编程-吉哥4 小时前
大数据毕业设计-基于大数据的NBA美国职业篮球联赛数据分析可视化系统(高分计算机毕业设计选题·定制开发·真正大数据·机器学习毕业设计)
大数据·毕业设计·计算机毕业设计选题·机器学习毕业设计·大数据毕业设计·大数据毕业设计选题推荐·大数据毕设项目
计算机编程-吉哥4 小时前
大数据毕业设计-基于大数据的BOSS直聘岗位招聘数据可视化分析系统(高分计算机毕业设计选题·定制开发·真正大数据·机器学习毕业设计)
大数据·毕业设计·计算机毕业设计选题·机器学习毕业设计·大数据毕业设计·大数据毕业设计选题推荐·大数据毕设项目
RunningShare6 小时前
从“国庆景区人山人海”看大数据处理中的“数据倾斜”难题
大数据·flink
Hello.Reader7 小时前
Flink 执行模式在 STREAMING 与 BATCH 之间做出正确选择
大数据·flink·batch
文火冰糖的硅基工坊9 小时前
《投资-99》价值投资者的认知升级与交易规则重构 - 什么是周期性股票?有哪些周期性股票?不同周期性股票的周期多少?周期性股票的买入和卖出的特点?
大数据·人工智能·重构·架构·投资·投机
Elastic 中国社区官方博客9 小时前
Elasticsearch:使用推理端点及语义搜索演示
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
数据智能老司机10 小时前
数据工程设计模式——冷热数据存储
大数据·设计模式·架构
Hello.Reader13 小时前
Flink 连接器与格式thin/uber 制品、打包策略与上线清单
大数据·flink
隐语SecretFlow13 小时前
【隐私计算科普】如何实现可证明安全?
大数据·开源·边缘计算
lisw0514 小时前
AIoT(人工智能物联网):融合范式下的技术演进、系统架构与产业变革
大数据·人工智能·物联网·机器学习·软件工程