Spark和hadoop的关系

1、 Spark VSHadoop有哪些异同点?

Hadoop:分布式批处理计算,强调批处理,常用于数据挖掘和数据分析。

Spark:是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速, Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。

尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为Mesos的第三方集群框架可以支持此行为。

虽然 Spark 与 Hadoop 有相似之处,但它提供了具有有用差异的一个新的集群计算框架。首先,Spark 是为集群计算中的特定类型的工作负载而设计,即那些在并行操作之间重用工作数据集(比如机器学习算法)的工作负载。为了优化这些类型的工作负载,Spark 引进了内存集群计算的概念,可在内存集群计算中将数据集缓存在内存中,以缩短访问延迟。

在大数据处理方面相信大家对hadoop已经耳熟能详,基于GoogleMap/Reduce来实现的Hadoop为开发者提供了map、reduce原语,使并行批处理程序变得非常地简单和优美。Spark提供的数据集操作类型有很多种,不像Hadoop只提供了Map和Reduce两种操作。比如map,filter, flatMap,sample, groupByKey, reduceByKey, union,join, cogroup,mapValues, sort,partionBy等多种操作类型,他们把这些操作称为Transformations。同时还提供Count,collect, reduce, lookup, save等多种actions。这些多种多样的数据集操作类型,给上层应用者提供了方便。各个处理节点之间的通信模型不再像Hadoop那样就是唯一的Data Shuffle一种模式。用户可以命名,物化,控制中间结果的分区等。可以说编程模型比Hadoop更灵活。

2、Spark对于数据处理能力和效率有哪些特色?

Spark提供了高的性能和大数据处理能力,使得用户可以快速得到反馈体验更好。另一类应用是做数据挖掘,因为Spark充分利用内存进行缓存,利用DAG消除不必要的步骤,所以比较合适做迭代式的运算。而有相当一部分机器学习算法是通过多次迭代收敛的算法,所以适合用Spark来实现。

Spark配有一个流数据处理模型,与Twitter的 Storm框架相比,Spark采用了一种有趣而且独特的办法。Storm基本上是像是放入独立事务的管道,在其中事务会得到分布式的处理。相反,Spark采用一个模型收集事务,然后在短时间内(我们假设是5秒)以批处理的方式处理事件。所收集的数据成为他们自己的RDD,然后使用Spark应用程序中常用的一组进行处理。作者声称这种模式是在缓慢节点和故障情况下会更加稳健,而且5秒的时间间隔通常对于大多数应用已经足够快了。这种方法也很好地统一了流式处理与非流式处理部分。

时间: 2024-08-09 22:47:18

Spark和hadoop的关系的相关文章

Spark和Hadoop作业之间的区别

Spark目前被越来越多的企业使用,和Hadoop一样,Spark也是以作业的形式向集群提交任务,那么在内部实现Spark和Hadoop作业模型都一样吗?答案是不对的. 熟悉Hadoop的人应该都知道,用户先编写好一个程序,我们称为Mapreduce程序,一个Mapreduce程序就是一个Job,而一个Job里面可以有一个或多个Task,Task又可以区分为Map Task和Reduce Task,如下图所示: 而在Spark中,也有Job概念,但是这里的Job和Mapreduce中的Job不一

Cloudera Developer之Spark 及 Hadoop 开发员培训(CCA-175)

学习如何将数据导入到 Apache Hadoop 机群并使用 Spark.Hive.Flume.Sqoop.Impala 及其他 Hadoop 生态系统工具对数据进行各种操作和处理分析. 详情:https://www.huodongjia.com/event-1838227010.html 在为期四天的培训中,学员将学习关键概念和掌握使用最新技术和工具将数据采集到 Hadoop 机群并进行处理.通过学习掌握诸如 Spark.Hive.Flume.Sqoop 和 Impala 这样的 Hadoop

对于spark以及hadoop的几个疑问(转)

