当前位置:   article > 正文

Spark学习(一)Spark介绍_scale spark

scale spark

一、什么是spark

spark是基于内存计算的大数据并行计算框架,也是hadoop中的mapreduce的替代方案,但和mapreduce又有许多不同。      

Spark包含了大数据领域常见的各种计算框架:比如Spark Core用于离线计算,Spark SQL用于交互式查询,Spark Streaming用于实时流式计算,Spark MLlib用于机器学习,Spark GraphX用于图计算。
      Spark主要用于大数据的计算,而Hadoop以后主要用于大数据的存储(比如HDFS、Hive、HBase等),以及资源调度(Yarn)。
      Spark+Hadoop的组合,是未来大数据领域最热门的组合,也是最有前景的组合!

二、对比hadoop

1、最明显的一点,spark要比mapreduce快的多,官网的数据是,spark在硬盘上运行要比mapreduce快上十倍以上,而在内存中则是快到百倍,主要原因有以下几点(个人总结,也许不够全面)

  • spark是基于内存计算,而hadoop基于磁盘。很显然spark速度更快且更适合迭代运算。
  • Spark对分散的数据集进行抽样,创新地提出RDD(ResilientDistributedDataset)的概念,所有的统计分析任务被翻译成对RDD的基本操作组成的有向无环图(DAG)。RDD可以被驻留在RAM中,往后的任务可以直接读取RAM中的数据;同时分析DAG中任务之间的依赖性可以把相邻的任务合并,从而减少了大量不准确的结果输出,极大减少了HarddiskI/O,使复杂数据分析任务更高效。从这个推算,如果任务够复杂,Spark比Map/Reduce快一到两倍。
  • mr基于进程,每个task的启动和结束都会开启或关闭进程,耗费了大量的时间。而spark基于线程,每次只有启动excutor的时候会启动进程,task都是在线程中进行。
  • spark采用DAG(有向无环图,后面会介绍),避免了冗余的mr操作。

2、hadoop的底层是java编写的,而spark是用scale编写的,虽然两者都提供了丰富的api可以支持不同的语言,但想深入学习一下spark最好还是使用scale。

3、相比hadoop 的一个mr程序需要写map,reduce,driver等一大堆类和方法,spark程序则要精简的多,拿wordcount来说:

  1. object WordCount {
  2. def main(args: Array[String]) {
  3. val conf = new SparkConf().setAppName("WordCount");
  4. val wordCounts= new SparkContext(conf)
  5. .textFile("hdfs://spark1:9000/spark.txt", 1)
  6. .flatMap { line => line.split(" ") }
  7. .map { word => (word, 1) }
  8. .reduceByKey { _ + _ }
  9. .foreach(wordCount => println(wordCount._1 + " appeared " + wordCount._2 + " times."))
  10. }
  11. }

只需两行代码(虽然第二行略长了一些),就完成了一个wordCount,要知道写一个mr的wordcount得多麻烦。而这也是因为spark的RDD对许多操作进行了抽象,使得我们更方便使用。

4、相比hadoop,spark较为不稳定,由于大量数据被缓存在内存中,Java回收垃圾缓慢的情况严重,导致Spark性能不稳定,在复杂场景中SQL的性能甚至不如现有的Map/Reduce。也是因为数据存在内存中的原因,当数据量过大超出内存空间时会产生非常可怕的后果。所以在处理大量数据方面还是使用hadoop较为合理

三、生态系统

(参考自:https://blog.csdn.net/zhang123456456/article/details/78207184

Spark生态圈也称为BDAS(伯克利数据分析栈),是伯克利APMLab实验室打造的,力图在算法(Algorithms)、机器(Machines)、人(People)之间通过大规模集成来展现大数据应用的一个平台。伯克利AMPLab运用大数据、云计算、通信等各种资源以及各种灵活的技术方案,对海量不透明的数据进行甄别并转化为有用的信息,以供人们更好的理解世界。该生态圈已经涉及到机器学习、数据挖掘、数据库、信息检索、自然语言处理和语音识别等多个领域。

Spark生态圈以Spark Core为核心,从HDFS、Amazon S3和HBase等持久层读取数据,以MESS、YARN和自身携带的Standal

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/611432
推荐阅读
相关标签
  

闽ICP备14008679号