《郭旸泽-深度解析Flink细粒度资源管理.pdf》由会员分享,可在线阅读,更多相关《郭旸泽-深度解析Flink细粒度资源管理.pdf(30页珍藏版)》请在三个皮匠报告上搜索。
1、郭旸泽/阿里巴巴深入解析Flink细粒度资源管理Deep dive into Flink fine-grained resource management细粒度资源管理与适用场景145632Flink资源调度框架基于SlotSharinGroup的资源配置接口动态资源切割机制资源申请策略总结与展望#1细粒度资源管理与适用场景粗粒度资源管理TaskManagerSlotSlotSlotSlotSlotCPUHeap MemoryOff-heap MemoryNetwork MemoryManaged Memoryflink-conf.yamltaskmanager.numberOfTaskSlo
2、ts:4taskmanager.memory.process.size:2048mtaskmanager.memory.task.heap.size:800mexternal-resources:gpuSlot资源请求均为UNKNOWNTaskManager的Slot个数与资源规格由配置静态决定ResourceRequirementN*UNKNOWNMatchExternal Resource粗粒度资源管理-对于多数简单作业,粗粒度可以满足需求-作业上下游并发数基本一致,可以放入同一个SlotSharingGroup中-不同算子的资源峰值时段不同,削峰填谷效应降低整体资源开销KafkaMapR
3、edis细粒度资源管理-对于一些复杂作业,粗粒度可能导致资源利用率降低KafkaKafkaRedisJOINKafkaJOIN128128321281632Redis8AGG16TensorFlow8All CachedWith GPULarge State-算子有不同的并发-整个Pipeline资源过大细粒度资源管理-将作业拆分成多个SlotSharingGroupKafkaKafkaRedisJOINKafkaJOIN128128321281632Redis8AGG16TensorFlow8All CachedWith GPULarge State-依然需要和最大的资源对齐-需要每个slo
4、t单独定制资源规格,按需申请细粒度资源管理-细粒度资源管理通过使作业各个模块按需申请并使用资源来提高资源使用效率-适用场景-上下游算子并发度有显著差异-整个Pipleline资源过大或包含扩展资源-批作业,不同stage消耗资源有显著差异#2Flink资源调度框架Flink资源调度框架JobMasterResourceManagerTaskManagerSlotSlotSlotDeclareResourceRequirementSlotAllocate SlotSlotRequestSchedulerSlotRequestSlotRequestSlotRequestDriverResource
5、 ProviderRequest ResourceStart TaskmanagerJobGraghSlotManager资源配置#3基于SlotSharingGroup的资源配置接口资源配置粒度OperatorTaskSlotSharingGroupChainingSlot SharingOperator为资源定义的最小粒度,Flink需要根据Chaining和Slot Sharing将资源聚合为Slot级别优势-将资源配置与Chaining和Slot Sharing逻辑解耦-使Flink可以更准确的计算每个Slot的资源缺点-用户配置成本过高-很难支持粗细粒度混合配置-放大资源错估影响资源
6、配置粒度OperatorTaskSlotSharingGroupChainingSlot Sharing将算子Chaining后的Task作为资源配置粒度,Flink需要向用户暴露Chaining的逻辑,并且根据Slot Sharing将资源聚合为Slot级别优势-将资源配置Slot Sharing逻辑解耦-使Flink可以更准确的计算每个Slot的资源缺点-依然过高的用户配置成本-很难支持粗细粒度混合配置-向用户暴露Chaining逻辑资源配置粒度OperatorTaskSlotSharingGroupChainingSlot Sharing将SlotSharingGroup直接作为资源配置