大数据部分简单面试题

大数据部分简单面试题

1.scala方法和函数的定义(反复看容易记串直到深度记忆)

方法:
无返回值:def 方法名(参数名:参数类型)={方法体}
有返回值:def 方法名(参数名:参数类型):返回值类型={方法体}
函数:
无返回值:val 函数名=(参数名:参数类型)=>{函数体}
有返回值:val 函数名:(参数类型,参数类型)=>返回值类型={函数体}

2.什么是柯里化、闭包、偏函数

柯里化:将一次传入两个参数的方法转化成一次传入一个参数的方法
闭包:方法体中匿名函数的运算调用方法的参数列表
偏函数:一组被花括号包含没有match的case语句

3.spark中的宽窄依赖

宽依赖:父RDD中的一个分区被子RDD的多个分区所依赖
窄依赖:父RDD中的一个分区被子RDD的一个分区所依赖

4.是什么是DAG有向无环图?如何划分stage

DAG有向无环图就是RDD执行流程
划分stage的时候采用回溯算法,从后往前,遇到窄依赖级包含在当前的stage中,遇到宽依赖就划分为新的stage

5.广播变量的意义,有什么要求

广播变量是在executor中开辟一块内存,保存一份driver端的变量副本,广播遍历使得不管有多少个take也只有一个副本
意义:减少占用网络带宽和服务器资源
要求:
1 不能广播RDD,RDD不存储数据
2 广播变量只能在driver端定义,不能在executor端定义
3 可以在driver端修改变量的值,不能在executor端修改

6.spark为什么搭建HA模式

standlone是一主多从,容易出现出现单点故障问题;standlone-HA模式是一主多备,当master挂掉时,standby状态的节点就会顶替挂掉的master
HA模式原理:先启动的master会去zookeeper中注册临时节点,后启动的master也会去zookeeper中注册临时节点,但是临时节点已经被注册,自己就是standby状态。每隔一段时间就会去zookeeper注册,如果临时节点一直存在,自己就一直是standby状态,直到alive状态的master宕机,zookeeper会删除临时节点,standby状态的master就会注册临时节点,接替掌管集群

7.spark中standlone-HA模式提交任务流程

1 Driver端提交任务找到资源管理器master注册并申请资源
2 master注册worker并分配资源
3 worker通知Driver端准备好资源可以提交任务
4 drive端会构建有向无环图将有向无环图提交到DAGschedule中,将有向无环图划分为一个个stage,并以taskset的形式发送给taskscheduler,将taskset划分成一个个task并提交到worker节点上executor内存中运行
5 driver提交任务并监控

8.sparkStreaming整合kafka有几种方式,为什么最后剩一种

有两种方式,一种是receiver模式,一种是direct直连模式
0.10.0版本以后只有direct直连模式了。因为receiver将kafka的数据抽取保存到executor中,可能会因为底层计算失败导致数据丢失,为了解决这个问题就开启了WAL预写日志,也将数据保存到WAL预写日志一份,这样造成了数据冗余。而且数据读取不及时会造成数据积压。而direct模式每隔一个batch time就到kafka的topic下的每个分区读取最新的偏移量,只要kafka数据保存时间够长就可以恢复数据,避免了数据冗余,也更加安全

9.sparkStreaming的有状态算子有什么,使用时需要注意什么

updataStateByKey 当前批次计算依赖之前批次计算结果。
在使用updataStateByKey时需要提前设置checkpoint机制

10.kafka的组件有哪些,kafka为什么快,如何保证数据不丢失

组件:producer broker topic partition consumer
原因:page cache页缓存技术,而且是顺序读写磁盘,零拷贝,压缩
如何保证数据不丢失:
producer端:有同步模式和异步模式
broker端:ISR维护副本数据
consumer端:将自动提交偏移量改为手动提交偏移量

11.flink中的窗口类型,有什么特点?

Countwindow 与时间无关,与参数个数有关
滚动窗口:传一个参数,相同key的个数达到给的参数时就会触发
滑动窗口:传入两个参数,窗口的大小,和相同的key的个数达到给的参数时就会触发
Timewindow 与参数个数无关 与时间有关
滚动窗口:传入一个参数,时间到达传入的参数时就会触发
滑动窗口“传入两个参数,窗口大小等于滑动时间时就相当于滚动窗口,小于时会造成数据丢失 大于时会造成数据重复消费

12.Flink中水印机制的作用?

尽可能的避免数据丢失

13.flink中cep的作用?
14. Kafka中数据是否全局有序?

区内有序全局无序,要想全局有序,将数据都发送到一个分区里

15.5. RDD缓存有哪几种方式?有什么区别和联系?

cache和persist
cache底层调用的是persist的无参构造,默认缓存在内存中
persist可以指定存在哪

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_不吃香菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值