【Flink Rest-ful API 】

2023-11-16

          Flink 有了一些查询job状态指标的API,这些监控 API is a REST-ful API 接受 HTTP 请求并返回JSON data ;这些监控API以jobManager中web server 为基础,默认其监听端口为8081,当然你可以在flink-conf.yaml 配置中通过 rest.port 自定义其端口,下面我们就对其REST-ful API 进行尝试。

   一: Flink 上传JAR包REST-ful API   

      请求方式:POST

     请求路径:http://localhost:8081/jar/upload

     请求头: application/x-java-archive

POST  http://localhost:8081/jars/upload 
说明 The jar must be sent as multi-part data. Make sure that the "Content-Type" header is set to "application/x-java-archive"
另外一个方式,可以尝试用下面请求提交jar包
 curl -X POST --header "Except:" -F "jarfile=@/home/opt/dbappLot-flink-1.0-SNAPSHOT-jar-with-dependencies.jar" http://localhost:8081/jars/upload

其返回值:
{"filename":"/tmp/flink-web-26298886-4da6-4bf4-b635-fa301dee092e/flink-web-upload/82ea69b3-27c5-469d-992a-82be8c3d929d_dbappLot-flink-1.0-SNAPSHOT-jar-with-dependencies.jar","status":"success"}
其中filename 为存在地址
其中82ea69b3-27c5-469d-992a-82be8c3d929d_dbappLot-flink-1.0-SNAPSHOT-jar-with-dependencies.jar  为jarid

二:查看JAR包ID REST-ful API

请求   GET  http://localhost:8081/jars
返回值:
{
    "address": "http://localhost:8081",
    "files": [
        {
            "id": "82ea69b3-27c5-469d-992a-82be8c3d929d_dbappLot-flink-1.0-SNAPSHOT-jar-with-dependencies.jar",
            "name": "dbappLot-flink-1.0-SNAPSHOT-jar-with-dependencies.jar",
            "uploaded": 1617180292000,
            "entry": [
                {
                    "name": "com.dbapp.main.ApplicationMain",
                    "description": null
                }
            ]
        }
    ]
}

三:启动JOB REST-ful API 

      请求方式:POST

     请求路径:http://localhost:8081/jar/{jarId}/run

请求   POST  http://localhost:8081/jars/82ea69b3-27c5-469d-992a-82be8c3d929d_dbappLot-flink-1.0-SNAPSHOT-jar-with-dependencies.jar/run
在请求中可以带上参数
allowNonRestoredState (optional): Boolean value that specifies whether the job submission should be rejected if the savepoint contains state that cannot be mapped back to the job.
savepointPath (optional): String value that specifies the path of the savepoint to restore the job from.
programArg (optional): Comma-separated list of program arguments.
entry-class (optional): String value that specifies the fully qualified name of the entry point class. Overrides the class defined in the jar file manifest.
parallelism (optional): Positive integer value that specifies the desired parallelism for the job.

POST  http://localhost:8081/jars/82ea69b3-27c5-469d-992a-82be8c3d929d_dbappLot-flink-1.0-SNAPSHOT-jar-with-dependencies.jar/run? parallelism =2


1、http://192.168.196.3:8081/jars/a9ffd519-5222-40aa-9228-22464417a055_examples-java-1.0.jar/run?entry-class=io.github.streamingwithflink.demo.BatchCountFromJdbc&programArgsList=--bootstrap.servers hadoop2.test.yunwei.puppet.dh:6667,hadoop3.test.yunwei.puppet.dh:6667,hadoop4.test.yunwei.puppet.dh:6667 --group.id m3gcn_tab_map_race_3 --client.id m3gcn_tab_map_race_3 --config.file hdfs://DHTestCluster/user/gezhihui/flink/configuration/m3gcn_tab_map_race2.txt --job.name m3gcn_tab_map_race
2、http://localhost:8081/jars/java-3.0.jar/run
{
    "entryClass":"streamingwithflink.ApplicationMain"
    "programArgsList": [
        "--name",
        "wen"]
}
 
