1、spark在什么场景比不上MapReduce?
Spark 在内存中处理数据,需要很大的内存容量。如果 Spark 与其它资源需求型服务一同运行在YARN 上,又或者数据块太大以至于不能完全读入内存,此时 Spark 的性能就会有很大的降低,此时Spark可能比不上MapReduce。当对数据的操作只是简单的ETL的时候,Spark比不上MapReduce。
2、spark sql和sql的区别?
没关系 语法类似而已
3、spark版本的含义,如spark-1.6.0.
1:主版本,主版本的更改往往意味着API的改变
6:次版本,次版本的更改往往意味着新特性的添加,有时也伴随着API的更改
0:末版本,末版本的更改网往往伴随着新特性的添加
注意:我们选择版本往往不建议选择末版本为0的版本,这个版本由于没有对新添加的特性进行bug的修复,会有很多的bug
4、spark产生背景及优势。
MapReduce编程的不便性:
1)繁杂:开发一个作业,既要写Map,又要写Reduce和驱动类。当需求变动要改变大量的代码
2)效率低:MapReduce基于进程,进程的启动和销毁要花费时间。
I/O频繁:网络I/O和磁盘I/O频繁
每个阶段都必须排序,但其实有些任务的排序是不必要的
3)不适合作迭代处理
4)只适合离线计算,不适合作实时处理
#spark基于线程,线程直接从线程池中获取即可。
#MapReduce也可以基于内存,但有一定限度。
很多框架都对spark做了兼容,使用起来很方便
5、RDD五大特性?
1、RDD是由一系列的分区组成。2、操作一个RDD实际上操作的是RDD的所有分区。3、RDD之间存在各种依赖关系。4、可选的特性,key-value型的RDD是通过hash进行分区。5、RDD的每一个分区在计算时会选择最佳的计算位置。
6、什么是RDD?
RDD产生的意义在于降低开发分布式应用程序的门槛和提高执行效率。RDD全称resilient distributed dataset(弹性分布式数据集),它是一个可以容错的不可变集合,集合中的元素可以进行并行化地处理,Spark是围绕RDDs的概念展开的。RDD可以通过有两种创建的方式,一种是通过已经存在的驱动程序中的集合进行创建,另一种是通引用外部存储系统中的数据集进行创建,这里的外部系统可以是像HDFS或HBase这样的共享文件系统,也可以是任何支持hadoop InputFormat的数据。
在源码中,RDD是一个具备泛型的可序列化的抽象类。具备泛型意味着RDD内部存储的数据类型不定,大多数类型的数据都可以存储在RDD之中。RDD是一个抽象类则意味着RDD不能直接使用,我们使用的时候通常使用的是它的子类,如HadoopRDD,BlockRDD,JdbcRDD,MapPartitionsRDD,CheckpointRDD等。
在spark的官网,介绍了RDD的五大特性:1、RDD是由一系列的分区组成。2、操作一个RDD实际上操作的是RDD的所有分区。3、RDD之间存在各种依赖关系。4、可选的特性,key-value型的RDD是通过hash进行分区。5、RDD的每一个分区在计算时会选择最佳的计算位置。
7、spark能都取代hadoop?
Spark是一个计算框架,它没有自己的存储,它的存储还得借助于HDFS,所以说Spark不能取代Hadoop,要取代也是取代MapReduce
8、Spark的特点?
Apache Spark 是一个快速的处理大规模数据的通用工具。它是一个基于内存计算框架。它有以下的四个特点:
1)快速:基于内存的计算比MapReduce快100倍,基于磁盘快10倍。
2)易用:编写一个spark的应用程序可以使用 Java, Scala, Python, R,这就使得我们的开发非常地灵活。并且,对比于MapReduce,spark内置了80多个高级操作,这使得开发十分高效和简单。
3)运行范围广:spark可以运行在local、yarn、mesos、standalone、kubernetes等多种平台之上。它可以访问诸如HDFS, Cassandra, HBase, S3等多种多样的数据源。
4)通用:spark提供了SparkSQL、SparkStreaming、GraphX、MLlib等一系列的分析工具。
9、spark的主要特性在哪个版本引入。
外部数据源 1.2
DataFrame 1.3
动态资源调度 1.5
Dataset 1.6
10、大数据流式处理框架对比:Storm vs Spark Streaming
a.Spark Streaming最低可在0.5秒~2秒内做一次处理,而