spark和hadoop的区别(spark和hadoop的相互关系)
Spark为什么要在Hadoop基础之上搭建
Hadoop是基础,其中的HDFS提供文件存储,Yarn进行资源管理。可以运行MapReduce、Spark、Tez等计算框架。
如果只是以伪分布式模式安装Spark,可以不安装Hadoop,因为可以直接从本地读取文件。如果以完全分布式模式安装Spark,由于我们需要使用HDFS来持久化数据,一般需要先安装Hadoop。
Spark是UCBerkeleyAMPlab所开源的类HadoopMapReduce的通用的并行计算框架,Spark基于mapreduce算法实现的分布式计算,拥有HadoopMapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的mapreduce的算法。
hadoop和spark是什么关系啊?
Hadoop和Spark的联系和区别 计算数据存储位置 Hadoop:硬盘 Spark:内存 计算模型 Hadoop:单一 Spark:丰富 处理方式 Hadoop:非迭代 Spark:迭代 场景要求 Hadoop:离线批处理。(面对SQL交互式查询、实时处理及机器学习等需要和第三方框架结合。
Hadoop-YARN(Hadoop 0的一个分支,实际上是一个资源管理系统)YARN是Hadoop的一个子项目(与MapReduce并列),它实际上是一个资源统一管理系统,可以在上面运行各种计算框架(包括MapReduce、Spark、Storm、MPI等)。当前Hadoop版本比较混乱,让很多用户不知所措。
Hadoop和Spark都是集群并行计算框架,都可以做分布式计算,它们都基于MapReduce并行模型。Hadoop基于磁盘计算,只有map和reduce两种算子,它在计算过程中会有大量中间结果文件落地磁盘,这会显著降低运行效率。
spark与hadoop相比,存在哪些缺陷
1、Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合,如pageRank、K-Means等算法就非常适合内存迭代计算。Spark整个生态体系正逐渐完善中,GraphX 、 SparkSQL、 SparkStreaming 、 MLlib,等到Spark有了自己的数据仓库后,那就完全能与Hadoop生态体系相媲美。
2、首先,Hadoop和Apache Spark两者都是大数据框架,但是各自存在的目的不尽相同。Hadoop实质上更多是一个分布式数据基础设施: 它将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,意味着您不需要购买和维护昂贵的服务器硬件。
3、Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
4、平台不同:spark是一个运算平台,而hadoop是一个复合平台(包含运算引擎,还包含分布式文件存储系统,还包含分布式运算的资源调度系统),所以,spark跟hadoop来比较的话,hadoop主要是它的运算部分日渐式微,而spark目前如日中天,相关技术需求量大,offer好拿。
5、相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。