请求体中的programArgsList可以传值到main函数的string[]args,取值可以通过ParameterTool parameters = 
ParameterTool.fromArgs(args);String name = parameters.get("name");所以他的key-value的格式是key为"--key"或者"-key",
value为key的下一行,根据上述代码,value不要以"-"作为开头,这里也可以自己去解析String[],这里args就对应我们programArgsList
的传参,如3所示
 
3、http://localhost:8081/jars/java-2.0.jar/run
{
    "entryClass":"streamingwithflink.ApplicationMain"
    "programArgsList": [
        "--name",
        "wen"]

}

其放回值为:

{
    "jobid": "c18ac90bea03abcbc117a85a1080ba3b"
}

四:查看  JOB REST-ful API 

     请求方式:GET

     请求路径:http://localhost:8081/jobs

    返回值:{"jobs":[{"id":"c18ac90bea03abcbc117a85a1080ba3b","status":"RUNNING"},{"id":"43948e17785acc47deb6344d9165c6b3","status":"CANCELED"}]}

五:获取JOB详细信息  REST-ful API 

     请求方式:GET

     请求路径:http://localhost:8081/jobs/{jobId}

     返回值:

{
    "jid": "c18ac90bea03abcbc117a85a1080ba3b",
    "name": "jobName",
    "isStoppable": false,
    "state": "RUNNING",
    "start-time": 1617189444432,
    "end-time": -1,
    "duration": 374118,
    "now": 1617189818550,
    "timestamps": {
        "RESTARTING": 0,
        "FINISHED": 0,
        "CANCELED": 0,
        "FAILING": 0,
        "RECONCILING": 0,
        "RUNNING": 1617189444440,
        "SUSPENDED": 0,
        "FAILED": 0,
        "CANCELLING": 0,
        "CREATED": 1617189444432
    },
    "vertices": [
        {
            "id": "cbc357ccb763df2852fee8c4fc7d55f2",
            "name": "Source: dbappLot_kafkaSource -> flattenJson -> avitorMap -> schemaMap -> unFlattenJson -> (Sink: Print to Std. Out, Sink: KafkaSink)",
            "parallelism": 1,
            "status": "RUNNING",
            "start-time": 1617189444517,
            "end-time": -1,
            "duration": 374033,
            "tasks": {
                "CANCELED": 0,
                "SCHEDULED": 0,
                "RUNNING": 1,
                "FINISHED": 0,
                "RECONCILING": 0,
                "CREATED": 0,
                "FAILED": 0,
                "DEPLOYING": 0,
                "CANCELING": 0
            },
            "metrics": {
                "read-bytes": 0,
                "read-bytes-complete": false,
                "write-bytes": 0,
                "write-bytes-complete": false,
                "read-records": 0,
                "read-records-complete": false,
                "write-records": 0,
                "write-records-complete": false
            }
        }
    ],
    "status-counts": {
        "CANCELED": 0,
        "SCHEDULED": 0,
        "RUNNING": 1,
        "FINISHED": 0,
        "RECONCILING": 0,
        "CREATED": 0,
        "FAILED": 0,
        "DEPLOYING": 0,
        "CANCELING": 0
    },
    "plan": {
        "jid": "c18ac90bea03abcbc117a85a1080ba3b",
        "name": "jobName",
        "nodes": [
            {
                "id": "cbc357ccb763df2852fee8c4fc7d55f2",
                "parallelism": 1,
                "operator": "",
                "operator_strategy": "",
                "description": "Source: dbappLot_kafkaSource -> flattenJson -> avitorMap -> schemaMap -> unFlattenJson -> (Sink: Print to Std. Out, Sink: KafkaSink)",
                "optimizer_properties": {}
            }
        ]
    }
}

