对Flink集群进行远程调试


导读:在学习或者使用各个大数据框架的时候,往往想对runtime层次的代码进行调试或者跟踪阅读,但其往往部署在其他机器上,因此需要进行远程调试。本文以Flink为例,介绍如何通过IDEA进行Flink的runtime层次的远程调试。



环境:
  Flink1.4.2
  IntelliJ IDEA
  虚拟机模拟的Flink集群


先对Flink的作业提交过程进行简单介绍(以批处理为例):
  用户写完的代码,会被转化为plan,之后plan会被优化成OptimizedPlan,并转化成JobGraph,得到JobGraph后,Client会将JobGraph提交给JobManager,由JobManager将JobGraph转化为ExecutionGraph,之后再ExecutionGraph中的各个Task部署到各个slave上,进行计算。过程为:
  Plan–>OptimizedPlan–>JobGraph–>ExecutionGraph–>执行
  其中Plan到生成JobGraph都是Client端完成的,之后则是JobManager和TaskManager完成的。
具体如下图所示:

远程调试
  

接下来以调试JobManager为例,介绍详细步骤:
step1:
  在flink/bin目录下的jobmanager.sh脚本中,添加:

export JVM_ARGS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

  其中suspend=n用于设置是否阻塞,address用于设置端口。
step2:
  通过bin/start-cluster.sh启动flink集群。
step3:
  在IDEA中设置远程调试:
点击Run–>Edit Configuration–> + -->Remote完成远程调试的配置。

远程调试1
远程调试2
远程调试3
step4:
  在JobManager.scala类中打上断点,并点击Debug(注意选择之前配置好的远程调试)。

远程调试4
  点击后会出现如下界面,等待连接:

远程调试5
step5:
  在集群中通过flink run进行任务的提交。

远程调试6
step6:
   大功告成!

远程调试7

PS:由于runtime层经常会有多线程之类的,可能在打断点的时候,需要选择Thread模式,如下图:
远程调试8
具体还是多实践吧~!

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Linux Flink集群是指基于Linux操作系统并使用Flink框架来构建的集群计算环境。Flink是一种流式处理引擎,用于处理大规模的数据流。Linux作为操作系统,具有良好的稳定性和可靠性,能够提供高效的系统资源管理和任务调度能力。 在一个Linux Flink集群中,通常包含一个主节点和多个工作节点。主节点负责协调整个集群的工作,包括任务的调度、资源的分配和监控等。工作节点是真正执行计算任务的节点,它们从主节点接收任务,并按照任务的要求进行计算和处理。 Linux Flink集群的搭建需要注意以下几点。首先,需要保证所有节点上已经安装并配置好了Linux操作系统。其次,需要在集群中选择一台作为主节点,并在该节点上安装Flink框架,并通过配置文件指定其他工作节点的地址和角色。然后,需要在所有工作节点上安装并配置好Flink框架。最后,需要确保主节点和工作节点之间可以相互通信,以便进行任务的分发和结果的传递。 在Linux Flink集群中,可以通过Flink的API或者命令行工具提交和管理任务。Flink提供了丰富的功能和算子,可以支持各种数据处理需求,包括流式处理、批处理和机器学习等。此外,Flink还提供了容错机制和故障恢复能力,保证了系统的可靠性和稳定性。 总结来说,Linux Flink集群提供了一个高效、稳定和可靠的计算环境,可以用于处理大规模的数据流。它充分发挥了Linux操作系统的优势,同时利用了Flink框架的各种功能和算子,为用户提供了一个强大而灵活的数据处理平台。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值