大数据应用——spark实验

news2024/12/25 9:01:23

 


 

任务一:比较Spark和hadoop的区别

Spark和Hadoop都是用于分布式计算的框架,但两者有以下区别:

1、处理方式不同。Hadoop是基于MapReduce的,而Spark则是基于内存的分布式计算框架。

2、处理速度不同。因为Hadoop是磁盘读写密集型应用,数据处理速度较慢。而Spark则是内存计算型应用,数据处理速度更快。

3、应用场景不同。Hadoop适合于离线数据处理,比如批处理等操作。而Spark则适合于需要实时数据处理,如流处理和机器学习等应用。

4、API支持不同。Hadoop主要提供HDFS和MapReduce API。而Spark则提供了更丰富的API接口,包括Spark SQL、Spark Streaming、MLlib、GraphX等。

5、部署和维护不同。Hadoop的维护比较复杂,需要设置Hadoop集群,配置HDFS和MapReduce等。而Spark则比较简单,只需安装Spark和管理几个参数即可。

综上所述, Spark相较于Hadoop更快、支持更多的API,适合于数据实时处理和机器学习等场景。而Hadoop更适合于大规模数据离线处理。

Hadoop MapReduce 由于其设计初衷并不是为了满足循环迭代式数据流处理,因此在多并行运行的数据可复用场景(如:机器学习、图挖掘算法、交互式数据挖掘算法)中存在诸多计算效率等问题。所以 Spark 应运而生,Spark 就是在传统的 MapReduce 计算框架的基础上,利用其计算过程的优化,从而大大加快了数据分析、挖掘的运行和读写速度,并将计算单元缩小到更适合并行计算和重复使用的 RDD 计算模型。

机器学习中 ALS、凸优化梯度下降等。这些都需要基于数据集或者数据集的衍生数据反复查询反复操作。MR 这种模式不太合适,即使多 MR 串行处理,性能和时间也是一个问题。数据的共享依赖于磁盘。另外一种是交互式数据挖掘,MR 显然不擅长。而Spark 所基于的 scala 语言恰恰擅长函数的处理。

Spark 是一个分布式数据快速分析项目。它的核心技术是弹性分布式数据集(Resilient Distributed Datasets),提供了比 MapReduce 丰富的模型,可以快速在内存中对数据集进行多次迭代,来支持复杂的数据挖掘算法和图形计算算法。

Spark 和Hadoop 的根本差异是多个作业之间的数据通信问题 : Spark 多个作业之间数据通信是基于内存,而 Hadoop 是基于磁盘。

Spark Task 的启动时间快。Spark 采用 fork 线程的方式,而 Hadoop 采用创建新的进程的方式。

Spark 只有在 shuffle 的时候将数据写入磁盘,而 Hadoop 中多个 MR 作业之间的数据交互都要依赖于磁盘交互。

Spark 的缓存机制比 HDFS 的缓存机制高效。

经过上面的比较,我们可以看出在绝大多数的数据计算场景中,Spark 确实会比 MapReduce 更有优势。但是 Spark 是基于内存的,所以在实际的生产环境中,由于内存的限制,可能会由于内存资源不够导致 Job 执行失败,此时,MapReduce 其实是一个更好的选择,所以 Spark并不能完全替代 MR。

任务二:完成Spark的三种部署方式,并简述其应用场景

    1. Local模式
  1.  解压缩文件
  2. 启动Local环境

启动成功后,可以输入网址进行Web UI监控页面访问

  1. 命令行工具

在解压缩文件夹下的data目录中,添加word.txt文件。

  1. 退出本地模式

按键Ctrl+C或输入Scala指令

:quit

    1. Standalone模式

集群规划

表 2

hadoop101

hadoop102

hadoop103

Spark

Worker Master

Worker

Worker

  1. 解压缩文件
  2. 修改配置文件
  1. 进入解压缩后路径的conf目录,修改slaves.template文件名为slaves
  2. 修改slaves,添加work节点

  1. 修改spark-env.sh文件,添加JAVA_HOME环境变量和集群对应的master节点

注意:7077 端口,相当于 hadoop3 内部通信的 8020 端口,此处的端口需要确认自己的 Hadoop配置

  1. 分发spark-standalone目录

  1. 启动集群
  1. 执行脚本命令

[hadoop@hadoop101 spark-standalone]$ sbin/start-all.sh

  1. 查看三台服务器运行进程

  1. 查看Master资源监控Web UI界面:

