大数据技术原理-spark的安装

news2024/12/26 0:26:19

摘要

本实验报告详细记录了在"大数据技术原理"课程中进行的Spark安装与应用实验。实验环境包括Spark、Hadoop和Java。实验内容涵盖了Spark的安装、配置、启动,以及使用Spark进行基本的数据操作,如读取本地文件、文件内容计数、模式匹配和行数统计。此外,实验还包括了对HDFS文件的读取和操作,以及使用Spark实现的词频统计程序。

在实验过程中,使用Scala和Java两种不同的编程语言来编写Spark应用程序,并熟悉了使用sbt和Maven工具进行程序的打包和部署。实验中遇到的问题包括程序打包、路径判断和依赖包下载等,这些问题都通过相应的解决方案得到了解决。

实验总结指出,Spark不仅继承了Hadoop MapReduce的优点,还通过将中间结果存储在内存中,避免了频繁的磁盘I/O操作,从而显著提高了数据处理速度。与Hadoop相比,Spark在批处理和内存数据分析方面展现出了更快的速度和更高的性能。

关键词:Spark;Hadoop;大数据;Java;数据处理

一.实验环境:

  1. spark
  2. hadoop
  3. java

二.实验内容与完成情况:

1.安装spark:

2.配置相关的文件:

3.启动spark

4.读取本地文件

获得文件第一行内容:

5.文件内容计数:

6.获得含有spark的行,同时返回新的一个RDD:

7.统计这个新的RDD的行数:

8.读取hdfs文件,这里首先要启动hadoop:

9.读取文件:

10.使用cat命令获取文件内容:

11.切换spark编写语句打印hdfs文件中的第一行内容:

12.使用本地的文件实现词频统计程序

打开文件:

13.遍历文件中的内容,对每个单词进行切分归类:

14.使用键值对的方式对出现的单词进行计数:

15.使用scala编写Spark程序

创建一个文件夹:

16.压缩文件,将文件移动到新建好的文件夹下:

17.创建一个脚本文件,用于启动sbt:

18.增加权限:

19.查看sbt版本信息:

20.执行命令创建文件夹作为根目录:

21.使用sbt打包scala应用程序

创建编译文件实现程序编写:

22.将整个应用程序打包成为JAR:

23.得到结果:

24.使用java编写Spark程序,熟悉maven打包过程

下载maven:

25.编写java程序:

26.使用vim在对应目录下建立xml文件:

27.maven打包java程序

检查文件结构:

28.将整个程序打包成为jar:

29.通过spark-submit运行程序:

30.查看结果:

三.出现的问题及解决方案:

1.编写程序的时候,需要使用到maven进行程序的打包。

2.进行打包的时候需要对路径进行判断,防止路径错误导致的数据文件的丢失。

3.在进行打包的时候需要进行等待软件包下载好,否则再次进行打包的时候会产生数据的流失。

四.总结:

(1)Hadoop的框架最核心的设计就是:HDFS 和 Map Reduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

(2)Spark 拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS

(3)Hadoop是磁盘级计算,计算时需要在磁盘中读取数据;其采用的是MapReduce的逻辑,把数据进行切片计算用这种方式来处理大量的离线数据.

(4)Spark,它会在内存中以接近“实时”的时间完成所有的数据分析。Spark的批处理速度比MapReduce快近10倍,内存中的数据分析速度则快近100倍。

可以判断Spark的速度会比Hadoop更快,Spark的性能更好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1983135.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【未授权访问漏洞复现~~~】

一: Redis未授权访问漏洞 步骤一:进入vulhub目录使用以下命令启动靶机… 进入目录:cd /vulhub-master/redis/4-unacc 启动:docker-compose up-d 检查:docker-compose ps步骤二:在Kali上安装redis程序进行服务的链接. #安装redis apt-get install redis #redis链接 redis-cli…

【Linux进程篇】并发艺术:Linux条件变量与生产消费者模型的完美融合

W...Y的主页 😊 代码仓库分享💕 前言:我们上篇博客中提到了线程互斥、引出了互斥锁解决了线程中的未将临界资源保护的问题。但是随之出来的问题——竞争锁是自由竞争的,竞争锁的能力太强的线程会导致其他线程抢不到票&#xff0…

Linux——线程互斥与同步

一、线程互斥 1.1 线程间互斥的概念 在学习管道的时候,管道是自带同步与互斥的。而在线程中,当多个线程没有加锁的情况下同时访问临界资源时会发生混乱。在举例之前,先了解几个概念。 临界资源:多个线程执行流共享的资源叫做临…

软甲测试定义和分类

软件测试定义 使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验他是否满足规定的需求或弄清预期结果与实际结果之间的差别 软件测试目的 为了发现程序存在的代码或业务逻辑错误 – 第一优先级发现错误为了检验产品是否符合用户需求 – 跟用户要求实…

WPF学习(3)- WrapPanel控件(瀑布流布局)+DockPanel控件(停靠布局)

