赞
踩
1:hive是怎么产生的?
Hive是由Facebook开发的,目的是让拥有SQL知识的分析师能够在Hadoop上进行数据查询。Hive提供了类SQL的查询语言HiveQL,通过将HiveQL查询转换为MapReduce任务来在Hadoop上处理大规模数据。
2:hive的框架是怎么样的?
3:hive 执行流程是什么?
4:hive sql是如何把sql语句一步一步到最后执行的?
Hive SQL的执行过程主要包括解析、编译、优化、执行四个阶段。在解析阶段,Hive将SQL语句解析成抽象语法树;在编译阶段,将抽象语法树转换成逻辑计划;在优化阶段,对逻辑计划进行优化;在执行阶段,将优化后的逻辑计划转换成物理计划,最终转换为MapReduce任务进行执行。
5:hive sql任务常用参数调优做过什么?
mapreduce.job.reduces
:设置Reduce任务的数量。
hive.exec.reducers.bytes.per.reducer
:设置每个Reducer处理的数据量。
hive.exec.parallel
:开启或关闭查询并行执行。
hive.optimize.skewjoin
:开启倾斜数据处理。
等等。调优的具体参数和策略会根据实际的数据和查询需求而有所不同。
6:spark 是怎么产生的?
Spark是在加州大学伯克利分校的AMPLab开发的,旨在解决MapReduce计算模型在迭代计算和交互式数据分析方面的不足。Spark提供了一个更高效、更通用的数据处理框架。
7:spark 框架是怎么样的?
8: spark的DAG是什么?
DAG是指向无环图,是Spark中表示任务依赖关系的图。在Spark中,每个操作(如map、filter等)都会生成一个新的RDD,操作之间的依赖关系构成了一个DAG。Spark会根据DAG来进行任务的调度和优化。
9:spark中的app,job,stage,task是什么?有什么好处?
count()
操作会触发一个Job。这种划分有助于Spark进行更细粒度的任务调度和容错处理。
10:spark的RDD是什么?与dataframe有什么区别?
11:spark 执行流程是什么?
12:spark sql是如何把sql语句一步一步到最后执行的?
13:spark 与mapreduce的区别是什么?
14: spark的反压原理是什么?主动还是被动?
14:flink是怎么产生的?
Flink起源于柏林工业大学的Stratosphere项目,后来成为Apache顶级项目。Flink是为了解决流处理和批处理的统一而设计的,它旨在提供低延迟、高吞吐量的数据处理能力。
15:flink的框架是怎么样的?
16:flink 的内存模型说一说?
17:flink的cp ,sp说一说原理,有什么区别?你们是怎么设置cp的相关参数?
Checkpointing(CP)原理: Flink通过定期捕获状态快照(Checkpoint)来实现故障恢复。在Checkpoint过程中,Flink会暂停数据处理,确保所有任务的状态一致性,并将状态信息存储到配置的状态后端(如RocksDB、HDFS等)中。当发生故障时,Flink可以从最近的Checkpoint恢复,保证精准一次处理语义。
Savepoint(SP): 类似于Checkpoint,但通常用于手动触发的场景,如版本升级、作业迁移等。Savepoint提供了更灵活的状态管理,允许用户在需要时创建快照,并从特定点恢复作业或更改作业的并行度。
区别: 主要区别在于用途和触发方式。Checkpoint主要用于故障恢复,自动触发;Savepoint用于状态管理和作业调整,手动触发。
设置CP参数:
常见的Checkpoint参数设置包括:
checkpoint.interval
:设置Checkpoint间隔时间。
checkpoint.timeout
:设置Checkpoint超时时间。
state.backend
:设置状态后端存储。
checkpointing.mode
:设置Checkpoint模式(EXACTLY_ONCE或AT_LEAST_ONCE)。
等等。具体参数设置根据作业需求和系统资源进行调整。
18:flink的四个图是什么?分别都是什么环节对应什么图?
19:flink反压机制,你是如何理解的?你是如何定位、并有什么方案解决?与spark的反压有什么区别?
20:flink的barrier对齐和非对齐是怎么理解的?
21:flink的精准一次和至少一次是怎么理解的?
22:flink任务消费或者写入kafka时,并行度不一致有什么问题?
当Flink任务的并行度与Kafka分区数不一致时,可能会导致数据分配不均或资源利用率不高。例如,如果Flink任务的并行度大于Kafka分区数,那么某些任务实例可能不会接收到数据。为了避免这种情况,通常建议将Flink任务的并行度设置为Kafka分区数的整数倍。
23:flink如何保证数据一致性?
Flink通过检查点(Checkpointing)机制保证数据的一致性。在检查点过程中,Flink会保存所有任务的状态快照,并确保在故障恢复时能够从检查点恢复到一致的状态。此外,Flink还支持端到端的精准一次处理,通过与外部系统(如Kafka)的集成来保证整个数据流的一致性。
24:flink对于kafka新增分区时,消费有什么问题吗?
当Kafka主题的分区数增加时,Flink需要重新平衡消费者以适应新的分区。Flink提供了动态分区检测功能,可以自动识别并开始消费新的分区。但是,这可能会导致数据分配不均或处理延迟。因此,建议在Flink任务运行时避免频繁调整Kafka分区数。
25:flink消费kafka的offset是怎么维护的?自动提交?
Flink消费Kafka时,通常会将消费的Offset保存在Flink的状态中,并通过检查点机制进行持久化。这样可以确保在任务故障恢复时能够从正确的位置继续消费。Flink通常不使用Kafka的自动提交机制,而是通过自己的状态管理和检查点机制来维护Offset。
26:flink任务如何设置TM,JM的并行度?
taskmanager.numberOfTaskSlots
参数来设置。每个TaskManager可以有多个任务槽,每个槽可以运行一个并行任务。因此,TaskManager的并行度决定了它可以同时运行的任务数量。27:flink任务做过什么调优?
调整并行度和任务槽数以提高资源利用率。
优化状态管理,选择合适的状态后端和状态存储位置。
调整缓冲区大小和网络参数以减少延迟和提高吞吐量。
使用异步I/O操作来提高外部数据存储的访问性能。
等等。具体的调优策略会根据作业的特点和运行环境而有所不同。
28:flink任务大状态时做过什么优化?
29:你们用flink做过实时数仓吗?你们的上下游的环境都是什么?全链路时效是多少?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。