六:关闭JOB REST-ful API 

     请求方式:PATCH

     请求路径:http://localhost:8081/jobs/{jobId}

     返回值:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Flink Rest-ful API 】 的相关文章

  • Flink实战之实时风控规则引擎

    问题导读 1 怎样构建一个风控业务架构 2 风控规则模型有哪些 3 怎样实现Flink CEP 动态更新 一 项目背景 目前钱大妈基于云原生大数据组件 DataWorks MaxCompute Flink Hologres 构建了离线和实时
  • Flink实时任务性能调优

    前言 通常我们在开发完Flink任务提交运行后 需要对任务的参数进行一些调整 通常需要调整的情况是任务消费速度跟不上数据写入速度 从而导致实时任务出现反压 内存GC频繁 FullGC 频繁 内存溢出导致TaskManager被Kill 今天
  • Flink 1.17教程:基本合流操作

    基本合流操作 在实际应用中 我们经常会遇到来源不同的多条流 需要将它们的数据进行联合处理 所以Flink中合流的操作会更加普遍 对应的API也更加丰富 联合 Union 最简单的合流操作 就是直接将多条流合在一起 叫作流的 联合 union
  • Flink---1、概述、快速上手

    1 Flink概述 1 1 Flink是什么 Flink的官网主页地址 https flink apache org Flink的核心目标是 数据流上有状态的计算 Stateful Computations over Data Stream
  • flink源码阅读---Flink intervalJoin 使用和原理分析

    1 前言 Flink中基于DataStream的join 只能实现在同一个窗口的两个数据流进行join 但是在实际中常常会存在数据乱序或者延时的情况 导致两个流的数据进度不一致 就会出现数据跨窗口的情况 那么数据就无法在同一个窗口内join
  • Flink-cdc 同步mysql数据

    下载地址 https github com ververica flink cdc connectors releases 这里下载2 2 0版本 https github com ververica flink cdc connector
  • 【Flink Rest-ful API 】

    Flink 有了一些查询job状态指标的API 这些监控 API is a REST ful API 接受 HTTP 请求并返回JSON data 这些监控API以jobManager中web server 为基础 默认其监听端口为8081
  • 深入理解Flink的水位线

    Apache Flink是一个流处理框架 它支持事件时间和处理时间的概念 在处理流数据时 Flink通过水位线 Watermark 来追踪事件时间的进度 从而支持事件时间的操作 水位线是一种特殊的事件 它表示在此时间戳之前的所有事件都已经到
  • 【Flink】处理函数Process

    目录 处理函数 基本处理函数 ProcessFunction 处理函数的功能 ProcessFunction解析 处理函数的分类 按键分区处理函数 KeyedProcessFunction 定时器Timer 和定时服务 TimerServi
  • Flink State 和 Fault Tolerance详解

    有状态操作或者操作算子在处理DataStream的元素或者事件的时候需要存储计算的中间状态 这就使得状态在整个Flink的精细化计算中有着非常重要的地位 记录数据从某一个过去时间点到当前时间的状态信息 以每分钟 小时 天汇总事件时 状态将保
  • 【面试真题】今日头条大数据面试100题,收藏备用

    1 简述WordCount 的实现过程 2 简述MapReduce与 Spark 的区别与联系 3 Spark 在客户端与集群运行的区别 4 相同的 SQL 在 HiveSql 与 SparkSQL 的实现中 为什么 Spark 比 Had
  • 【大数据】Flink 详解(三):核心篇 Ⅱ

    本系列包含 大数据 Flink 详解 一 基础篇 大数据 Flink 详解 二 核心篇 大数据 Flink 详解 三 核心篇 大数据 Flink 详解 四 核心篇 大数据 Flink 详解 五 核心篇 大数据 Flink 详解 六 源码篇
  • 大数据技术之 Flink-CDC

    第1章 CDC简介 1 1 什么是 CDC CDC 是 Change Data Capture 变更数据获取 的简称 核心思想是 监测并捕获数据库的变动 包括数据或数据表的插入 更新以及删除等 将这些变更按发生的顺序完整记录下来 写入到消息
  • Flink消费kafka出现空指针异常

    文章目录 出现场景 表现 问题 解决 tombstone Kafka中提供了一个墓碑消息 tombstone 的概念 如果一条消息的key不为null 但是其value为null 那么此消息就是墓碑消息 出现场景 双流join时 采用的是l
  • 如何在 Flink 1.9 中使用 Hive?

    Flink on Hive 介绍 SQL 是大数据领域中的重要应用场景 为了完善 Flink 的生态 发掘 Flink 在批处理方面的潜力 我们决定增强 FlinkSQL 的功能 从而让用户能够通过 Flink 完成更多的任务 Hive 是
  • flink大数据处理流式计算详解

    flink大数据处理 文章目录 flink大数据处理 二 WebUI可视化界面 测试用 三 Flink部署 3 1 JobManager 3 2 TaskManager 3 3 并行度的调整配置 3 4 区分 TaskSolt和parall
  • 流计算框架 Flink 与 Storm 的性能对比

    概述 将分布式实时计算框架 Flink 与 Storm 进行性能对比 为实时计算平台和业务提供数据参考 一 背景 Apache Flink 和 Apache Storm 是当前业界广泛使用的两个分布式实时计算框架 其中 Apache Sto
  • 【基础】Flink -- ProcessFunction

    Flink ProcessFunction 处理函数概述 处理函数 基本处理函数 ProcessFunction 按键分区处理函数 KeyedProcessFunction 定时器与定时服务 基于处理时间的分区处理函数 基于事件时间的分区处
  • 【双流(1)|原理】flink 双流join原理(1)Interval Join:state过大? 回撤现象出现时,sink如何处理,还有如何优化回撤?数据出现shuffle时join是如何处理的?

    先思考几个问题 双流join的基本原理是什么 双流join的分类有哪些 具体的实现是什么 双流join产生的问题 回撤的情况以及优化的可能性 多流join数据倾斜与性能优化思路 多流join的可能性 文章目录 一 流的join和表的join
  • 【flink番外篇】4、flink的sink(内置、mysql、kafka、redis、clickhouse、分布式缓存、广播变量)介绍及示例(8) - 完整版

    Flink 系列文章 一 Flink 专栏 Flink 专栏 系统介绍某一知识点 并辅以具体的示例进行说明 1 Flink 部署系列 本部分介绍Flink的部署 配置相关基础内容 2 Flink基础系列 本部分介绍Flink 的基础部分 比

