热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Hadoop和Spark的定义是什么

本篇内容介绍了“Hadoop和Spark的定义是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下

本篇内容介绍了“Hadoop和Spark的定义是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Hadoop的定义

Hadoop是Apache.org的一个项目,其实是一种软件库和框架,以便使用简单的编程模型,跨计算器集群对庞大数据集(大数据)进行分布式 处理。Hadoop可灵活扩展,从单一计算机系统,到提供本地存储和计算能力的数千个商用系统,它都能轻松支持。实际上,Hadoop就是大数据分析领域 的重量级大数据平台。

Hadoop由协同运行、构建Hadoop框架的多个模块组成。Hadoop框架的主要模块包括如下:

  • Hadoop Common

  • Hadoop分布式文件系统(HDFS)

  • Hadoop YARN

  • Hadoop MapReduce

虽然上述四个模块构成了Hadoop的核心,不过还有其他几个模块。这些模块包括:Ambari、Avro、Cassandra、Hive、  Pig、Oozie、Flume和Sqoop,它们进一步增强和扩展了Hadoop的功能,得以扩大到大数据应用领域,处理庞大数据集。

许多使用大数据集和分析工具的公司使用Hadoop。它已成为大数据应用系统中事实上的标准。设计Hadoop的初衷是处理这项任务:搜寻和搜索数 十亿个网页,将这些信息收集到数据库中。正是由于渴望搜寻和搜索互联网,才有了Hadoop的HDFS及分布式处理引擎MapReduce。

如果数据集变得极其庞大或极其复杂,以至于当前的解决方案无法在数据用户认为合理的时间段内有效地处理信息,Hadoop对公司就会大有用处。

MapReduce是一种出色的文本处理引擎,它理应如此,因为搜寻互联网和搜索互联网(它的首要任务)都是基于文本的任务。

Spark的定义

Apache  Spark开发人员声称它是“一种用于数据大规模处理的快速通用引擎”。相比之下,如果说Hadoop的大数据框架好比是800磅重的大猩猩,Spark就好比是130磅重的猎豹。

虽然批评Spark的内存处理技术的人士承认,Spark确实速度很快(最多比Hadoop  MapReduce快100倍),但他们可能并不愿意承认它在磁盘上运行起来速度最多快10倍。Spark还可以执行批量处理,然而它真正擅长的是处理流工作负载、交互式查询和基于机器的学习。

相比MapReduce基于磁盘的批量处理引擎,Spark赖以成名之处是其数据实时处理功能。Spark与Hadoop及其模块兼容。实际上,在Hadoop的项目页面上,Spark就被列为是一个模块。

Spark有自己的页面,因为虽然它可以通过YARN(另一种资源协调者)在Hadoop集群中运行,但是它也有一种独立模式。它可以作为  Hadoop模块来运行,也可以作为独立解决方案来运行;这样一来,很难直接比较两者。然而随着时间的推移,一些大数据科学家预计Spark会出现分叉,可能会取代Hadoop,尤其是在更快速地访问处理的数据至关重要的情况下。

Spark是一种集群计算框架,这意味着它更多地与MapReduce竞争,而不是与整个Hadoop生态系统竞争。比如说,Spark没有自己的分布式文件系统,但可以使用HDFS。

Spark使用内存,也可以使用磁盘进行处理,而MapReduce完全基于磁盘。MapReduce和Spark的主要区别在于,MapReduce使用持久存储,而Spark使用弹性分布式数据集(RDDS),下面容错部分有更详细的解释。

性能

网上不缺关于Spark与MapReduce相比有多快的信息。对两者进行比较有个问题,那就是它们处理数据的方式不一样,数据处理部分有介绍。Spark之所以如此快速,原因在于它在内存中处理一切数据。没错,它还可以使用磁盘来处理未全部装入到内存中的数据。

Spark的内存处理为来自多个来源的数据提供了近乎实时分析的功能:营销活动、机器学习、物联网传感器、日志监控、安全分析和社交媒体网站。另 外,MapReduce使用批量处理,其实从来就不是为惊人的速度设计的。它的初衷是不断收集来自网站的信息,不需要这些数据具有实时性或近乎实时性。

