开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink的OpenAPI ListJobs,能否添加currentJobStatus的筛选?

Flink的OpenAPI ListJobs,能否添加currentJobStatus的筛选?
目前想获取某个部署的当前在运行的JobId,怕Job太多

展开
收起
三分钟热度的鱼 2023-11-22 19:49:21 100 0
5 条回答
写回答
取消 提交回答
  • Flink的OpenAPI ListJobs 目前并未提供 currentJobStatus 的筛选功能。可以通过 Flink Web UI 查看正在运行的 Job 列表,并从中获取所需 Job 的 JobId。也可以通过 Flink Rest API 获取 Job 的状态信息。具体来说,可以使用 GET /jobs/:jobid/status 接口来获取某个 Job 的状态信息。其中,:jobid 是需要查询的 Job 的 Id。自动化地获取正在运行的 Job 的 JobId,可以编写一个脚本定期通过 Flink Rest API 获取 Job 列表,并从中筛选出正在运行的 Job 的 JobId。

    2023-11-28 16:49:05
    赞同 展开评论 打赏
  • Apache Flink的OpenAPI并没有提供直接获取当前正在运行的JobId的功能。你可以通过调用ListJobs接口来获取所有的JobId,然后通过调用DescribeJob接口来获取每个Job的状态,从而找到当前正在运行的JobId。

    以下是一个Python示例,展示了如何实现这个功能:

    import requests
    
    # 替换为你的Flink REST API地址
    rest_api_url = "http://localhost:8081/jobmanager/rest/v1/"
    
    # 获取所有的JobId
    response = requests.get(rest_api_url + "jobs")
    jobs = response.json()["jobs"]
    
    # 遍历所有的JobId,并获取每个Job的状态
    for job in jobs:
        job_id = job["jobid"]
        response = requests.get(rest_api_url + "jobs/" + job_id + "/status")
        job_status = response.json()["jobstatus"]
    
        if job_status == "RUNNING":
            print("Running job:", job_id)
    

    在这个示例中,我们首先调用ListJobs接口来获取所有的JobId。然后,我们遍历所有的JobId,并调用DescribeJob接口来获取每个Job的状态。如果Job的状态为"RUNNING",我们就打印出这个JobId。

    2023-11-28 10:58:14
    赞同 展开评论 打赏
  • 在 Apache Flink 的 OpenAPI 中,ListJobs 接口返回的是所有作业的列表,它并没有提供直接筛选或搜索当前状态的作业的功能。它返回的作业列表中,每个作业的信息包括 id、name、state 等。

    要获取当前正在运行的作业(即状态为 RUNNING 的作业),你需要遍历返回的作业列表,然后根据状态筛选出正在运行的作业。

    2023-11-26 18:15:29
    赞同 展开评论 打赏
  • 在 Apache Flink 的 OpenAPI 中,listJobs 方法返回的是所有在 Flink 集群中运行的任务的状态信息。然而,该方法本身并不提供筛选或搜索功能。
    要获取特定部署的当前在运行的 JobId,您可以通过以下步骤进行操作:
    1.使用 listJobs 方法获取所有任务的列表。
    2.在获取到的任务列表中,遍历每个任务以查找符合您特定条件的任务。
    3.检查每个任务的名称、描述或其他相关属性,以确定是否与您要查找的部署匹配。
    4.如果找到匹配的部署,检查该任务的状态,获取其 JobId。
    由于 Flink 的任务列表中可能包含大量任务,遍历和筛选任务可能会耗费一些时间。为了减少搜索时间,您可以考虑以下方法:
    1.在搜索之前,先对任务列表进行排序或过滤,以缩小搜索范围。例如,您可以根据任务名称或描述的关键字进行排序,以便更快地找到匹配的部署。
    2.如果可能的话,将部署的相关信息存储在外部系统或数据库中,以便快速检索。这样,您可以根据部署的唯一标识符(如名称、ID 等)直接查询特定部署的相关信息,包括其当前的 JobId。

    2023-11-23 09:40:54
    赞同 展开评论 打赏
  • 目前还不行,后续会完善。此回答整理自钉群“实时计算Flink产品交流群”

    2023-11-22 19:56:39
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载