http:hadoop101:8080

  1. 配置历史服务
  1. 修改spark-defaults.conf,配置日志存储路径

注意:需要启动 hadoop 集群,HDFS 上的 directory 目录需要提前存在。

  1. 修改spark-env.sh文件,添加日志配置

  1. 分发配置文件

  1. 重新启动集群和历史服务

  1. 查看历史服务:http:hadoop101:18080

  1. 配置高可用

Zookeeper设置

集群规划

表 3

hadoop101

Hadoop102

Hadoop103

Spark

Master

Zookeeper

Worker

Master

Zookeeper

Worker

Zookeeper

Worker

  1. 停止集群

[hadoop@hadoop101 spark-standalone]$ sbin/stop-all.sh

  1. 启动Zookeeper

  1. 修改spark-env.sh文件

  1. 分发配置文件

  1. 启动集群

  1. 启动hadoop102的单独Master节点,此时hadoop102节点Master处于备用状态

    1. Yarn模式
  1. 解压缩文件
  2. 修改配置文件
  1. 修改yarn-site.xml,并分发

  1. 修改spark-env.sh,添加JAVA_HOME和YARN_C

ONF_DIR配置

  1. 启动HDFS以及YARN集群

  1. 配置历史服务
  1. 修改spark-defaults.conf,配置日志存储路径

注意:需要启动 hadoop 集群,HDFS 上的目录需要提前存在。

  1. 修改spark-env.sh文件,添加配置

  1. 修改spark-defaults.conf

  1. 启动历史服务

  1. Web页面查看日志:http://hadoop102:8088

任务三:三种部署方式下,提交Spark自带计算π的测试程序并查看Spark程序运行结果。

3.1 Local模式

bin/spark-submit \

--class org.apache.spark.examples.SparkPi \

--master local[2] \

./examples/jars/spark-examples_2.12-3.0.0.jar \

10

1) --class 表示要执行程序的主类,此处可以更换为咱们自己写的应用程序

2) --master local[2] 部署模式,默认为本地模式,数字表示分配的虚拟 CPU 核数量

3) spark-examples_2.12-3.0.0.jar 运行的应用类所在的 jar 包,实际使用时,可以设定为咱们自己打的 jar

4) 数字 10 表示程序的入口参数,用于设定当前应用的任务数量

3.2 Standalone模式

(1)提交应用

bin/spark-submit \

--class org.apache.spark.examples.SparkPi \

--master spark://linux1:7077 \

./examples/jars/spark-examples_2.12-3.0.0.jar \

10

1) --class 表示要执行程序的主类

2) --master spark://hadoop101:7077 独立部署模式,连接到 Spark 集群

3) spark-examples_2.12-3.0.0.jar 运行类所在的 jar 包

4) 数字 10 表示程序的入口参数,用于设定当前应用的任务数量

执行任务时,会产生多个 Java 进程

执行任务时,默认采用服务器集群节点的总核数,每个节点内存 1024M。

  1. 配置高可用提交应用

         (4)停止hadoop101的Master资源监控进程

         (5)查看hadoop102的Master资源监控Web UI,稍等一段时间后,hadoop102节点的Master状态提升为活动状态

3.3 Yarn模式

   1. 提交应用

   查看http://hadoop102:8088页面,点击History,查看历史页面

  1. 配置历史服务后重新提交应用

 Web页面查看日志:http://hadoop102:8088

出现问题:Yarn模式提交时出错

问题原因:应用程序所需依赖项(Spark,Hadoop或其他库)不正确地配置,或文件系统出现故障或正在清理文件。

Diagnostics: File

file:/home/hadoop/.sparkStaging/application_1687449806453_0002/__spark_libs__8216860835614806039.zip does not exist

java.io.FileNotFoundException: File

file:/home/hadoop/.sparkStaging/application_1687449806453_0002/__spark_libs__8216860835614806039.zip does not exist

解决方案:暂无

Yarn提交任务时出错

Spark 实验的过程中,我积累了一些心得和体会:

安装Java、Scala和Spark:在CentOS 7中安装Spark SQL和Spark Core之前,需要先安装Java和Scala环境,并下载Spark的安装包,可以参考官方文档进行安装和配置,确保环境配置正确。

熟悉Spark架构:在进行Spark实验之前,先要了解Spark的架构和工作原理,包括RDD的概念、Spark Application架构、任务调度等,这样可以更好地理解实验内容。

