Spark和Hadoop大决战

Spark作为数据处理的核心应用,有着重要的作用和地位,那么spark能不能取代Hadoop而存在呢?

创新互联专注于大新企业网站建设,响应式网站,购物商城网站建设。大新网站建设公司,为大新等地区提供建站服务。全流程按需设计,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

Spark只是分布式计算平台,而hadoop已经是分布式计算、存储、管理的生态系统。

与Spark相对应的是Hadoop MapReduce。Spark是可以取代MapReduce的,从而成为Hadoop系统中不可或缺的一部分。但是为什么MapReduce还在被使用呢?因为有很多现有的应用还依赖于它,它不是一个独立的存在,已经成为其他生态不可替代的部分,比如pig,hive等。

至于Spark相对于Hadoop的优势,有以下几点:

(1)任务调度的开销

传统的MR系统,如Hadoop 是为了运行长达数小时的批量作业而设计的,在某些极端情况下,提交一个任务的延迟非常高。

 spark采用了事件驱动的类库 akka来启动任务,可以避免进程或线程启动,以及切换开销。

(2)数据格式和内存布局

由于MR Schema On Read处理方式会引起较大的处理开销。Spark抽象出分布式内存存储结构弹性分布式数据集RDD,进行数据的存储。RDD能支持粗粒度写操作。但对于读取操作,RDD可以精确到每条几率,这使得RDD可以用来作为分布式索引,Spark的特性是能够控制数据在不同节点上的分区,用户可以自定义分区策略,如Hash分区。Spark和SparkSQL在Spark的基础上实现了列存储和列存储压缩

但是分布式计算仅仅是Hadoop的一部分,所以比较Hadoop和Spark实际上是Spark和MapReduce的对比:

1、             更快

Spark和Hadoop大决战

2、             更加容易使用

Spark和Hadoop大决战

编程的时候没有Map+Reduce函数,而且配置起来超级方便。除支持JAVA外,还支持Scala、Python、R。特别是Scala,很适合写数据分析的程序,而Mapreduce用JAVA很繁琐。

3、             巨好用的库

Spark和Hadoop大决战

4、             运行方便

Spark和Hadoop大决战

Spark是可以脱离hadoop运行的,比如数据可以从数据库或者本地文件里面抽取。不过毕竟大数据时代,大家都习惯于将Spark和hadoop通过Mesos或者YARN结合起来用;主要用Hadoop的HDFS,当然Hbase或者Hive这种HDFS之上的组件,Spark也支持。

因此Spark是不可以取代Hadoop的,我们要区分两者的作用和地位,才可以更好的把握应用。我平常的时候喜欢看“大数据cn”这些微信公众号,里面的一些介绍也挺不错的,大家平时可以去看看,对于改善自己的知识架构有着重要的作用。


名称栏目:Spark和Hadoop大决战
分享URL:http://scyanting.com/article/psgies.html