易用性

众所周知,Spark以性能见长,但是它也因易用性而小有名气,原因是它随带易于使用的API,支持Scala(原生语言)、Java、Python和Spark  SQL。Spark SQL非常类似于SQL 92,所以几乎不需要经历一番学习,马上可以上手。

Spark还有一种交互模式,那样开发人员和用户都可以获得查询和其他操作的即时反馈。MapReduce没有交互模式,不过有了Hive和Pig等附加模块,采用者使用MapReduce来得容易一点。

成本

MapReduce和Spark都是Apache项目,这意味着它们是开源免费软件产品。虽然软件不需要成本,但是派人用硬件运行任何一种平台带来了成本。这两种产品都设计成可以在商用硬件上运行,比如所谓的低成本白盒服务器系统。

MapReduce和Spark在同样的硬件上运行,那么这两种解决方案的成本差异体现在哪里?MapReduce使用常规数量的内存,因为数据处 理基于磁盘,所以公司得购买速度更快的磁盘和大量磁盘空间来运行MapReduce。MapReduce还需要更多的系统,将磁盘输入/输出分布到多个系 统上。

Spark需要大量内存,但是可以使用常规数量的常规转速磁盘。一些用户抱怨会产生临时文件,需要清理。这些临时文件通常保存7天,以便加快针对同 一数据集的任何处理。磁盘空间相对便宜,由于Spark不使用磁盘输入/输入用于处理,已使用的磁盘空间可以用于SAN或NAS。

然而,由于需要大量内存在内存中处理一切数据,Spark系统的成本更高,这点没错。但是Spark的技术同时减少了所需的系统数量。所以,***的 情形是,系统成本较高,但是数量大大减少。也许到时候,Spark实际上可以降低每个计算单位的成本,尽管内存方面有额外的要求。

举例说明,“Spark已证明在数据多达PB的情况下也轻松自如。它被用于在数量只有十分之一的机器上,对100TB数据进行排序的速度比Hadoop  MapReduce快3倍。”这一成绩让Spark成为2014年Daytona GraySort基准。

兼容性

MapReduce和Spark相互兼容;MapReduce通过JDBC和ODC兼容诸多数据源、文件格式和商业智能工具,Spark具有与MapReduce同样的兼容性。

数据处理

MapReduce是一种批量处理引擎。MapReduce以顺序步骤来操作,先从集群读取数据,然后对数据执行操作,将结果写回到集群,从集群读 取更新后的数据,执行下一个数据操作,将那些结果写回到结果,依次类推。Spark执行类似的操作,不过是在内存中一步执行。它从集群读取数据后,对数据 执行操作,然后写回到集群。

Spark还包括自己的图形计算库GraphX。GraphX让用户可以查看与图形和集合同样的数据。用户还可以使用弹性分布式数据集(RDD),改变和联合图形,容错部分作了讨论。

容错

至于容错,MapReduce和Spark从两个不同的方向来解决问题。MapReduce使用TaskTracker节点,它为  JobTracker节点提供了心跳(heartbeat)。如果没有心跳,那么JobTracker节点重新调度所有将执行的操作和正在进行的操作,交 给另一个TaskTracker节点。这种方法在提供容错性方面很有效,可是会大大延长某些操作(即便只有一个故障)的完成时间。

Spark使用弹性分布式数据集(RDD),它们是容错集合,里面的数据元素可执行并行操作。RDD可以引用外部存储系统中的数据集,比如共享式文件系统、HDFS、HBase,或者提供Hadoop  InputFormat的任何数据源。Spark可以用Hadoop支持的任何存储源创建RDD,包括本地文件系统,或前面所列的其中一种文件系统。

RDD拥有五个主要属性:

  • 分区列表

  • 计算每个分片的函数

  • 依赖其他RDD的项目列表

  • 面向键值RDD的分区程序(比如说RDD是散列分区),这是可选属性

  • 计算每个分片的***位置的列表(比如HDFS文件的数据块位置),这是可选属性