WrapPanel控件(瀑布流布局) WrapPanel控件表示将其子控件从左到右的顺序排列,如果第一行显示不了,则自动换至第二行,继续显示剩余的子控件。我们来看看它的结构定义: public class WrapPanel : Panel {pub…

【网页设计】基于HTML+CSS上海旅游网站网页作业制作

一、👨‍🎓网站题目 旅游,当地特色,历史文化,特色小吃等网站的设计与制作。 二、✍️网站描述 👨‍🎓静态网站的编写主要是用HTML DIVCSS 等来完成页面的排版设计👩‍&#x1f39…

CSP初赛知识点讲解(一)

CSP初赛知识点讲解(一) 信息学竞赛哈夫曼树 哈夫曼编码冯.诺依曼理论计算机奖项例题训练(一)操作系统例题训练(二)计算机语言例题训练(三) 信息学竞赛 全国青少年计算机程序设计竞赛…

VINS-Fusion 多传感器全局位姿估计的一种通用优化框架

摘要 对于自动导航的机器人来说,精确的状态估计是基本问题。为了实现局部精确和全局无漂移的位姿估计,通常将具有互补属性的多个传感器进行融合。在一个小的区域内,局部传感器,如相机、IMU、Lidar等,提供了精确的位姿,而在一个大场景环境下,全局传感器,如gps、magneto…

java 变量及其常量

变量 数据类型关键字内存占用取值范围字节型byte1个字节-128 至 127 定义byte变量时超出范围,废了短整型short2个字节-32768 至 32767整型int(默认)4个字节-231 至 231-1 正负21个亿-2147483648——2147483647长整型long8个字节-263 至 263-1 19位数字-9…

【51单片机DS1302时钟芯片读取数码管显示打造小成本高品质】2022-12-23

缘由https://ask.csdn.net/questions/7867303 /*写回复缘由https://ask.csdn.net/questions/7867303*/ #include "reg52.h" sbit RSTP3^5;//DS1302允许(读/写)当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中…

不用PS也能抠图?点哪抠哪,简直是职场人的最强助手

抠图你还在用 PS 一点点抠吗? 不仅费时费力,还常常达不到理想效果,真的太让人崩溃了 但别担心,我找到了一个超棒的工具——千鹿设计助手的AI智能抠图插件。它就像你的私人设计小助手,能快速帮你把想要的元素抠出来&…

Mendix 创客访谈录|Mendix 如何化解工业企业数字化转型的复杂性

本期创客 田月萍 西门子 Advanta研发部门 大家好,我是田月萍,来自西门子Advanta的研发部门,专注于工业数字化转型。在我的职业生涯中,参与了多个关键项目的开发,涵盖了制造执行系统(MES)的实施&…

ECMA6Script学习笔记(六)

【摘要】 本文是对自己学习ES6的学习笔记回顾,后面是概要:文章深入探讨了ES6模块化处理,强调模块化在提高代码可维护性、可复用性和可扩展性方面的重要性。介绍了ES6模块化的三种导出方式:分别导出、统一导出和默认导出,并通过具体的代码示例…

3.特征工程-特征抽取、特征预处理、特征降维

文章目录 环境配置(必看)头文件引用1.数据集: sklearn代码运行结果 2.字典特征抽取: DictVectorizer代码运行结果稀疏矩阵 3.文本特征抽取(英文文本): CountVectorizer()代码运行结果 4.中文文本分词(中文文本特征抽取使用)代码运行结果 5.中文文本特征抽…

一款功能强大且免费的Windows系统优化工具

TweakPower是一款功能强大的Windows系统优化工具,旨在帮助用户提升电脑性能、清理垃圾文件、备份数据以及修复系统问题。该软件提供了多种实用功能,包括内存管理、垃圾清理、数据备份、数据擦除、硬盘维护和性能调度调整等。 TweakPower的主要界面或仪表…

如意玲珑支持发行版再添新成员,openEuler安装使用如意玲珑操作指南

查看原文 如意玲珑(Linyaps)项目已与开放原子开源基金会完成捐赠协议签署,目前如意玲珑已成为基金会的正式孵化期项目。 如意玲珑是开源软件包格式,用于替代 deb、rpm等包管理工具,实现应用包管理、分发、容器、集成开…

数据产品价值评估体系搭建

00前言 随着数据在企业的重要性越来越高,数据赋予的价值和意义在企业内部也深入人心,不仅纳入到了企业战略中去,在日常的工作中,各个业务部门也会不断的提出五花八门的数据需求(数据分析、数据治理、数据应用等等&…

qt-01安装

qt5.15安装 版本链接5.15Qt5.15.2镜像QTCreater Launching Debugger 错误 版本链接5.15 https://download.qt.io/archive/online_installers/4.5/ Qt5.15.2镜像 https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/windows_x86/desktop/qt5_5152/ https://m…

插入数据优化 ---大批量数据插入建议使用load

一.insert优化 1.批量插入 2.手动提交事务 3.主键顺序插入 二.大批量插入数据 如果一次性需要插入大批量数据,使用insert语句插入性能较低,此时可以使用MySQL数据库提供的load指令进行插入。操作如下 1.客户端连接服务端时,加入参数 --local-infine mysql --local-infine…

AllReduce通信库;Reduce+LayerNorm+Broadcast 算子;LayerNorm(层归一化)和Broadcast(广播)操作;

目录 AllReduce通信库 一、定义与作用 二、常见AllReduce通信库 三、AllReduce通信算法 四、总结 Reduce+LayerNorm+Broadcast 算子 1. Reduce 算子 2. LayerNorm 算子 3. Broadcast 算子 组合作用 LayerNorm(层归一化)和Broadcast(广播)操作 提出的创新方案解析 优点与潜在…