【Spark学习笔记】- 1Spark和Hadoop的区别

news2024/12/24 3:51:14

目录标题

    • Spark 是什么
    • Spark and Hadoop
      • 首先从时间节点上来看:
      • 功能上来看:
    • Spark or Hadoop

Spark 是什么

在这里插入图片描述
Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。

Spark and Hadoop

在之前的学习中,Hadoop 的 MapReduce 是大家广为熟知的计算框架,那为什么咱们还
要学习新的计算框架 Spark 呢,这里就不得不提到 Spark 和 Hadoop 的关系。

首先从时间节点上来看:

Hadoop

  • 2006 年 1 月,Doug Cutting 加入 Yahoo,领导 Hadoop 的开发
  • 2008 年 1 月,Hadoop 成为 Apache 顶级项目
  • 2011 年 1.0 正式发布
  • 2012 年 3 月稳定版发布
  • 2013 年 10 月发布 2.X (Yarn)版本

Spark

  • 2009 年,Spark 诞生于伯克利大学的 AMPLab 实验室
  • 2010 年,伯克利大学正式开源了 Spark 项目
  • 2013 年 6 月,Spark 成为了 Apache 基金会下的项目
  • 2014 年 2 月,Spark 以飞快的速度成为了 Apache 的顶级项目
  • 2015 年至今,Spark 变得愈发火爆,大量的国内公司开始重点部署或者使用 Spark

功能上来看:

➢ Hadoop

  • Hadoop 是由 java 语言编写的,在分布式服务器集群上存储海量数据并运行分布式
    分析应用的开源框架
  • 作为 Hadoop 分布式文件系统,HDFS 处于 Hadoop 生态圈的最下层,存储着所有
    的 数 据 , 支 持 着 Hadoop 的 所 有 服 务 。 它 的 理 论 基 础 源 于 Google 的
    TheGoogleFileSystem 这篇论文,它是 GFS 的开源实现。
  • MapReduce 是一种编程模型,Hadoop 根据 Google 的 MapReduce 论文将其实现,
    作为 Hadoop 的分布式计算模型,是 Hadoop 的核心。基于这个框架,分布式并行
    程序的编写变得异常简单。综合了 HDFS 的分布式存储和 MapReduce 的分布式计
    算,Hadoop 在处理海量数据时,性能横向扩展变得非常容易。
  • HBase 是对 Google 的 Bigtable 的开源实现,但又和 Bigtable 存在许多不同之处。
    HBase 是一个基于 HDFS 的分布式数据库,擅长实时地随机读/写超大规模数据集。
    它也是 Hadoop 非常重要的组件。

➢ Spark

  • Spark 是一种由 Scala 语言开发的快速、通用、可扩展的大数据分析引擎
  • Spark Core 中提供了 Spark 最基础与最核心的功能
  • Spark SQL 是 Spark 用来操作结构化数据的组件。通过 Spark SQL,用户可以使用
    SQL 或者 Apache Hive 版本的 SQL 方言(HQL)来查询数据。
  • Spark Streaming 是 Spark 平台上针对实时数据进行流式计算的组件,提供了丰富的
    处理数据流的 API。
    由上面的信息可以获知,Spark 出现的时间相对较晚,并且主要功能主要是用于数据计算,
    所以其实 Spark 一直被认为是 Hadoop 框架的升级版。

Spark or Hadoop

Hadoop 的 MR 框架和 Spark 框架都是数据处理框架,那么我们在使用时如何选择呢?

  • 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。

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

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

相关文章

每天一道leetcode:300. 最长递增子序列(动态规划中等)

今日份题目: 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] …

关于虚拟机网络故障的解决

关于虚拟机网络故障的解决 ⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟 🌈更多学习内容, 欢迎👏关注👀【文末】我…

突破Poshmark成号率低难题,防封攻略大揭秘!

说到二手交易电商平台,这里就不得不说一下Poshmark了。Poshmark是美国最大的二手交易电商平台,访客量很大,所以平台的月均访问量也是非常高的。 Poshmark 是成立于2011 年的美国线上电商平台,也被称为美版“闲鱼”。平台上的产品…

无涯教程-Perl - rmdir函数

描述 此函数删除EXPR指定的目录,如果省略,则删除$_。如果目录为空,则仅删除目录。 语法 以下是此函数的简单语法- rmdir EXPRrmdir返回值 如果失败,此函数返回0,如果成功,则返回1。 例 以下是显示其基本用法的示例代码,在/tmp内创建一个目录testdir- #!/usr/bin/perl -…

《格斗之王AI》使用指南

目录 一、说明 二、步骤 1. 下载 2.配置环境 3.替换 4.测试 5.训练 一、说明 该项目是 针对B站UP主 林亦LYi 的作品 格斗之王!AI写出来的AI竟然这么强!的使用指南,目的是在帮助更多小白轻松入门,一起感受AI的魅力。 林亦LYi…