RDD可能具有持久性,以便将数据集缓存在内存中。这样一来,以后的操作大大加快,最多达10倍。Spark的缓存具有容错性,原因在于如果RDD的任何分区丢失,就会使用原始转换,自动重新计算。

可扩展性

按照定义,MapReduce和Spark都可以使用HDFS来扩展。那么,Hadoop集群能变得多大呢?

据称雅虎有一套42000个节点组成的Hadoop集群,可以说扩展无极限。***的已知Spark集群是8000个节点,不过随着大数据增多,预计集群规模也会随之变大,以便继续满足吞吐量方面的预期。

安全

Hadoop支持Kerberos身份验证,这管理起来有麻烦。然而,第三方厂商让企业组织能够充分利用活动目录Kerberos和LDAP用于身份验证。同样那些第三方厂商还为传输中数据和静态数据提供数据加密。

Hadoop分布式文件系统支持访问控制列表(ACL)和传统的文件权限模式。Hadoop为任务提交中的用户控制提供了服务级授权(Service Level  Authorization),这确保客户拥有正确的权限。

Spark的安全性弱一点,目前只支持通过共享密钥(密码验证)的身份验证。Spark在安全方面带来的好处是,如果你在HDFS上运行Spark,它可以使用HDFS  ACL和文件级权限。此外,Spark可以在YARN上运行,因而能够使用Kerberos身份验证。

“Hadoop和Spark的定义是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程笔记网站,小编将为大家输出更多高质量的实用文章!


推荐阅读
  • 马蜂窝数据总监分享:从数仓到数据中台,大数据演进技术选型最优解
    大家好,今天分享的议题主要包括几大内容:带大家回顾一下大数据在国内的发展,从传统数仓到当前数据中台的演进过程;我个人认为数 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • Swoole加密机制的安全性分析与破解可能性探讨
    本文深入分析了Swoole框架的加密机制,探讨了其在实际应用中的安全性,并评估了潜在的破解可能性。研究结果表明,尽管Swoole的加密算法在大多数情况下能够提供有效的安全保护,但在特定场景下仍存在被攻击的风险。文章还提出了一些改进措施,以增强系统的整体安全性。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • HTML5大文件传输技术深度解析与实践分享
    本文深入探讨了HTML5在Web前端开发中实现大文件上传的技术细节与实践方法。通过实例分析,详细讲解了如何利用HTML5的相关特性高效、稳定地处理大文件传输问题,并提供了可供参考的代码示例和解决方案。此外,文章还讨论了常见的技术挑战及优化策略,旨在帮助开发者更好地理解和应用HTML5大文件上传技术。 ... [详细]
  • 操作系统如何通过进程控制块管理进程
    本文详细介绍了操作系统如何通过进程控制块(PCB)来管理和控制进程。PCB是操作系统感知进程存在的重要数据结构,包含了进程的标识符、状态、资源清单等关键信息。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • 通过使用Sqoop导入工具,可以精确控制并高效地将表数据的特定子集导入到HDFS中。具体而言,可以通过在导入命令中添加WHERE子句来指定所需的数据范围,从而在数据库服务器上执行相应的SQL查询,并将查询结果高效地存储到HDFS中。这种方法不仅提高了数据导入的灵活性,还确保了数据的准确性和完整性。 ... [详细]
  • PHP 各版本对比:标准版与最新顶级版的详细分析 ... [详细]
  • 大数据深度解读系列官网资源分享 ... [详细]
  • 这里不需要UDF。Column已提供simpleString方法和simpleString实例:frompyspark.sql.typesimportDoubleTy ... [详细]
  • JVM上高性能数据格式库包Apache Arrow入门和架构的示例分析
    小编给大家分享一下JVM上高性能数据格式库包ApacheArrow入门和架构的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Apac ... [详细]
  • 工作原理_一文理解 Spark 基础概念及工作原理
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了一文理解Spark基础概念及工作原理相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Kylin 单节点安装
    软件环境Hadoop:2.7,3.1(sincev2.5)Hive:0.13-1.2.1HBase:1.1,2.0(sincev2.5)Spark(optional)2.3.0K ... [详细]
author-avatar
哥的微笑帅_655
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有