51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2330|回复: 0
打印 上一主题 下一主题

[转贴] Spark大数据面试题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-27 16:29:57 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
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秒内做一次处理,而Storm最快可达到0.1秒,在实时性和容错性上,Spark Streaming不如Strom.
b.Spark Streaming的集成性优于Storm,可以通过RDD无缝对接Spark上的所有组件,还可以很容易的与kafka,flume等分布式框架进行集成。
c.在数据吞吐量上,Spark Streaming要远远优于Storm。

综上所诉,Spark Streaming更适用于大数据流式处理。

11、cache()和persist()方法的区别?
cache()在源码底层调用的是persist().

12、spark中的join是宽依赖还是债依赖

13、Spark中的map和reduce和mapreduce有什么关系?

14、repartition和coalesce区别?

15、DataFrame vs RDD vs DataSet
a.基于RDD的编程,不同语言性能是不一样的,而DataFrame是一样的,因为底层会有一个优化器先将代码进行优化。
b.对于RDD,暴露给执行引擎的信息只有数据的类型,如RDD[Student]装的是Student,而对于DataFrame,对于外部可见的信息有字段类型,字段key,字段value等。
c.RDD是一个数组,DataFrame是一个列式表。

16、自定义外部数据源有哪几个类,作用是?

17、ETL是否有Reduce?

18、大数据领域的常用端口?
Spark UI:4040/4041/4042.。。。。。
Spark Standalone UI:8080
Spak history-serrver UI:18080

19、Spark1.x和2.x的区别。
在${SPARK_HOME}/jars目录下有许多jar包,而在spark1.0版本中只有一个大的jar包

20、SparkContext?
目前在一个JVM进程中可以创建多个SparkContext,但是只能有一个active级别的。如果你需要创建一个新的SparkContext实例,必须先调用stop方法停掉当前active级别的SparkContext实例。
初始化一个SparkContext之前你需要构建一个SparkConf对象,初始化后,就可以使用SparkContext对象所包含的各种方法来创建和操作RDD和共享变量,Spark shell会自动初始化一个SparkContext。

21、RDD算子?
当你对一个RDD进行转换时,只要触发action操作就可能会引起RDD的重算,RDD的重算机制使得当某个RDD数据丢失重算可以恢复该RDD。

22、Spark的核心配置文件有哪些?hadoop的呢?Fulme和kafka呢?
spark-defaults.conf、spark-env.sh

23、日志输出级别?
FATAL      0  
ERROR      3   为严重错误 主要是程序的错误
WARN       4   为一般警告,比如session丢失
INFO       6   为一般要显示的信息,比如登录登出
DEBUG      7  为程序的调试信息

24、
天机解密:Standalone模式下启动Spark集群(也就是启动Master和Worker)其实启动的是资源管理器,真正作业计算的时候和集群资源管理器没有任何关系,所以Spark的Job真正执行作业的时候不是运行在我们启动的Spark集群中的,而是运行在一个个JVM中的,只要在JVM所在的集群上安装配置了Spark即可!

25、宽依赖和窄依赖?
窄依赖是指父RDD的一个分区至多被子RDD的分区使用一次。(与数据规模无关)
宽依赖是指父RDD的一个分区至少被子RDD的分区使用两次。(与数据规模有关)
窄依赖的函数有:map, filter, union, join(父RDD是hash-partitioned ), mapPartitions, mapValues
宽依赖的函数有:xxxByKey, join(父RDD不是hash-partitioned ), partitionBy.


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-25 07:06 , Processed in 0.071091 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表