<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Flink 調(diào)試 | Flink On Yarn 遠(yuǎn)程調(diào)試

          共 1652字,需瀏覽 4分鐘

           ·

          2022-04-24 18:57


          大家好,我是 JasonLee。

          前幾天有小伙伴問我,我寫的 Flink 代碼是提交到 yarn 上去運(yùn)行的,那我怎么能遠(yuǎn)程調(diào)試代碼呢?在本地調(diào)試代碼大家都非常熟悉了,直接在 IDEA 里面打個(gè)斷點(diǎn),然后以 debug 模式啟動(dòng)就可以一步步調(diào)試代碼了。其實(shí) Flink on yarn 遠(yuǎn)程調(diào)試也不復(fù)雜,只需要簡單的配置即可。

          集群配置(flink-conf.yaml)

          在 flink-conf.yaml 配置文件中添加下面三行配置

          #?遠(yuǎn)程調(diào)試
          env.java.opts.client:?-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5666
          env.java.opts.jobmanager:?-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
          env.java.opts.taskmanager:?-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5006

          dt_socket:使用的通信方式

          server:是主動(dòng)連接調(diào)試器還是作為服務(wù)器等待調(diào)試器連接

          suspend:是否在啟動(dòng) JVM 時(shí)就暫停,并等待調(diào)試器連接(建議設(shè)置成 y)

          address:地址和端口,地址可以省略,兩者用冒號分隔

          這里你可以選擇只設(shè)置 client,jobmanager,taskmanager 其中一個(gè),也可以同時(shí)設(shè)置 client,jobmanager,taskmanager,因?yàn)?JM 和 TM 可能會(huì)在同一臺機(jī)器上面可能會(huì)發(fā)生沖突,所以就把 JM 和 TM 分開單獨(dú)設(shè)置,當(dāng)然調(diào)試的時(shí)候也可以先從 client -> jobmanager -> taskmanager 整個(gè)啟動(dòng)流程。

          Client 端的入口類是:org.apache.flink.client.cli.CliFrontend

          JM 的入口是:org.apache.flink.runtime.entrypoint.ClusterEntrypoint

          TM 的入口是:org.apache.flink.runtime.taskexecutor.TaskManagerRunner

          IDEA 配置


          idea

          按照上面的配置添加一個(gè) remote JVM debug,注意端口需要和 flink-conf.yaml 配置文件里面的保持一致。

          提交 Flink 任務(wù)

          flink?run?-d?-m?yarn-cluster?-Dyarn.application.name=FlinkStreamingNewDemoHome?-Dyarn.application.queue=flink?-Dmetrics.reporter.promgateway.groupingKey="jobname=FlinkStreamingNewDemoHome"?-Dmetrics.reporter.promgateway.jobName=FlinkStreamingNewDemoHome?-c?flink.stream.FlinkStreamingNewDemo?-Denv.java.opts="-Dflink_job_name=FlinkStreamingNewDemoHome"?/home/jason/bigdata/jar/flink-1.14.x-1.0-SNAPSHOT.jar

          注意要先把任務(wù)提交到 yarn 上。然后在 idea 里面遠(yuǎn)程調(diào)試。比如我想要調(diào)試客戶端的解析流程,只需要在 CliFrontend 構(gòu)造方法里面設(shè)置了一個(gè)斷點(diǎn)就行了。

          如果你只想調(diào)試自己的代碼,就直接在相關(guān)的位置打個(gè)斷點(diǎn),等待 JM 和 TM 拉起來,走到自己代碼位置就會(huì)自動(dòng)跳到斷點(diǎn)里面,然后就和在本地調(diào)試沒什么區(qū)別了。


          瀏覽 66
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  男女激情综合福利网站在线观看 | 无码无套少妇毛多69XXX 亚洲一日韩一欧美一级A片么 | 久久成人免费网 | 亚洲无码专区区免费 | 国产精品三区视频 |