理论分享|拉格朗日对偶及KKT条件推导速学

目录 1 主要内容 2 问题提出 3 对偶推导 4 KKT条件 1 主要内容 在电力系统优化过程中,风光等分布式能源出力和负荷的不确定性(即源荷不确定性)形成了电力系统方向的研究热点,每个研究人员都试图通过自己的方法将研究推进的更深…

Kubernetes 部署DolphinScheduler 创建租户失败

创建租户 报错创建租户失败。后台日志如下 源代码跟踪 org.apache.dolphinscheduler.api.service.impl.TenantServiceImpl / if hdfs startup if (PropertyUtils.getResUploadStartupState()) {createTenantDirIfNotExists(tenantCode); }需要将 resource.storage.type 置为…

【LeetCode: 2811. 判断是否能拆分数组】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

js加密解决方案1:在AutoJS中实现Promise的必要性、好处与缺点

AutoJS是一款强大的Android自动化工具,可以帮助用户编写脚本来实现手机自动化操作。然而,它的加密代码只支持ES5语法,不支持许多ES6的新特性,如Promise等功能。如果想在ES5语法环境中使用ES6的一些新特性,就需要自己实…

LeetCode--HOT100题(30)

目录 题目描述:24. 两两交换链表中的节点(中等)题目接口解题思路代码 PS: 题目描述:24. 两两交换链表中的节点(中等) 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节…

二分查找理论Binary Search代码实现及P1102 A-B 数对

二分查找 在一个1~n的递增序列中,怎么用二分查找数字x的下标? 在一个没用重复元素的递增序列中,用二分查找的方法最多需要查找log(n)次,也就是在一个区间内l~r不断的选取中间下标(mid),直到mi…

maven如何建立JavaWeb项目并连接数据库,验证登录

这里是建立建立web项目:Maven如何创建Java web项目(纯干货版)!!!_明天更新的博客-CSDN博客 我们主要演示如何连接数据库验证登录。 1.在webapp目录下创建我们的登录页面:index.jsp 还需要再…

生信豆芽菜-单基因与免疫浸润的关系

网址:http://www.sxdyc.com/panCancerImmuInfil 该工具主要用于查看单基因在泛癌中与免疫细胞评分的相关性 提交后等待运行成功即可,还可以关注:豆芽数据分析

Modbus工业RFID设备在自动化生产线中的应用

传统半自动化生产线在运作的过程,因为技工的熟练程度,专业素养的不同,在制造过程中过多的人为干预,工厂将很难对每条生产线的产能进行标准化管理和优化。如果半自动化生产线系统是通过前道工序的作业结果和检测结果来决定产品在下…

MySQL事务隔离级别、锁机制、三大范式

目录 一、事务 1.概念 2.事务的特性 3.并发带来的问题 4.事务的隔离级别 二、锁机制 1.什么是锁 2.MySQL锁分类 3.乐观悲观锁 4.共享排它锁 5.意向锁 6.粒度锁 三、三大范式 1.第一范式 2.第二范式 3.第三范式 一、事务 1.概念 事务是逻辑上的一组操作&#xf…

XXL-JOB任务调度平台的安装使用教程(保姆级教程)

首先从GitHub上面将项目clone下来。 GitHub地址:https://gitee.com/xuxueli0323/xxl-job.git 下载好之后,然后通过IDEA打开,将Maven编译好后项目结构如下 在数据库中运行这个SQL文件 ,将基础表创建出来。就可以得到左边图中那些表…

P12-Retentive NetWork-RetNet挑战Transformer

论文地址:https://arxiv.org/abs/2307.08621 目录 Abstract 一.Introduction 二.Retentive Networks 2.1Retention 2.2Gated Multi-Scale Retention 2.3Overall Architecture of Retention Networks 2.4Relation to and Differences from Previous Methods 三.Experime…

并发编程的艺术-“程”:探索进程、线程、协程、纤程与管程

一、并发中的程 在计算机科学领域,处理多任务和并发执行是一项重要的挑战。为了解决这个问题,出现了多种并发模型和概念,包括进程、线程、协程、纤程和管程。本文将深入探讨这些并发概念,帮助读者理解它们的原理、特点和应用场景…

ABeam×Startup丨德硕管理咨询(深圳)创新研究团队前往灵境至维·既明科技进行拜访交流

近日,德硕管理咨询(深圳)(以下简称“ABeam-SZ”)创新研究团队一行前往灵境至维既明科技有限公司(以下简称“灵境至维”)进行拜访交流,探讨线上虚拟空间的商业模式。 现场合影 &…

PMP备考指南来啦!

第一步:通读教材,了解学习内容 在正式开始课程的学习前,可以先快速简单地阅览一遍教材(PMBOK),在较短的时间内知道自己将要学习的是什么内容;同时可以标记出难理解的知识点。这样做有以下两个好…