启动Spark Shell。

编写Spark SQL和Spark Core代码:在编写Spark SQL和Spark Core程序代码时,需要注意代码的结构和语法,以及RDD与DataFrame之间的转换方法和函数调用。

实验结果分析:在进行Spark实验之后,需要对实验结果进行分析和总结,主要包括查询性能、资源占用、任务执行时间等指标,以便对实验过程进行改进。

总之,进行Spark SQL和Spark Core实验需要具备良好的编程能力和数据分析能力,同时需要对Spark的架构和工作原理有深刻的理解,才能够在实验中取得更好的表现。

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

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

相关文章

代理ip的用途及是否可以降低延迟

在互联网使用中,代理IP是一种被广泛使用的工具,用于隐藏真实IP地址和提供一些额外的功能。人们常常疑惑代理IP是否能够降低延迟,从而提高网络连接的速度和响应时间。下面,就让我们来探讨一下代理ip可以用在那些领域及是不是可以降…

C/S、B/S架构详解,一文带你搞懂

一、CS、BS架构定义 CS架构(Client-Server Architecture)是一种分布式计算模型,其中客户端和服务器之间通过网络进行通信。在这种架构中,客户端负责向服务器发送请求,并接收服务器返回的响应。服务器则负责处理客户端的…

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

目录 统一网关GateWay 搭建网关服务的步骤 1、引入依赖 2、编写路由配置及nacos地址 路由断言工厂Route Oredicate Factory 路由过滤器配置 全局过滤器GlobalFilter 过滤器执行顺序 跨域问题处理 Docker ​编辑 Docker与虚拟机 镜像和容器 Docker的安装 启动docke…

原生JS实现图片裁剪功能

功能介绍&#xff1a;图片通过原生input上传&#xff0c;使用canvas进行图片裁剪。 裁剪框限制不允许超出图片范围&#xff0c;图片限制了最大宽高&#xff08;自行修改要的尺寸&#xff09;&#xff0c;点击确认获取新的base64图片数据 效果图&#xff1a; 上代码 <!DOCT…

物种气候生态位动态量化与分布特征模拟----R语言

在全球气候快速变化的背景下&#xff0c;理解并预测生物种群如何应对气候变化&#xff0c;特别是它们的地理分布如何变化&#xff0c;已经变得至关重要。利用R语言进行物种气候生态位动态量化与分布特征模拟&#xff0c;不仅可以量化描述物种对环境的需求和适应性&#xff0c;预…

【断路器型号字母含义解析】- 米思米机械设备知识分享

断路器型号意义含义 目前我国断路器型号根据国家技术标准的规定&#xff0c;一般由文字符号和数字按以下方式组成。其代表意义为&#xff1a; ①;产品字母代号&#xff0c;用下列字母表示&#xff1a; S;少油断路器&#xff1b; D;多油断路器&#xff1b; K;空气断路器&#xf…

听说你还不知道什么是 python?带你深入理解什么是 python

文章目录 前言什么是pythonpython的由来我们为什么要学习python帮助python学习的网站 前言 各位朋友们&#xff0c;大家好。在之后的时间里&#xff0c;我将陆续为大家分享我在python学习过程中学习到的知识点&#xff0c;如果你也对python感兴趣的话&#xff0c;欢迎大家来订…

持 PMP®证书增持 CSPM-2证书,先下手就对了!

2023年6月起&#xff0c;持有PMP证书的朋友可以直接增持一个同等级证书CSPM-2&#xff0c;不用重新考试&#xff0c;不用重新学习&#xff0c;原PMP证书不影响正常使用&#xff0c;相当于多了一个国标项目管理领域的证书。 第一步准备资料 1、填写能力评价表(简历和业绩不用填…

Stateflow状态图

目录 1.Stateflow简介 2.Stateflow编辑 2.1 打开方式 2.2 状态 2.3 状态名称 2.4 迁移 2.4.1 迁移 2.4.2 默认迁移 2.4.3 迁移有效条件 3 数据与事件 3.1 数据 3.2 事件 4 示例 1.Stateflow简介 Stateflow对象可分为图形对象和非图形对象。 图形对象包括&#xff1…

LangChain 介绍及相关组件使用总结

一、langChain LangChain 是一个由语言模型LLMs驱动的应用程序框架&#xff0c;它允许用户围绕大型语言模型快速构建应用程序和管道。 可以直接与 OpenAI 的 ChatGPT 模型以及 Hugging Face 集成。通过 langChain 可快速构建聊天机器人、生成式问答(GQA)、本文摘要等应用场景。…

