Flink面试题.pdf
Flink面试题.pdf大数据Flink知识点总结一、Flink运行架构Flink的运行架构主要由三个组件组成:JobManager、TaskManager和Client。Client是提交Job的客户端,可以运行在任何机器上,提交Job给JobManager,JobManager再调度任务到各个TaskManager去执行,然后TaskManager将心跳和统计信息汇报给JobManager。TaskManager之间以流的形式进行数据传输。JobManager主要负责调度Job并协调Task做checkpoint,职责上很像Storm的Nimbus。二、Flink作业执行流程Flink的作业执行流程可以分为以下步骤: 1.客户端将代码转化为可以提交的JobGraph 2.启动AM,申请资源3. Client将Job提交给Dispatcher 4. Dispatcher开启一个新的JobManager线程5. JM向Flink自己的ResourceManager申请slot资源来执行任务6. RM向Yarn申请资源来启动TaskManager 7. Yarn分配Container来启动TaskManger 8. Flink的RM向TM申请slot资源来启动Task 9. TM将待分配的slot提供给JM 10. JM提交Task,TM启动新的线程来执行任务三、Flink部署模式Flink可以以多种方式部署,包括standalone模式、Yarn模式、Mesos模式、Kubernetes模式、Docker模式、AWS模式、Google Compute Engine模式、MAPR等。其中,Yarn模式是最常用的部署模式。四、Flink on Yarn的部署有两种类型:Session共享Dispatcher和Resource Manager共享资源。Session模式需要先启动集群,然后在提交作业,而Resource Manager模式可以按照需求申请资源。如果资源满了,下一个作业就无法提交,只能等到yarn中的其中一个作业执行完成后,释放了资源,那下一个作业才会正常提交。五、Flink与Yarn集成Flink可以与Yarn集成,使用Yarn来管理资源和调度任务。Flink可以在Yarn上运行,可以使用Yarn的调度器来调度任务,也可以使用Flink自己的ResourceManager来管理资源。六、Flink的优点Flink有很多优点,包括: *高性能:Flink可以处理高吞吐量的数据流,具有高性能和低延迟。 *可扩展性:Flink可以水平扩展,满足大规模数据处理的需求。 *灵活性:Flink支持多种数据源和sink,支持多种编程语言和API。 *可靠性:Flink具有高可靠性,具有自动故障恢复和重试机制。七、Flink的应用场景Flink有很多应用场景,包括: *实时数据处理:Flink可以处理高吞吐量的实时数据流,满足实时数据处理的需求。 *数据集成:Flink可以集成多种数据源,满足数据集成的需求。 *数据分析:Flink可以对数据进行实时分析和处理,满足数据分析的需求。 *机器学习:Flink可以与机器学习平台集成,满足机器学习的需求。
下载地址
用户评论