随机推荐

  • Numpy章节 2 数学函数

    章节 2 数学函数 1 通用函数 ufuncs 的使用 NumPy提供了各种通用函数 ufuncs 用于对数组进行逐元素的数学运算 这些函数可以对数组进行向量化操作 提高运算效率 示例代码 arr np array 1 2 3 4 5 平方
  • MySQL学习_01

    SQL通用语法 1 SQL 语句可以单行或多行书写 以分号结尾 2 MySQL 数据库的 SQL 语句不区分大小写 关键字建议使用大写 3 注释 单行注释 注释内容 或 注内容 MySQL 特有 多行注释 注释 SQL分类 DDL Data
  • Springmvc之JSR303和拦截器

    JSR303 拦截器 1 JSR303 什么是JSR303 JSR是Java Specification Requests的缩写 意思是Java 规范提案 是指向JCP Java Community Process 提出新增一个标准化技术规
  • pom是什么意思

  • 什么是TDD?

    作为手机硬件开发者来说 TDD问题的debug绝对是最有意思的一件事情 即使你有再丰富的手机行业开发经验 在前期的设计中都不一定能完美的排掉这个雷 同时在后期发现问题的debug中 也会走很多弯路 所以TDD问题一直是手机开发者头疼的问题
  • 最新VLC命令行参数大全(一)

    用法 vlc 选项 流 您可以在命令行中指定多个流 它们将被加入播放列表队列 指定的首个项目将被首先播放 选项风格 选项 用于设置程序执行期间的全局选项 选项 单字母版本的全局 选项 选项 仅对此选项之前的单条流生效 且优先级高于先前的设置
  • 细说三极管

    文章目录 前言 一 什么是三极管 二 三极管是哪三级 1 基极 2 集电极 3 发射极 三 三极管的分类 1 根据材料 2 根据结构 3 根据功率 4 根据工作频率 5 根据制作工艺 6 根据制外形封装 7 根据用途 四 三极管的工作原理
  • Adobe新的AI产品开放公测!Firefly带来全新的制图体验,让你效率翻倍!

    随着midjourney 还是Stable Diffusion 以及各式各样的AI绘图网站的出现 Adobe也推出AI绘图工具 Firefly 这款产品目前免费开放公测 未来将结合Photoshop Illustrator 等Adobe软件
  • 合宙Air101+蓝牙模块,实现手机控制舵机转动

    器材 蓝牙模块JDY33 合宙Air101 接线 JDY33的串口接Air101的串口1 TX U1 RX PB 07 RX U1 TX PB 06 舵机信号线接Air101PWM0 PB 00 main lua LuaTools需要PRO
  • MIPI入门——DCS介绍

    DCS Display Command Set 即显示 控制 命令集 是DSI协议中所使用的相关 控制 命令的一个集合 显示设备 如LCD 厂商可以选择性地部分 或全部 实现DCS文档中规定的命令 为了便于理解下面的内容 首先介绍一下DSI
  • sqli-labs(24)

    这个关卡可能有时候会出现一些小问题 有时候登陆后是没有修改密码的选项的 这是因为有时候解压时logged in php文件解压不正确 重新解压即可 本关卡为二次注入 其产生原因是 服务器端虽然对用户的直接输入做了一些过滤或者将一些字符进行转
  • 数字经济专家高泽龙谈“金融元宇宙”与“元宇宙金融”

    开始聊所有话题之前 必须先说说 金融元宇宙 或者 元宇宙金融 的概念和定义 当然 前提是搞清楚 金融 和 元宇宙 百度百科中 金融 的定义 金融 Finance Finaunce 是市场主体利用金融工具将资金从资金盈余方流向资金稀缺方的经济
  • Python读取文件时出现UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position xx: 解决方案

    Python在读取文件时 with open article txt as f 打开新的文本 text new f read 读取文本数据 出现错误 UnicodeDecodeError gbk codec can t decode byt
  • electron autoUpdater热更新

    最近创建了一个electron vue项目 用到了热更新 先看效果图 话不多说 直接上代码 main目录下创建update js 代码如下 安装包helatest yml所在服务器地址 const uploadUrl http 127 0
  • 金山WPS暑期实习招聘笔试题2013-7-28

    C 试卷B卷 应聘职位1 2 姓 名 性 别 学 位 所在院校 所学专业 联系电话 电子邮件 毕业时间 获知招聘信息渠道 说明 答题时间为 100 分钟 自我判断题 请选择最符合您本人意愿的一项 1 你
  • 从项目实施层面解析STEAM教育

    转自 https baijiahao baidu com s id 1614434815561381532 wfr spider for pc 一 引言 近几年大家常常听到STEAM教育这个词 似乎一夜之间所有的培训机构的课程都变成了STE
  • 第9章_瑞萨MCU零基础入门系列教程之SCI I2C

    本教程基于韦东山百问网出的 DShanMCU RA6M5开发板 进行编写 需要的同学可以在这里获取 https item taobao com item htm id 728461040949 配套资料获取 https renesas do
  • Android-SharedPreferences实现记住密码和自动登录

    效果图 第一次进入进来 勾选记住密码和自动登录成功后 第二次进来 说明 中间存在的图片或者多余的其他部分可删掉 留下最主要的填写部分和登陆按钮即可 功能还是可以实现的 XML文件
  • QQ飞车手游设计分析

    腾讯系竞速手游的逆袭 QQ飞车手游设计分析 前言 这是中山大学数据科学与计算机学院软件工程2019年3D游戏编程与设计的作业1 导语 在中国巨大的游戏市场下 手游战场上的战火从未熄灭 其中以王者荣耀为首的MOBA类手游与以PUBG 现改名和
  • 【Flink Rest-ful API 】

    Flink 有了一些查询job状态指标的API 这些监控 API is a REST ful API 接受 HTTP 请求并返回JSON data 这些监控API以jobManager中web server 为基础 默认其监听端口为8081