<p id="m2nkj"><option id="m2nkj"><big id="m2nkj"></big></option></p>
    <strong id="m2nkj"></strong>
    <ruby id="m2nkj"></ruby>

    <var id="m2nkj"></var>
  • 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)
    <p id="m2nkj"><option id="m2nkj"><big id="m2nkj"></big></option></p>
    <strong id="m2nkj"></strong>
    <ruby id="m2nkj"></ruby>

    <var id="m2nkj"></var>
  • 黄片www. | 91成人三级 | 爱视频福利广场 | 免费A片在线 | 亚洲无码理论 | 最新最近日本中文字幕不亚洲 | 精品一区二区久久久久久无码小说 | 日本免费特黄一级片 | 嫩草97| 中文字幕日韩一级 |