Spark和Hadoop大决战

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

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

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

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

1)任务调度的开销

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

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

2)数据格式和内存布局

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

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

1、             更快

Spark和Hadoop大决战

2、             更加容易使用

Spark和Hadoop大决战

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

3、             巨好用的库

Spark和Hadoop大决战

4、             运行方便

Spark和Hadoop大决战

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

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

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/193026.html

(0)
上一篇 2021年11月15日
下一篇 2021年11月15日

相关推荐

发表回复

登录后才能评论