Nginx做图片服务器

前言&#xff1a; Nginx是一个高性能的HTTP和反向代理web服务器,以及负载均衡器。根据nginx是高性能的http服务器&#xff0c;因此可以用作图片服务器使用。 本案例是在docker安装nginx来操作的。 Nginx安装 1、首先是docker的安装 详情参考&#xff1a;docker安装 2、拉取ng…

倒计时2天,解锁亚马逊云科技中国峰会 Dev Lounge 玩法

2023 亚马逊云科技中国峰会即将重磅登陆上海 主会场与分论坛云集百余位重磅嘉宾 开发者会客厅也已集齐全球优秀开源社区 倒计时2天&#xff0c;赶快报名参与这场顶级盛会&#xff01; 开发者大讲堂&#xff0c;圆桌讨论给你精彩 数据对于企业和个人来说都至关重要&#xff0…

【kubernetes系列】Kubernetes中的重要概念

​ 在学习k8s之前&#xff0c;必须先了解 Kubernetes 的几个重要概念&#xff0c;它们是组成 Kubernetes 集群的基石。&#xff08;参考Kubernetes权威指南&#xff09; 一、Master Kubernetes 里的Master指的是集群的控制节点&#xff0c; 每个Kubernetes 集群里至少需要有一…

大数据应用——hive实验

任务一&#xff1a;完成Hive内嵌模式部署 1.1 Hive部署 官网下载Hive安装包 &#xff08;1&#xff09;官网地址&#xff1a;Apache Hive &#xff08;2&#xff09;文档查看地址&#xff1a; https://cwili.apache.org/confluence/display/Hive/GettingStarted &#xff08;2&…

年轻人存款难吗?探讨现实挑战与如何应对

年轻人存款难吗&#xff1f;探讨现实挑战与如何应对 近日&#xff0c;一项调查显示“大概五分之一的年轻人存款在一万元以内。10万元存款是一个“坎”&#xff0c;存款超过10万就会超过53.7%的人。”这个数据引发了关于“年轻人”和“存款”的广泛关注和讨论。作为社会的未来&…

使用 Maya、ZBrush 和 XGen 创建极其逼真的美女肖像

今天云渲染小编给大家带来的是CG艺术家Hadi Karimi 的朋友 Clara 肖像模型背后的工作流程&#xff0c;展示了头发是如何使用 XGen 完成的&#xff0c;并解释了为什么历史人物很难进行逼真的渲染。 介绍 大家伙&#xff0c;我是 Hadi Karimi&#xff0c;是一名来自伊朗的自由 C…

.net点选验证码实现思路分享

哈哈好久没冒泡了&#xff0c;最进看见点选验证码有点意思&#xff0c;所以想自己写一个。 先上效果图 如果你被这个效果吸引了就请继续看下去。 贴代码前先说点思路&#xff1a; 1.要有一个汉字库,并按字形分类。&#xff08;我在数据库里是安部首分类的&#xff09; 2.获…

力扣题库刷题笔记13--罗马数字转整数

1、题目如下&#xff1a; 2、个人Python代码实现&#xff1a; 虽然前面刚刷了整数转罗马数字&#xff0c;而且本题难度为简单&#xff0c;实际上做出来还是花了很多时间&#xff0c;不亚于前面整数转罗马数字。 以上的思路&#xff0c;主要是声明一个列表temp&#xff0c;然后遍…

【MYSQL】—— MySQL 在 Centos 7环境安装

本期&#xff0c;我将给大家介绍的是如何在【Linux】上安装相应的 mysql。 目录 1. 卸载不要的环境 2. 检查系统安装包 3. 获取mysql官⽅yum源 4. 安装mysql yum 源&#xff0c;对⽐前后yum源 5. 看看能不能正常⼯作 6. 安装mysql服务 7. 启动服务 8. 查看启动服务 9.…

从“特种兵旅游”到“citywalk”,渡远户外还能热下去么?

过去风靡一时的“户外露营热”&#xff0c;有些企业赶上了&#xff0c;有些没有。去年坐上“末班车”的渡远户外也想尝些甜头。 套上“户外”概念的渡远户外&#xff0c;或许正在被质疑“血统”并不“纯正”&#xff0c;主营房车游艇配套产品和水上休闲运动产品&#xff0c;说…