Hadoop是啥?spark是啥? spark能完全取代Hadoop吗? Hadoop和Spark属于哪种计算计算模型(实时计算.离线计算)? 学习Hadoop和spark,哪门语言好? 哪里能找到比较全的学习资料? 1 Hadoop是啥?spark是啥? (1)先来了解下Hadoop历史渊源 Doug Cutting是Apache Lucene创始人, Apache Nutch项目开始于2002年,Apache Nutch是Apache Lucene项目的一部分.2005年Nutch所有主要算

Spark 与 Hadoop 关于 TeraGen/TeraSort 的对比实验(包含源代码)

自从 Hadoop 问世以来,MapReduce 在很长时间内都是排序基准测试的纪录保持者,但这一垄断在最近被基于内存计算的 Spark 打破了.在今年Databricks与AWS一起完成的一个Daytona Gray类别的Sort Benchmark中,Spark 完胜 Hadoop MapReduce:"1/10计算资源,1/3耗时".这是个很有意思的对比实验,因此笔者也在一个小规模集群上做了一个微缩版的类似试验. 1.Hadoop 与 Spark 集群环境完全相同: - Hado

北京上海广州Cloudera Hadoop大数据:CCAH(管理员)、CCA(Spark and Hadoop)、HBase

上海5月21-24日ClouderaAaminisrrator Training for Apache Hadoop(CCAH) 广州6月1-3日Cloudera Trainingfor Apache Hbase 广州6月18-21日Cloudera Developertraining for Spark and Hadoop(CCA-175) 上海6月27-30日Cloudera Developertraining for Spark and Hadoop(CCA-175) 北京7月7-10日

Spark与Hadoop的区别

[适用场景不同] ? ? Hadoop:分布式批处理计算,强调批处理,常用于数据挖掘.分析 ? ? Spark:是一个基于内存计算的开源的集群计算系统,那些在并行操作之间重用工作数据集(比如机器学习算法)的工作负载.为了优化这些类型的工作负载,Spark 引进了内存集群计算的概念,可在内存集群计算中将数据集缓存在内存中,以缩短访问延迟, 目的是让数据分析更加快速 ? ? 除了能够提供交互式查询外,它还可以优化迭代工作负载 ? ? [语言支持不同] ? ? Spark 是在 Scala 语言中实现

spark、hadoop动态增减节点

之前在搭建实验环境的时候按部就班的配置好,然后就启动了.后来再一琢磨,有点不对劲.分布式系统的一个优势就是动态可伸缩性,如果增删节点需要重启那肯定是不行的.后来研究了一下,发现的确是不需要重启的.仍以Spark和Hadoop为例: 对于spark来说很简单,增加一个节点就是命令启动: ./sbin/start-slave.sh spark://<master>:7077 ,就完成了新节点的注册和加入集群.停止的时候是: ./sbin/stop-slave.sh.之后在master的管理端会显示

Cloudera Spark 及 Hadoop 开发员培训学习【北京上海】

Spark 及 Hadoop 开发员培训 学习如何将数据导入到 Apache Hadoop 机群并使用 Spark.Hive.Flume.Sqoop.Impala 及其他 Hadoop 生态系统工具对数据进行各种操作和处理分析 在为期四天的培训中,学员将学习关键概念和掌握使用最新技术和工具将数据采集到 Hadoop 机群并进行处理.通过学习掌握诸如 Spark.Hive.Flume.Sqoop 和 Impala 这样的 Hadoop 生态系统工具和技术,Hadoop 开发员将具备解决实际大数据问

CDH培训——Cloudera Developer Training for Spark and hadoop

Cloudera Developer Training for Spark and hadoop Course Time:2016年6月27-30日 Course Location:上海市 浦东新区 张江高科 伯克利工程创新中心 Contact us:400-679-6113 QQ:1438118790 Certification:CCA-175 Learn how toimport data into your Apache Hadoop closter and process it with