2024-JAVA-大数据-面试汇总_大数据java部门面试(2)

说完之后感觉对着吧,果然,听见面试官说嗯嗯,好。觉得差不多对啦

19 嗯嗯,好,说说yarn吧,它有什么优势,能解决什么问题?

yarn集群主要分为主节点ResourceManage,从节点 NodeManage  ResourceManage负责资源的分配,将集群的资源分配给

各个应用使用,资源分配的基本单元是Container,NodeManage则是一个计算节点的管理者,负责启动应用的

所需的Conbiner,并对内部资源进行监控等。

yarn一般和mapreduce进行结合,主要是对mapreduce中的资源计算进行维护等。

答完之后,心想别问yarn吧,这块看得不是很深,哈哈,果然,面试官问了一个问题后就跳过了

20 说说Spark吧,Spark为啥比Mapreduce运行块,原因都有哪些?

1 spark是基于内存计算,mapreduce是基于磁盘运算,所以速度快

2 spark拥有高效的调度算法,是基于DAG,形成一系列的有向无环图

3 spark 是通过RDD算子来运算的,它拥有两种操作,一种转换操作,一种动作操作,可以将先运算的结果存储在

内存中,随后在计算出来

4 spark 还拥有容错机制Linage

21 什么是RDD?

RDD就是弹性分布式数据集,可以理解为一种数据结构,拥有多种不同的RDD算子

22 你都知道哪些RDD算子?

比如转换操作,有map().fliter() flatMap(),distinct()等  动作操作  有 collect ,reduce 等

23. 你知道reduceBykey 和groupBykey有啥区别吗?

reduceByKey会在结果发送至reducer之前会对每个mapper在本地进行merge,

有点类似于在MapReduce中的combiner。这样做的好处在于,在map端进行一次reduce之后,数据量会大幅度减小,

从而减小传输,保证reduce端能够更快的进行结果计算。

groupByKey会对每一个RDD中的value值进行聚合形成一个序列(Iterator),此操作发生在reduce端,

所以势必会将所有的数据通过网络进行传输,造成不必要的浪费。同时如果数据量十分大,

可能还会造成OutOfMemoryError。

24.现在有一个业务,当SparkStreaming在消费kafka里面的数据,然后消费了一段时间之后,程序挂了,当

下一次程序启动时如何保证SparkStraming能继续消费kafka之前的位置?

听到这个问题时,我就偷笑啦,幸亏上次海康威视问过我,我就好好看了一下

可以依靠checkPoint机制来保证,每次SparkStreaming消费kafka数据后,将消费的kafka offsets更新到checkpoint,当

程序挂机或升级时,就可以用过读取checkpoint 的记录来接着上次的位置进行读取,实现数据的零丢失。

25,除了这种方式还有什么方式?

还可以在sparkStreaming中另外启动一个预写日志,这将同步保存所有收到的kafka数据导hdfs中,以便发生故障时,

恢复到上次的位置和之前的数据。

26,你说说Spark的广播变量?

听到这个问题后,一脸懵逼,不会拉。。 我都猜想 面试官肯定在想,小样,我还难不倒你拉。。。。

然后我就让面试官给我讲了一下。。

Spark中因为算子中的真正逻辑是发送到Executor中去运行的,所以当Executor中需要引用外部变量时,

需要使用广播变量。广播变量只能在Driver端定义,不能在Executor端定义,在Driver端可以修改广播

变量的值,在Executor端无法修改广播变量的值

27 那你知道累加器吗?

之前看过一点,累机器相当于统筹大变量,常用于计数,统计。累加器常常被作为rdd的map filter操作的副产品等。

28.你说说spark中 job,stage,task,分别代表什么?

Job简单讲就是提交给spark的任务。 Stage是每一个job处理过程要分为的几个阶段。

Task是每一个job处理过程要分几为几次任务。Task是任务运行的最小单位。最终是要以task为单位运行在executor中。

29.嗯嗯 好,说说Spark的工作机制?

我去,咋问的都是大问题啊,幸亏之前复习过。。

用户在客户端提交job作业后,会由driver运行main方法并创建SparkContext上下文。执行RDD算子,形成DAG图,

然后将DAG图交给DAGScheduler来处理。DAGScheduler按照RDD之间的依赖关系划分stage,输入task Scheduler,

task Scheduler会将stage划分为task set分发到各个节点的executer中执行,executor以多线程的方式执行,每个线程

负责一个任务,任务结束后,根据不同类型的任务返回不同的结果。

30  你了解zookeeper吗?

zookeeper 是一个分布式协调服务,zookeeper集群包括 leader 和 follow

31 说说zookeeper的选举过程,比如现在有五台机器,ABCDE依次启动起来,那么哪台是leader?

记得不太清楚了。。就大概说了一下

1.首先更新logicalclock并提议自己为leader并广播出去

2.进入本轮投票的循环

3.从recvqueue队列中获取一个投票信息,如果为空则检查是否要重发自己的投票或者重连,否则

判断投票信息中的选举状态: 就回答到这,后来下来百度了一下。。。

32 hive了解吗?

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能

33.说说内部表和外部表的区别?

内部表的数据是由Hive自身管理的,外部表的数据是由HDFS管理的;

删除内部表会删除元数据和存储的数据;删除外部表只删除元数据不删除存储的数据

34,你知道UDF吗?

UDF就是Hive提供的内置函数无法满足业务处理需要时,可以考虑使用用户自定义函数。

35 一张大表,一张小表,你写join in时,哪个表放左边,哪个表放右边?

小表放前,大表放后,左查询,根据小表为主进行查询。

36  问一下kafka的问题吧,kafka是怎么进行数据备份的?

哇,面试官 你是要把大数据里面的每个组件分别问一下,。。。。深呼一口气,思考了一下 然后巴拉巴拉

备份机制是Kafka0.8版本之后出的,一个备份数量为n的集群允许n-1个节点失败。在所有备份节点中,

有一个节点作为lead节点,这个节点保存了其它备份节点列表,并维持各个备份间的状体同步。

37.消费者是从leader中拿数据,还是从follow中拿数据?

。。。不太会,备份机制这块没咋深入了解过。

kafka是由follower周期性或者尝试去pull(拉)过来(其实这个过程与consumer消费过程非常相似),

写是都往leader上写,但是读并不是任意flower上读都行,读也只在leader上读,flower只是数据的一个备份,

保证leader被挂掉后顶上来,并不往外提供服务。

38.那换个问题吧。说说kafka的ISR机制?

  • kafka 为了保证数据的一致性使用了isr 机制,
    1. leader会维护一个与其基本保持同步的Replica列表,该列表称为ISR(in-sync Replica),每个Partition都会有一个ISR,
  • 17
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值