Re:Re: Re: FlinkSQL 是否支持类似临时中间表的概念

2020-06-23 文章 chenxuying
你好,请问下,my_parse是个udf吧
然后有没有什么操作可以使用udtf解析出多个字段 , 这些字段直接就是source表的字段 , 然后选出时间字段定义 watermark ,
类似如下
CREATE TABLE sourceTable(
request_uri STRING,
(column_1,column_2,heart_time) as udtf_parse(request_uri)
)with(..);
哈哈,不知道有没有这样的语法











在 2020-06-24 12:24:46,"Jark Wu"  写道:
>你可以在 DDL 中直接用计算列去从 request_uri 里获得 heart_time 哈,然后在这个计算列上定义 watermark 即可。
>例如:
>
>CREATE TABLE sourceTable (
>  request_uri STRING,
>  heart_time AS my_parse(request_uri),
>  WATERMARK FOR heart_time AS heart_time - INTERVAL '1' SECOND
>) WITH ( ... );
>
>虽然这会导致重复解析两遍。
>
>
>Best,
>Jark
>
>On Wed, 24 Jun 2020 at 12:09, Weixubin <18925434...@163.com> wrote:
>
>>
>>
>>
>> 感谢你提供了子查询的思路,不过经过试验后有点可惜,这似乎还是满足不了我们的需求。
>>
>>
>> 我们的场景是从阿里云SLS读取消息。每条消息有一个字段是request_uri。
>> 第一个数据处理过程就是将 request_uri 解析为多个属性(多列),存成一行,作为一条记录。
>> 第二个数据处理过程就是将每条记录里的 声明heart_time为事件时间属性并使用5秒延迟水印策略,进行开窗聚合处理。
>>
>>
>> //如果应用到子查询的话,Flink是不支持这样做的。WATERMARK FOR 水印声明只能在DDL里应用。如下:
>> select
>> ..ts as TO_TIMESTAMP(heart_time,'-MM-ddHH:mm:ss') ,
>> WATERMARK FOR ts AS ts - INTERVAL '1' SECOND
>>  from sourceTable , LATERAL TABLE(ParseUriRow(request_uri)) as T( )….·
>>
>>
>> //如果应用到source,则一开始并不知道heart_time 的值
>> CREATE TABLE sourceTable (
>>   request_uri STRING
>> ..ts as TO_TIMESTAMP(heart_time,'-MM-ddHH:mm:ss') ,
>> WATERMARK FOR ts AS ts - INTERVAL '1' SECOND
>> ) WITH ( ... );
>>
>>
>> 只能等待Flink 1.11 尝试是否可以用View作为中间临时表,并对View进行 WATERMARK水印声明
>> Thanks
>> Bin
>>
>> 在 2020-06-23 15:28:50,"Leonard Xu"  写道:
>> >Hi
>> >我的意思是你如果中间结果表如果要输出,那你就一个sink写到中间结果表(什么表根据你的需要),一个sink写到你的最终结果表,在这两个sink之前的`select
>> * from sourceTable , LATERAL TABLE(ParseUriRow(request_uri)) as T( )….`
>> 的这段sql是可以复用的,就和 VIEW的作用类似。
>> >
>> >如果你不需要中间结果表,只是要最终的结果表,那你写个嵌套的sql就行了,里层是`select * from sourceTable ,
>> LATERAL TABLE(ParseUriRow(request_uri)) as T( )….·,外层是 group by,
>> 插入最终的结果表就能满足需求了吧。
>> >
>> >祝好,
>> >Leonard Xu
>> >
>> >
>> >> 在 2020年6月23日,15:21,Weixubin <18925434...@163.com> 写道:
>> >>
>> >>
>> >>
>> >>
>> >> Hi,
>> >> 关于这句 “把 ` select * from sourceTable , LATERAL
>> TABLE(ParseUriRow(request_uri)) as T( )….` 这段 sql insert 到中间结果表 和
>> group后再写入最终结果表就可以了”
>> >> 我不太明白所说的中间结果表是什么意思, 我所理解为在数据库创建多一张middleSinkTable表,作为中间结果表。请问这样理解是否有误?
>> 可否简单举个例子。
>> >> Thanks,
>> >> Bin
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> 在 2020-06-23 11:57:28,"Leonard Xu"  写道:
>> >>> Hi,
>> >>> 是的,这个是在 FLINK 1.11 的版本里支持的,当前 FLINK 1.11代码已经冻结,正在测试中,最近应该快发布了,所以master
>> 分支上的版本号为1.12-SNAPSHOT
>> >>> ,等1.11版本发布了就可以看到对应的文档。
>> >>>
>> >>> 回到这个问题,flink sql(blink planner) 支持 multiple-sinks 的, 在 1.10
>> 版本也可以一个作业搞定。 把 `  select * from sourceTable , LATERAL
>> TABLE(ParseUriRow(request_uri)) as T( )….`  这段 sql insert 到中间结果表 和
>> group后再写入最终结果表就可以了。效果和使用 VIEW 应该类似,因为 planner 会做分段优化。
>> >>> 另外建议使用1.10.1版本,1.10.1在1.10的基础上修复了不少bug,也可以等1.11发布了试用下1.11。
>> >>>
>> >>>
>> >>> 祝好,
>> >>> Leonard Xu
>> >
>>


?????? flink???????????????? flink last checkpoint ???????????????????????????? state ??????????????

2020-06-23 文章 cs
??checkpoint??
StreamExecutionEnvironment.getCheckpointConfig().setFailOnCheckpointingErrors(true);
/**
 * Sets the expected behaviour for tasks in case that they encounter an error 
in their checkpointing procedure.
 * If this is set to true, the task will fail on checkpointing error. If this 
is set to false, the task will only
 * decline a the checkpoint and continue running. The default is true.
 */
public void setFailOnCheckpointingErrors(boolean failOnCheckpointingErrors) {
   this.failOnCheckpointingErrors = failOnCheckpointingErrors;
}


--  --
??: "LakeShen"

??????flink open ???? transient??????????

2020-06-23 文章 kcz
??state




--  --
??: ""<13162790...@163.com>;
: 2020??6??24??(??) 1:36
??: "user-zh"

Re:flink open 时候 transient使用问问题

2020-06-23 文章 程龙












1 首先transient 是对修饰的变量不进行序列化
2 你使用transient的目的需要明确 使用来干啥的
3 状态都是可以读取并且使用的 不进行序列化

在 2020-06-24 11:37:09,"kcz" <573693...@qq.com> 写道:
>请教大佬一个代码问题,当在open初始化一些mysql的client或者 
>初始化state时候,用了transient是不是会对代码有优化作用,这里不是太理解。


Re: FlinkSQL 是否支持类似临时中间表的概念

2020-06-23 文章 Leonard Xu
Hello,

你的需求其实是要 抽取记录的字段定义watermark, 这个只能放到source 表的DDL中,view上也不支持的。
1.10里的计算列 + udf 应该就可以满足你的需求, 大概长这样:

CREATE TABLE sourceTable (
 request_uri STRING,
 ts as extractTsUdf(request_uri),
 WATERMARK FOR ts AS ts - INTERVAL '5' SECOND

) WITH (
  ..
);

select ... from (
select ts, T.* from 
sourceTable  sourceTable , LATERAL TABLE(ParseUriRow(request_uri)) as T(...)
) t
group by TUMBLE(ts, INTERVAL '30' SECOND)

祝好,
Leonard


> 在 2020年6月24日,12:09,Weixubin <18925434...@163.com> 写道:
> 
> 第一个数据处理过程就是将 request_uri 解析为多个属性(多列),存成一行,作为一条记录。



Re: Re: FlinkSQL 是否支持类似临时中间表的概念

2020-06-23 文章 Jark Wu
你可以在 DDL 中直接用计算列去从 request_uri 里获得 heart_time 哈,然后在这个计算列上定义 watermark 即可。
例如:

CREATE TABLE sourceTable (
  request_uri STRING,
  heart_time AS my_parse(request_uri),
  WATERMARK FOR heart_time AS heart_time - INTERVAL '1' SECOND
) WITH ( ... );

虽然这会导致重复解析两遍。


Best,
Jark

On Wed, 24 Jun 2020 at 12:09, Weixubin <18925434...@163.com> wrote:

>
>
>
> 感谢你提供了子查询的思路,不过经过试验后有点可惜,这似乎还是满足不了我们的需求。
>
>
> 我们的场景是从阿里云SLS读取消息。每条消息有一个字段是request_uri。
> 第一个数据处理过程就是将 request_uri 解析为多个属性(多列),存成一行,作为一条记录。
> 第二个数据处理过程就是将每条记录里的 声明heart_time为事件时间属性并使用5秒延迟水印策略,进行开窗聚合处理。
>
>
> //如果应用到子查询的话,Flink是不支持这样做的。WATERMARK FOR 水印声明只能在DDL里应用。如下:
> select
> ..ts as TO_TIMESTAMP(heart_time,'-MM-ddHH:mm:ss') ,
> WATERMARK FOR ts AS ts - INTERVAL '1' SECOND
>  from sourceTable , LATERAL TABLE(ParseUriRow(request_uri)) as T( )….·
>
>
> //如果应用到source,则一开始并不知道heart_time 的值
> CREATE TABLE sourceTable (
>   request_uri STRING
> ..ts as TO_TIMESTAMP(heart_time,'-MM-ddHH:mm:ss') ,
> WATERMARK FOR ts AS ts - INTERVAL '1' SECOND
> ) WITH ( ... );
>
>
> 只能等待Flink 1.11 尝试是否可以用View作为中间临时表,并对View进行 WATERMARK水印声明
> Thanks
> Bin
>
> 在 2020-06-23 15:28:50,"Leonard Xu"  写道:
> >Hi
> >我的意思是你如果中间结果表如果要输出,那你就一个sink写到中间结果表(什么表根据你的需要),一个sink写到你的最终结果表,在这两个sink之前的`select
> * from sourceTable , LATERAL TABLE(ParseUriRow(request_uri)) as T( )….`
> 的这段sql是可以复用的,就和 VIEW的作用类似。
> >
> >如果你不需要中间结果表,只是要最终的结果表,那你写个嵌套的sql就行了,里层是`select * from sourceTable ,
> LATERAL TABLE(ParseUriRow(request_uri)) as T( )….·,外层是 group by,
> 插入最终的结果表就能满足需求了吧。
> >
> >祝好,
> >Leonard Xu
> >
> >
> >> 在 2020年6月23日,15:21,Weixubin <18925434...@163.com> 写道:
> >>
> >>
> >>
> >>
> >> Hi,
> >> 关于这句 “把 ` select * from sourceTable , LATERAL
> TABLE(ParseUriRow(request_uri)) as T( )….` 这段 sql insert 到中间结果表 和
> group后再写入最终结果表就可以了”
> >> 我不太明白所说的中间结果表是什么意思, 我所理解为在数据库创建多一张middleSinkTable表,作为中间结果表。请问这样理解是否有误?
> 可否简单举个例子。
> >> Thanks,
> >> Bin
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> 在 2020-06-23 11:57:28,"Leonard Xu"  写道:
> >>> Hi,
> >>> 是的,这个是在 FLINK 1.11 的版本里支持的,当前 FLINK 1.11代码已经冻结,正在测试中,最近应该快发布了,所以master
> 分支上的版本号为1.12-SNAPSHOT
> >>> ,等1.11版本发布了就可以看到对应的文档。
> >>>
> >>> 回到这个问题,flink sql(blink planner) 支持 multiple-sinks 的, 在 1.10
> 版本也可以一个作业搞定。 把 `  select * from sourceTable , LATERAL
> TABLE(ParseUriRow(request_uri)) as T( )….`  这段 sql insert 到中间结果表 和
> group后再写入最终结果表就可以了。效果和使用 VIEW 应该类似,因为 planner 会做分段优化。
> >>> 另外建议使用1.10.1版本,1.10.1在1.10的基础上修复了不少bug,也可以等1.11发布了试用下1.11。
> >>>
> >>>
> >>> 祝好,
> >>> Leonard Xu
> >
>


Re:Re: FlinkSQL 是否支持类似临时中间表的概念

2020-06-23 文章 Weixubin



感谢你提供了子查询的思路,不过经过试验后有点可惜,这似乎还是满足不了我们的需求。


我们的场景是从阿里云SLS读取消息。每条消息有一个字段是request_uri。
第一个数据处理过程就是将 request_uri 解析为多个属性(多列),存成一行,作为一条记录。
第二个数据处理过程就是将每条记录里的 声明heart_time为事件时间属性并使用5秒延迟水印策略,进行开窗聚合处理。


//如果应用到子查询的话,Flink是不支持这样做的。WATERMARK FOR 水印声明只能在DDL里应用。如下:
select 
..ts as TO_TIMESTAMP(heart_time,'-MM-ddHH:mm:ss') ,
WATERMARK FOR ts AS ts - INTERVAL '1' SECOND 
 from sourceTable , LATERAL TABLE(ParseUriRow(request_uri)) as T( )….·


//如果应用到source,则一开始并不知道heart_time 的值
CREATE TABLE sourceTable (
  request_uri STRING
..ts as TO_TIMESTAMP(heart_time,'-MM-ddHH:mm:ss') ,
WATERMARK FOR ts AS ts - INTERVAL '1' SECOND 
) WITH ( ... );


只能等待Flink 1.11 尝试是否可以用View作为中间临时表,并对View进行 WATERMARK水印声明
Thanks
Bin

在 2020-06-23 15:28:50,"Leonard Xu"  写道:
>Hi
>我的意思是你如果中间结果表如果要输出,那你就一个sink写到中间结果表(什么表根据你的需要),一个sink写到你的最终结果表,在这两个sink之前的`select
> * from sourceTable , LATERAL TABLE(ParseUriRow(request_uri)) as T( )….` 
>的这段sql是可以复用的,就和 VIEW的作用类似。
>
>如果你不需要中间结果表,只是要最终的结果表,那你写个嵌套的sql就行了,里层是`select * from sourceTable , LATERAL 
>TABLE(ParseUriRow(request_uri)) as T( )….·,外层是 group by, 插入最终的结果表就能满足需求了吧。
>
>祝好,
>Leonard Xu
>
>
>> 在 2020年6月23日,15:21,Weixubin <18925434...@163.com> 写道:
>> 
>> 
>> 
>> 
>> Hi,
>> 关于这句 “把 ` select * from sourceTable , LATERAL 
>> TABLE(ParseUriRow(request_uri)) as T( )….` 这段 sql insert 到中间结果表 和 
>> group后再写入最终结果表就可以了”
>> 我不太明白所说的中间结果表是什么意思, 我所理解为在数据库创建多一张middleSinkTable表,作为中间结果表。请问这样理解是否有误? 
>> 可否简单举个例子。
>> Thanks,
>> Bin
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 在 2020-06-23 11:57:28,"Leonard Xu"  写道:
>>> Hi,
>>> 是的,这个是在 FLINK 1.11 的版本里支持的,当前 FLINK 1.11代码已经冻结,正在测试中,最近应该快发布了,所以master 
>>> 分支上的版本号为1.12-SNAPSHOT
>>> ,等1.11版本发布了就可以看到对应的文档。
>>> 
>>> 回到这个问题,flink sql(blink planner) 支持 multiple-sinks 的, 在 1.10 版本也可以一个作业搞定。 把 
>>> `  select * from sourceTable , LATERAL TABLE(ParseUriRow(request_uri)) as 
>>> T( )….`  这段 sql insert 到中间结果表 和 group后再写入最终结果表就可以了。效果和使用 VIEW 应该类似,因为 
>>> planner 会做分段优化。
>>> 另外建议使用1.10.1版本,1.10.1在1.10的基础上修复了不少bug,也可以等1.11发布了试用下1.11。
>>> 
>>> 
>>> 祝好,
>>> Leonard Xu
>


Re: flink open 时候 transient使用问问题

2020-06-23 文章 Benchao Li
transient关键字主要的作用是告诉JVM,这个字段不需要序列化。

之所以建议很多能够在open函数里面初始化的变量用transient,是因为这些变量本身不太需要参与序列化,
比如一些cache之类的;或者有些变量也做不到序列化,比如一些连接相关的对象。

kcz <573693...@qq.com> 于2020年6月24日周三 上午11:37写道:

> 请教大佬一个代码问题,当在open初始化一些mysql的client或者
> 初始化state时候,用了transient是不是会对代码有优化作用,这里不是太理解。



-- 

Best,
Benchao Li


flink open ???? transient??????????

2020-06-23 文章 kcz
??open??mysql??client 
??state??transient??

Re:flink任务失败重启时, flink last checkpoint 失败但任务仍然正常重启,导致 state 重启前后不一致

2020-06-23 文章 程龙






可以自己改一下源码中的消费者 判断偏移量 ,如果是原先的正常启动 如果不是则不进行启动

在 2020-06-22 20:09:11,"莫失莫忘"  写道:
>如题,可以要求flink失败重启时 必须正常从checkpoint恢复,否则就重启失败吗?  


为啥KafkaFetcher要新开线程KafkaConsumerThread去消费获取数据,而不是使用LegacySourceFunctionThread去做loop循环呢

2020-06-23 文章 Han Han1 Yue
Hi,从kafka获取数据的while循环中,为啥不直接使用当前线程(LegacySourceFunctionThread),而是新创建了consumerThread每次取一条数据然后在交给当前线程

源码版本:1.10.0
// KafkaFetcher.java
@Override
public void runFetchLoop() throws Exception {
   try {
  final Handover handover = this.handover;

  // kick off the actual Kafka consumer
  consumerThread.start();

  while (running) {
 // this blocks until we get the next records
 // it automatically re-throws exceptions encountered in 
the consumer thread
 final ConsumerRecords records = 
handover.pollNext();

 // get the records for each topic partition
 for (KafkaTopicPartitionState partition : 
subscribedPartitionStates()) {

 }
  }
   }
   finally {
  // this signals the consumer thread that no more work is to be 
done
  consumerThread.shutdown();
   }

   // on a clean exit, wait for the runner thread
   try {
  consumerThread.join();
   }

谢谢回复


Re: Jobmanager重启,cannot set up a jobmanager

2020-06-23 文章 Yang Wang
"service temporarily unavailable due to an ongoing leader election"
只是说明rest server leader还没有
选出来,是正常的

你把失败的JM以及新的JM log发出来吧,这样方便看到是不是Flink自己去清理的



Best,
Yang

绘梦飘雪 <318666...@qq.com> 于2020年6月23日周二 下午4:28写道:

> hdfs上 ha storage 目录还在,但里的文件没了,作业占用的资源还在并没有释放,访问flinkui 报service
> temporarily unavailable due to an ongoing leader election
>
>
>
> ---原始邮件---
> 发件人: "Yang Wang" 发送时间: 2020年6月23日(周二) 下午3:37
> 收件人: "user-zh" 主题: Re: Jobmanager重启,cannot set up a jobmanager
>
>
> HA storage除非任务结束或者失败,Flink自己是不会去清理的。在JM failover
> 的时候会从HDFS上面拉回来
>
> 是不是外部的系统把HA storage里面的内容清理了呢
>
>
> Best,
> Yang
>
> 绘梦飘雪 <318666...@qq.com> 于2020年6月23日周二 下午12:50写道:
>
> > jobmanager重启时会org.apache.flink.runtime.client.jobexecutionexception
> could
> > not set up jobmanager
> > cannot set up the user code libraries file does not exist
> > /flink/recovery/appid/blob/job***
> > 到hdfs上看,果然对应文件不存在,请问这个是什么原因造成的
> >
> >
> >
> >


Re:Flink 1.10中是否有接口或方法获取批任务执行进度

2020-06-23 文章 程龙















可以试试自定义listener


在 2020-06-24 09:12:05,"faaron zheng"  写道:
>Flink 1.10中是否有接口或方法获取批任务执行进度,百分比? faaron zheng 邮箱:faaronzh...@gmail.com 签名由 
>网易邮箱大师 定制


Re: Flink DataStream

2020-06-23 文章 xuhaiLong
是我的问题,引用了old planner。感谢!


On 6/23/2020 21:05,LakeShen wrote:
Hi xuhaiLong,

看你的依赖,应该用的 old planner,你要使用 blink planner 才能使用row_number 函数。要使用
flink-table-planner-blink_2.11
具体文档参考:
https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/table/#table-program-dependencies

Best,
LakeShen

xuhaiLong  于2020年6月23日周二 下午8:14写道:

"org.apache.flink" %% "flink-table-api-scala-bridge" % "1.10.1",
"org.apache.flink" %% "flink-table-planner" % "1.10.1" % "provided",
看下粘贴的 sbt 依赖
On 6/23/2020 20:06,Jark Wu wrote:
图片无法查看,你可以把图片上传到某图床,然后将链接贴这里。

On Tue, 23 Jun 2020 at 19:59, xuhaiLong  wrote:

使用的是1.10.1,在 table api 无法使用ROW_NUMBER
On 6/23/2020 19:52,Jark Wu  wrote:

Hi xuhaiLong,

1.10 blink planner 是支持 ROW_NUMBER() over 的 (配合 rownum <= N 使用)。你是不是用的 old
planner 呢?

Best,
Jark

On Tue, 23 Jun 2020 at 19:44, LakeShen  wrote:

Hi xuhaiLong,

看下是否能够在 Flink SQL 中,通过自定义 UDTF 来满足你的需求。

Best,
LakeShen

xuhaiLong  于2020年6月23日周二 下午7:18写道:

Hi

请教一个问题


我需要对一个类似这样的数据进行计算获取用户 categoryId
| userId | articleID | categoryId | score |
| 01 | A | 1 | 10 |
| 01 | B | 1 | 20 |
| 01 | C | 2 | 30 |




目前我的实现是使用tableAPI 根据 UserId和categoryID 分组做 score 聚合
再通过状态做TopN排序,有没有其他更好的方案来实现?


我使用过 ROW_NUMBER() over() ,在 flink 1.10 上,并无法使用。分组聚合除了使用Table API

还有其他方法实现吗?





感谢!!









Flink 1.10中是否有接口或方法获取批任务执行进度

2020-06-23 文章 faaron zheng
Flink 1.10中是否有接口或方法获取批任务执行进度,百分比? faaron zheng 邮箱:faaronzh...@gmail.com 签名由 
网易邮箱大师 定制

??????Flink SQL??UDF????????????????json????????

2020-06-23 文章 lonely Wanderer
??
??Flink(1.8)SQL 
??UDF,jsonname??name??value
 (e.g.??appKey) 
??json:
{"appKey": "qq", "eventId": "18", "name" : 
[{"a":"jack","b":"mark","c":"tark"},{...},...]}
json??
{"appKey": "qq", "eventId": "18", 
"name_a":"jack","name_b":"mark","name_c":"tark"}
 ?? ?? 

Re: flink1.9 on yarn 运行二个多月之后出现错误

2020-06-23 文章 LakeShen
Hi guanyq,

从日志中,我看到 TaskManager 所在机器的本地存储几乎快用完了。

看下是否因为 TaskManager 所在机器的存储不够导致

Best,
LakeShen

xueaohui_...@163.com  于2020年6月20日周六 上午9:57写道:

> 不知道有没有yarn上面的详细日志。
>
> hdfs是否有权限问题
>
>
>
> xueaohui_...@163.com
>
> 发件人: guanyq
> 发送时间: 2020-06-20 08:48
> 收件人: user-zh
> 主题: flink1.9 on yarn 运行二个多月之后出现错误
> 附件为错误日志。哪位大佬帮忙分析下。
>
>
>
>


Re: Flink DataStream

2020-06-23 文章 LakeShen
Hi xuhaiLong,

看你的依赖,应该用的 old planner,你要使用 blink planner 才能使用row_number 函数。要使用
flink-table-planner-blink_2.11
具体文档参考:
https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/table/#table-program-dependencies

Best,
LakeShen

xuhaiLong  于2020年6月23日周二 下午8:14写道:

> "org.apache.flink" %% "flink-table-api-scala-bridge" % "1.10.1",
> "org.apache.flink" %% "flink-table-planner" % "1.10.1" % "provided",
>  看下粘贴的 sbt 依赖
> On 6/23/2020 20:06,Jark Wu wrote:
> 图片无法查看,你可以把图片上传到某图床,然后将链接贴这里。
>
> On Tue, 23 Jun 2020 at 19:59, xuhaiLong  wrote:
>
> 使用的是1.10.1,在 table api 无法使用ROW_NUMBER
> On 6/23/2020 19:52,Jark Wu  wrote:
>
> Hi xuhaiLong,
>
> 1.10 blink planner 是支持 ROW_NUMBER() over 的 (配合 rownum <= N 使用)。你是不是用的 old
> planner 呢?
>
> Best,
> Jark
>
> On Tue, 23 Jun 2020 at 19:44, LakeShen  wrote:
>
> Hi xuhaiLong,
>
> 看下是否能够在 Flink SQL 中,通过自定义 UDTF 来满足你的需求。
>
> Best,
> LakeShen
>
> xuhaiLong  于2020年6月23日周二 下午7:18写道:
>
> Hi
>
> 请教一个问题
>
>
> 我需要对一个类似这样的数据进行计算获取用户 categoryId
> | userId | articleID | categoryId | score |
> | 01 | A | 1 | 10 |
> | 01 | B | 1 | 20 |
> | 01 | C | 2 | 30 |
>
>
>
>
> 目前我的实现是使用tableAPI 根据 UserId和categoryID 分组做 score 聚合
> 再通过状态做TopN排序,有没有其他更好的方案来实现?
>
>
> 我使用过 ROW_NUMBER() over() ,在 flink 1.10 上,并无法使用。分组聚合除了使用Table API
>
> 还有其他方法实现吗?
>
>
>
>
>
> 感谢!!
>
>
>
>
>
>
>


Re: Flink DataStream

2020-06-23 文章 xuhaiLong
"org.apache.flink" %% "flink-table-api-scala-bridge" % "1.10.1",
"org.apache.flink" %% "flink-table-planner" % "1.10.1" % "provided",
 看下粘贴的 sbt 依赖
On 6/23/2020 20:06,Jark Wu wrote:
图片无法查看,你可以把图片上传到某图床,然后将链接贴这里。

On Tue, 23 Jun 2020 at 19:59, xuhaiLong  wrote:

使用的是1.10.1,在 table api 无法使用ROW_NUMBER
On 6/23/2020 19:52,Jark Wu  wrote:

Hi xuhaiLong,

1.10 blink planner 是支持 ROW_NUMBER() over 的 (配合 rownum <= N 使用)。你是不是用的 old
planner 呢?

Best,
Jark

On Tue, 23 Jun 2020 at 19:44, LakeShen  wrote:

Hi xuhaiLong,

看下是否能够在 Flink SQL 中,通过自定义 UDTF 来满足你的需求。

Best,
LakeShen

xuhaiLong  于2020年6月23日周二 下午7:18写道:

Hi

请教一个问题


我需要对一个类似这样的数据进行计算获取用户 categoryId
| userId | articleID | categoryId | score |
| 01 | A | 1 | 10 |
| 01 | B | 1 | 20 |
| 01 | C | 2 | 30 |




目前我的实现是使用tableAPI 根据 UserId和categoryID 分组做 score 聚合
再通过状态做TopN排序,有没有其他更好的方案来实现?


我使用过 ROW_NUMBER() over() ,在 flink 1.10 上,并无法使用。分组聚合除了使用Table API

还有其他方法实现吗?





感谢!!








Re: Flink DataStream

2020-06-23 文章 Jark Wu
图片无法查看,你可以把图片上传到某图床,然后将链接贴这里。

On Tue, 23 Jun 2020 at 19:59, xuhaiLong  wrote:

> 使用的是1.10.1,在 table api 无法使用ROW_NUMBER
> On 6/23/2020 19:52,Jark Wu  wrote:
>
> Hi xuhaiLong,
>
> 1.10 blink planner 是支持 ROW_NUMBER() over 的 (配合 rownum <= N 使用)。你是不是用的 old
> planner 呢?
>
> Best,
> Jark
>
> On Tue, 23 Jun 2020 at 19:44, LakeShen  wrote:
>
> Hi xuhaiLong,
>
> 看下是否能够在 Flink SQL 中,通过自定义 UDTF 来满足你的需求。
>
> Best,
> LakeShen
>
> xuhaiLong  于2020年6月23日周二 下午7:18写道:
>
> Hi
>
> 请教一个问题
>
>
> 我需要对一个类似这样的数据进行计算获取用户 categoryId
> | userId | articleID | categoryId | score |
> | 01 | A | 1 | 10 |
> | 01 | B | 1 | 20 |
> | 01 | C | 2 | 30 |
>
>
>
>
> 目前我的实现是使用tableAPI 根据 UserId和categoryID 分组做 score 聚合
> 再通过状态做TopN排序,有没有其他更好的方案来实现?
>
>
> 我使用过 ROW_NUMBER() over() ,在 flink 1.10 上,并无法使用。分组聚合除了使用Table API
>
> 还有其他方法实现吗?
>
>
>
>
>
> 感谢!!
>
>
>
>
>
>


Re: Flink DataStream

2020-06-23 文章 xuhaiLong
使用的是1.10.1,在 table api 无法使用ROW_NUMBER
On 6/23/2020 19:52,Jark Wu wrote:
Hi xuhaiLong,

1.10 blink planner 是支持 ROW_NUMBER() over 的 (配合 rownum <= N 使用)。你是不是用的 old
planner 呢?

Best,
Jark

On Tue, 23 Jun 2020 at 19:44, LakeShen  wrote:

Hi xuhaiLong,

看下是否能够在 Flink SQL 中,通过自定义 UDTF 来满足你的需求。

Best,
LakeShen

xuhaiLong  于2020年6月23日周二 下午7:18写道:

Hi

请教一个问题


我需要对一个类似这样的数据进行计算获取用户 categoryId
| userId | articleID | categoryId | score |
| 01 | A | 1 | 10 |
| 01 | B | 1 | 20 |
| 01 | C | 2 | 30 |




目前我的实现是使用tableAPI 根据 UserId和categoryID 分组做 score 聚合
再通过状态做TopN排序,有没有其他更好的方案来实现?


我使用过 ROW_NUMBER() over() ,在 flink 1.10 上,并无法使用。分组聚合除了使用Table API
还有其他方法实现吗?




感谢!!







Re: Flink DataStream

2020-06-23 文章 Jark Wu
Hi xuhaiLong,

1.10 blink planner 是支持 ROW_NUMBER() over 的 (配合 rownum <= N 使用)。你是不是用的 old
planner 呢?

Best,
Jark

On Tue, 23 Jun 2020 at 19:44, LakeShen  wrote:

> Hi xuhaiLong,
>
> 看下是否能够在 Flink SQL 中,通过自定义 UDTF 来满足你的需求。
>
> Best,
> LakeShen
>
> xuhaiLong  于2020年6月23日周二 下午7:18写道:
>
> > Hi
> >
> > 请教一个问题
> >
> >
> > 我需要对一个类似这样的数据进行计算获取用户 categoryId
> > | userId | articleID | categoryId | score |
> > | 01 | A | 1 | 10 |
> > | 01 | B | 1 | 20 |
> > | 01 | C | 2 | 30 |
> >
> >
> >
> >
> > 目前我的实现是使用tableAPI 根据 UserId和categoryID 分组做 score 聚合
> > 再通过状态做TopN排序,有没有其他更好的方案来实现?
> >
> >
> > 我使用过 ROW_NUMBER() over() ,在 flink 1.10 上,并无法使用。分组聚合除了使用Table API
> 还有其他方法实现吗?
> >
> >
> >
> >
> > 感谢!!
> >
> >
> >
> >
>


Re: flink任务失败重启时, flink last checkpoint 失败但任务仍然正常重启,导致 state 重启前后不一致

2020-06-23 文章 LakeShen
Hi ,

正如 Congxian 所说,当 Flink 任务容错恢复重启时,会从上一次成功的 Checkpoint 进行恢复。

所以你所说的 last checkpoint 失败,具体是什么含义呢?

Best,
LakeShen

Congxian Qiu  于2020年6月22日周一 下午8:23写道:

> hi
>
> 这里说的 state 不一致是什么意思呢?checkpoint 恢复保证全局的 state 被重置到之前某个成功的 checkpoint。
>
> Best,
> Congxian
>
>
> 莫失莫忘  于2020年6月22日周一 下午8:09写道:
>
> > 如题,可以要求flink失败重启时 必须正常从checkpoint恢复,否则就重启失败吗?  
>


Re: Flink DataStream

2020-06-23 文章 LakeShen
Hi xuhaiLong,

看下是否能够在 Flink SQL 中,通过自定义 UDTF 来满足你的需求。

Best,
LakeShen

xuhaiLong  于2020年6月23日周二 下午7:18写道:

> Hi
>
> 请教一个问题
>
>
> 我需要对一个类似这样的数据进行计算获取用户 categoryId
> | userId | articleID | categoryId | score |
> | 01 | A | 1 | 10 |
> | 01 | B | 1 | 20 |
> | 01 | C | 2 | 30 |
>
>
>
>
> 目前我的实现是使用tableAPI 根据 UserId和categoryID 分组做 score 聚合
> 再通过状态做TopN排序,有没有其他更好的方案来实现?
>
>
> 我使用过 ROW_NUMBER() over() ,在 flink 1.10 上,并无法使用。分组聚合除了使用Table API 还有其他方法实现吗?
>
>
>
>
> 感谢!!
>
>
>
>


Re: Flink(1.8.3) UI exception is overwritten, and the cause of the failure is not displayed

2020-06-23 文章 Arvid Heise
Hi Andrew,

this looks like your Flink cluster has a flaky connection to the Kafka
cluster or your Kafka cluster was down.

Since the operator failed on the sync part of the snapshot, it resorted to
failure to avoid having inconsistent operator state. If you configured
restarts, it just restart from your last checkpoint 86 and recompute the
data.

What would be your expectation? That the checkpoint fails but the job
continues without restart?

In general, the issue with Kafka is that the transaction used for exactly
once, eventually time out. So if too many checkpoints cannot be taken,
you'd ultimately have incorrect data. Hence, failing and restarting is
cleaner as it guarantees consistent data.

On Mon, Jun 22, 2020 at 10:16 AM Andrew <874269...@qq.com> wrote:

> versin: 1.8.3
> graph: source -> map -> sink
>
> Scenes:
>  source subtask failed causes the graph to restart, but the exception
> displayed on the flink UI is not the cause of the task failure
>
> displayed:
> JM log:
> 020-06-22 14:29:01.087 INFO
>  org.apache.flink.runtime.executiongraph.ExecutionGraph  - Job
> baseInfoAdapter_20601 (20601159280210484110080369520601) switched from
> state RUNNING to FAILING.
> java.lang.Exception: Could not perform checkpoint 87 for operator Sink:
> adapterOutput (19/30).
> at
> org.apache.flink.streaming.runtime.tasks.StreamTask.triggerCheckpointOnBarrier(StreamTask.java:597)
> at
> org.apache.flink.streaming.runtime.io.BarrierTracker.notifyCheckpoint(BarrierTracker.java:270)
> at
> org.apache.flink.streaming.runtime.io.BarrierTracker.processBarrier(BarrierTracker.java:186)
> at
> org.apache.flink.streaming.runtime.io.BarrierTracker.getNextNonBlocked(BarrierTracker.java:105)
> at org.apache.flink.streaming.runtime.io
> .StreamInputProcessor.processInput(StreamInputProcessor.java:209)
> at
> org.apache.flink.streaming.runtime.tasks.OneInputStreamTask.run(OneInputStreamTask.java:105)
> at
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:302)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:769)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.Exception: Could not complete snapshot 87 for
> operator Sink: adapterOutput (19/30).
> at
> org.apache.flink.streaming.api.operators.AbstractStreamOperator.snapshotState(AbstractStreamOperator.java:422)
> at
> org.apache.flink.streaming.runtime.tasks.StreamTask$CheckpointingOperation.checkpointStreamOperator(StreamTask.java:1115)
> at
> org.apache.flink.streaming.runtime.tasks.StreamTask$CheckpointingOperation.executeCheckpointing(StreamTask.java:1057)
> at
> org.apache.flink.streaming.runtime.tasks.StreamTask.checkpointState(StreamTask.java:731)
> at
> org.apache.flink.streaming.runtime.tasks.StreamTask.performCheckpoint(StreamTask.java:643)
> at
> org.apache.flink.streaming.runtime.tasks.StreamTask.triggerCheckpointOnBarrier(StreamTask.java:588)
> ... 8 common frames omitted
> Caused by: java.lang.Exception: Failed to send data to Kafka: The server
> disconnected before a response was received.
> at
> org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducerBase.checkErroneous(FlinkKafkaProducerBase.java:375)
> at
> org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducerBase.snapshotState(FlinkKafkaProducerBase.java:363)
> at
> org.apache.flink.streaming.util.functions.StreamingFunctionUtils.trySnapshotFunctionState(StreamingFunctionUtils.java:118)
> at
> org.apache.flink.streaming.util.functions.StreamingFunctionUtils.snapshotFunctionState(StreamingFunctionUtils.java:99)
> at
> org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.snapshotState(AbstractUdfStreamOperator.java:90)
> at
> org.apache.flink.streaming.api.operators.AbstractStreamOperator.snapshotState(AbstractStreamOperator.java:395)
> ... 13 common frames omitted
>
>
> TM log:Running to Cannceling
> 2020-06-22 15:39:19.816 INFO  com.xxx.client.consumer.GroupConsumer  -
> consumer xxx to jmq1230:xxx,READ,xxx,NONE is stopped.
> 2020-06-22 15:39:19.816 INFO  org.apache.flink.runtime.taskmanager.Task  -
> Source: baseInfo (79/90) (4e62a84f251d9c68a54e464cff51171e) switched from
> RUNNING to CANCELING.
>
>
> Is this a known issue?
>


-- 

Arvid Heise | Senior Java Developer



Follow us @VervericaData

--

Join Flink Forward  - The Apache Flink
Conference

Stream Processing | Event Driven | Real Time

--

Ververica GmbH | Invalidenstrasse 115, 10115 Berlin, Germany

--
Ververica GmbH
Registered at Amtsgericht Charlottenburg: HRB 158244 B
Managing Directors: Timothy Alexander Steinert, Yip Park Tung Jason, Ji
(Toni) Cheng


【flink web】Flink 1.7 Yarn开启http 的kerberos 认证,去访问flink web 界面的时候出现403.

2020-06-23 文章 tao wang
hi, 请教一个问题:

*环境:* yarn 2.9.2  http 开启kerberos
hadoop.http.authentication.type
kerberos

*flink 版本*:官方 1.7.1

*1.10 版本可以正常访问。*



访问 flink 的web 界面的时候报下面这个错误。

[image: D79C0EE4-F084-436B-8944-83677A57A320_4_5005_c.jpeg]


Flink DataStream

2020-06-23 文章 xuhaiLong
Hi

请教一个问题


我需要对一个类似这样的数据进行计算获取用户 categoryId
| userId | articleID | categoryId | score |
| 01 | A | 1 | 10 |
| 01 | B | 1 | 20 |
| 01 | C | 2 | 30 |




目前我的实现是使用tableAPI 根据 UserId和categoryID 分组做 score 聚合 再通过状态做TopN排序,有没有其他更好的方案来实现?


我使用过 ROW_NUMBER() over() ,在 flink 1.10 上,并无法使用。分组聚合除了使用Table API 还有其他方法实现吗?




感谢!!





?????? ??????savepoint????????????????????

2020-06-23 文章 claylin
UID??name




--  --
??: "Sun.Zhu"<17626017...@163.com>;
: 2020??6??23??(??) 5:18
??: "user-zh@flink.apache.org"https://issues.apache.org/jira/browse/FLINK-5601


?????? ??????savepoint????????????????????

2020-06-23 文章 Sun.Zhu
hi??claylin
??uidDAG??


| |
Sun.Zhu
|
|
17626017...@163.com
|
??


??2020??06??23?? 16:29??claylin<1012539...@qq.com> ??
??savepoint??
flatmap??jobgraph
??flatmap??Rebalance??




--  --
??: "Congxian Qiu"https://issues.apache.org/jira/browse/FLINK-5601
;

Best,
Congxian


claylin <1012539...@qq.com> ??2020??6??23?? 2:44??

> 
??watermark??
>
>
>
>
> --  --
> ??: "Congxian Qiu"

回复:维表join不支持事件时间窗口级联

2020-06-23 文章 赵玉豪
尴尬尴尬,我搞错了,一直以为是你的博客来着。
感谢感谢

---原始邮件---
发件人: "Benchao Li"

Re: 维表join不支持事件时间窗口级联

2020-06-23 文章 Benchao Li
非常开心能够帮到你解决问题。
不过,我没有写过博客,你应该是看的其他某位大佬的博客😂

赵玉豪  于2020年6月23日周二 下午5:02写道:

> 对,在DDL中见过这个写法,没想到还能使用在DML语句中。
> 我跑了一下sql,可以成功。感谢benchao,经常学习你的博客!
>
> ---原始邮件---
> 发件人: "Benchao Li" 发送时间: 2020年6月23日(周二) 下午4:40
> 收件人: "user-zh" 主题: Re: 维表join不支持事件时间窗口级联
>
>
> 这不是隐藏函数呀,这个就是用来声明处理时间属性的函数。
> 如果你在DDL里通过计算列声明处理时间属性的话,也是用这个函数的。
>
> 赵玉豪 
> > 感谢大佬,我试一下。proctime()是一个隐藏函数么,没有在官网上见到过。
> >
> >
> >
> > ---原始邮件---
> > 发件人: "Benchao Li" > 发送时间: 2020年6月23日(周二) 下午4:31
> > 收件人: "user-zh" > 主题: Re: 维表join不支持事件时间窗口级联
> >
> >
> > 你可以尝试一下在做完了时间时间窗口之后,再做一个view,类似于`select *, PROCTIME() AS proctime from
> > window_result`,
> > 这样又可以有处理时间属性了,也就是后面可以做维表join了。
> >
> > 赵玉豪  >
> > > 当前维表join写法需要
> > >
> 左表中包含proctime字段,但是使用事件时间窗口后就会丢失proctime属性,语法进行维表join。有什么好的解决方案么?
> >
> >
> >
> > --
> >
> > Best,
> > Benchao Li
>
>
>
> --
>
> Best,
> Benchao Li



-- 

Best,
Benchao Li


回复:维表join不支持事件时间窗口级联

2020-06-23 文章 赵玉豪
对,在DDL中见过这个写法,没想到还能使用在DML语句中。
我跑了一下sql,可以成功。感谢benchao,经常学习你的博客!

---原始邮件---
发件人: "Benchao Li"

Re: 维表join不支持事件时间窗口级联

2020-06-23 文章 Benchao Li
这不是隐藏函数呀,这个就是用来声明处理时间属性的函数。
如果你在DDL里通过计算列声明处理时间属性的话,也是用这个函数的。

赵玉豪  于2020年6月23日周二 下午4:37写道:

> 感谢大佬,我试一下。proctime()是一个隐藏函数么,没有在官网上见到过。
>
>
>
> ---原始邮件---
> 发件人: "Benchao Li" 发送时间: 2020年6月23日(周二) 下午4:31
> 收件人: "user-zh" 主题: Re: 维表join不支持事件时间窗口级联
>
>
> 你可以尝试一下在做完了时间时间窗口之后,再做一个view,类似于`select *, PROCTIME() AS proctime from
> window_result`,
> 这样又可以有处理时间属性了,也就是后面可以做维表join了。
>
> 赵玉豪 
> > 当前维表join写法需要
> > 左表中包含proctime字段,但是使用事件时间窗口后就会丢失proctime属性,语法进行维表join。有什么好的解决方案么?
>
>
>
> --
>
> Best,
> Benchao Li



-- 

Best,
Benchao Li


回复:维表join不支持事件时间窗口级联

2020-06-23 文章 赵玉豪
感谢大佬,我试一下。proctime()是一个隐藏函数么,没有在官网上见到过。



---原始邮件---
发件人: "Benchao Li"

Re: 维表join不支持事件时间窗口级联

2020-06-23 文章 Benchao Li
你可以尝试一下在做完了时间时间窗口之后,再做一个view,类似于`select *, PROCTIME() AS proctime from
window_result`,
这样又可以有处理时间属性了,也就是后面可以做维表join了。

赵玉豪  于2020年6月23日周二 下午4:21写道:

> 当前维表join写法需要
> 左表中包含proctime字段,但是使用事件时间窗口后就会丢失proctime属性,语法进行维表join。有什么好的解决方案么?



-- 

Best,
Benchao Li


?????? ??????savepoint????????????????????

2020-06-23 文章 claylin
??savepoint??
flatmap??jobgraph
??flatmap??Rebalance??




--  --
??: "Congxian Qiu"https://issues.apache.org/jira/browse/FLINK-5601
;

Best,
Congxian


claylin <1012539...@qq.com> ??2020??6??23?? 2:44??

> 
??watermark??
>
>
>
>
> --  --
> ??: "Congxian Qiu"

回复:Jobmanager重启,cannot set up a jobmanager

2020-06-23 文章 绘梦飘雪
hdfs上 ha storage 目录还在,但里的文件没了,作业占用的资源还在并没有释放,访问flinkui 报service temporarily 
unavailable due to an ongoing leader election



---原始邮件---
发件人: "Yang Wang"

维表join不支持事件时间窗口级联

2020-06-23 文章 赵玉豪
当前维表join写法需要 左表中包含proctime字段,但是使用事件时间窗口后就会丢失proctime属性,语法进行维表join。有什么好的解决方案么?

Re: Jobmanager重启,cannot set up a jobmanager

2020-06-23 文章 Yang Wang
HA storage除非任务结束或者失败,Flink自己是不会去清理的。在JM failover
的时候会从HDFS上面拉回来

是不是外部的系统把HA storage里面的内容清理了呢


Best,
Yang

绘梦飘雪 <318666...@qq.com> 于2020年6月23日周二 下午12:50写道:

> jobmanager重启时会org.apache.flink.runtime.client.jobexecutionexception could
> not set up jobmanager
> cannot set up the user code libraries file does not exist
> /flink/recovery/appid/blob/job***
> 到hdfs上看,果然对应文件不存在,请问这个是什么原因造成的
>
>
>
>


Re: FlinkSQL 是否支持类似临时中间表的概念

2020-06-23 文章 Leonard Xu
Hi
我的意思是你如果中间结果表如果要输出,那你就一个sink写到中间结果表(什么表根据你的需要),一个sink写到你的最终结果表,在这两个sink之前的`select
 * from sourceTable , LATERAL TABLE(ParseUriRow(request_uri)) as T( )….` 
的这段sql是可以复用的,就和 VIEW的作用类似。

如果你不需要中间结果表,只是要最终的结果表,那你写个嵌套的sql就行了,里层是`select * from sourceTable , LATERAL 
TABLE(ParseUriRow(request_uri)) as T( )….·,外层是 group by, 插入最终的结果表就能满足需求了吧。

祝好,
Leonard Xu


> 在 2020年6月23日,15:21,Weixubin <18925434...@163.com> 写道:
> 
> 
> 
> 
> Hi,
> 关于这句 “把 ` select * from sourceTable , LATERAL TABLE(ParseUriRow(request_uri)) 
> as T( )….` 这段 sql insert 到中间结果表 和 group后再写入最终结果表就可以了”
> 我不太明白所说的中间结果表是什么意思, 我所理解为在数据库创建多一张middleSinkTable表,作为中间结果表。请问这样理解是否有误? 
> 可否简单举个例子。
> Thanks,
> Bin
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 在 2020-06-23 11:57:28,"Leonard Xu"  写道:
>> Hi,
>> 是的,这个是在 FLINK 1.11 的版本里支持的,当前 FLINK 1.11代码已经冻结,正在测试中,最近应该快发布了,所以master 
>> 分支上的版本号为1.12-SNAPSHOT
>> ,等1.11版本发布了就可以看到对应的文档。
>> 
>> 回到这个问题,flink sql(blink planner) 支持 multiple-sinks 的, 在 1.10 版本也可以一个作业搞定。 把 ` 
>>  select * from sourceTable , LATERAL TABLE(ParseUriRow(request_uri)) as T( 
>> )….`  这段 sql insert 到中间结果表 和 group后再写入最终结果表就可以了。效果和使用 VIEW 应该类似,因为 planner 
>> 会做分段优化。
>> 另外建议使用1.10.1版本,1.10.1在1.10的基础上修复了不少bug,也可以等1.11发布了试用下1.11。
>> 
>> 
>> 祝好,
>> Leonard Xu



Re:Re: flink 通过 --classpath 传入https-xxx.xxx.jar 在1.8上正常运行 在flink1.10 就会报传入的jar包找不到

2020-06-23 文章 程龙
在同一套集群离  安装有连个版本的flink 使用-C http://xxx.jar的方式  1.8能正常运行 说明都能访问 使用1.10 就不行

















At 2020-06-22 17:46:56, "Yang Wang"  wrote:
> -C,--classpath  Adds a URL to each user code
>  classloader  on all nodes in the
>  cluster. The paths must specify a
>  protocol (e.g. file://) and be
>  accessible on all nodes (e.g. by
>means
>  of a NFS share). You can use this
>  option multiple times for
>specifying
>  more than one URL. The protocol
>must
>  be supported by the {@link
>  java.net.URLClassLoader}.
>
>
>--classpath这个参数需要提前将jar部署在各个节点上或者使用NFS,确认jar是存在的吗
>
>
>Best,
>Yang
>
>程龙 <13162790...@163.com> 于2020年6月22日周一 上午11:43写道:
>
>> 2020-06-22 10:16:34,379 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Sink:
>> Unnamed (6/6) (5dd98ec92e0d5e53597cb7520643c7f5) switched from SCHEDULED to
>> DEPLOYING.
>> 2020-06-22 10:16:34,379 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Deploying
>> Sink: Unnamed (6/6) (attempt #0) to container_1590655249980_0081_01_02
>> @ al-bj-bigdata-inf-research-flink04 (dataPort=34781)
>> 2020-06-22 10:16:34,456 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Source:
>> Custom Source (5/6) (aca298438b9eb6fcf295cb8af6eebcd8) switched from
>> DEPLOYING to RUNNING.
>> 2020-06-22 10:16:34,481 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Filter ->
>> Map (3/8) (0daed15d107c3031891f0c9e84093068) switched from DEPLOYING to
>> RUNNING.
>> 2020-06-22 10:16:34,492 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Sink:
>> Unnamed (1/6) (44ca248aba351026452ba4abdb5f33a6) switched from DEPLOYING to
>> RUNNING.
>> 2020-06-22 10:16:34,497 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Filter ->
>> Map (1/8) (70612735eb755269fe9590e8ab51d3e2) switched from DEPLOYING to
>> RUNNING.
>> 2020-06-22 10:16:34,512 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Filter ->
>> Map (2/8) (baba331cd6bcde1f5a6024eac0b953b4) switched from DEPLOYING to
>> RUNNING.
>> 2020-06-22 10:16:34,524 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Source:
>> Custom Source (4/6) (a34992362c2cf3634a29bd5a9c188754) switched from
>> DEPLOYING to RUNNING.
>> 2020-06-22 10:16:34,531 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Source:
>> Custom Source (2/6) (7683c15e3ebb3e718c2439c6e32f0d7d) switched from
>> DEPLOYING to RUNNING.
>> 2020-06-22 10:16:34,564 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Source:
>> Custom Source (6/6) (6ab1aaa5e1811c79c702197f984e9bb6) switched from
>> DEPLOYING to RUNNING.
>> 2020-06-22 10:16:34,609 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Source:
>> Custom Source (1/6) (6245b508b8e0494f06ef71c6ad4954b6) switched from
>> DEPLOYING to RUNNING.
>> 2020-06-22 10:16:34,616 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Filter ->
>> Map (4/8) (2ea049476f0b48fcd85dcd9084091e9f) switched from DEPLOYING to
>> RUNNING.
>> 2020-06-22 10:16:34,650 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Sink:
>> Unnamed (2/6) (e785e44e4212dcc5279bcde761b28292) switched from DEPLOYING to
>> RUNNING.
>> 2020-06-22 10:16:34,656 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Sink:
>> Unnamed (5/6) (97a5e72f731d14aa97d93253b71b6aeb) switched from DEPLOYING to
>> RUNNING.
>> 2020-06-22 10:16:34,662 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Filter ->
>> Map (7/8) (59babdbc2d7bea362a2794a966fe59ef) switched from DEPLOYING to
>> RUNNING.
>> 2020-06-22 10:16:34,664 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Source:
>> Custom Source (3/6) (aed33b78cc847561908ea43164e0311a) switched from
>> DEPLOYING to RUNNING.
>> 2020-06-22 10:16:34,669 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Filter ->
>> Map (6/8) (fd87d0111b10e9f9027068a72e9ce209) switched from DEPLOYING to
>> RUNNING.
>> 2020-06-22 10:16:34,726 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Sink:
>> Unnamed (6/6) (5dd98ec92e0d5e53597cb7520643c7f5) switched from DEPLOYING to
>> RUNNING.
>> 2020-06-22 10:16:34,729 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Filter ->
>> Map (8/8) (22b73fa7f7435a405e1102a3480c09c1) switched from DEPLOYING to
>> RUNNING.
>> 2020-06-22 10:16:34,760 INFO
>> org.apache.flink.runtime.executiongraph.ExecutionGraph- Sink:
>> Unnamed (4/6) (4c677579ef44cf394618af38a75497da) swi

Re:Re:flink 通过 --classpath 传入https-xxx.xxx.jar 在1.8上正常运行 在flink1.10 就会报传入的jar包找不到

2020-06-23 文章 程龙









嗯 确认都能访问 使用http的方式








在 2020-06-23 10:04:55,"Weixubin" <18925434...@163.com> 写道:
>和版本应该没什么关系。如果是多节点部署的情况下,-C 所指定的URL 需要各个节点都能访问得到。 确认下该URL能被所有节点访问到吗 
> Best,
> Bin
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>At 2020-06-22 11:43:11, "程龙" <13162790...@163.com> wrote:
>>2020-06-22 10:16:34,379 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Sink: Unnamed 
>>(6/6) (5dd98ec92e0d5e53597cb7520643c7f5) switched from SCHEDULED to DEPLOYING.
>>2020-06-22 10:16:34,379 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Deploying 
>>Sink: Unnamed (6/6) (attempt #0) to container_1590655249980_0081_01_02 @ 
>>al-bj-bigdata-inf-research-flink04 (dataPort=34781)
>>2020-06-22 10:16:34,456 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Source: 
>>Custom Source (5/6) (aca298438b9eb6fcf295cb8af6eebcd8) switched from 
>>DEPLOYING to RUNNING.
>>2020-06-22 10:16:34,481 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Filter -> Map 
>>(3/8) (0daed15d107c3031891f0c9e84093068) switched from DEPLOYING to RUNNING.
>>2020-06-22 10:16:34,492 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Sink: Unnamed 
>>(1/6) (44ca248aba351026452ba4abdb5f33a6) switched from DEPLOYING to RUNNING.
>>2020-06-22 10:16:34,497 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Filter -> Map 
>>(1/8) (70612735eb755269fe9590e8ab51d3e2) switched from DEPLOYING to RUNNING.
>>2020-06-22 10:16:34,512 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Filter -> Map 
>>(2/8) (baba331cd6bcde1f5a6024eac0b953b4) switched from DEPLOYING to RUNNING.
>>2020-06-22 10:16:34,524 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Source: 
>>Custom Source (4/6) (a34992362c2cf3634a29bd5a9c188754) switched from 
>>DEPLOYING to RUNNING.
>>2020-06-22 10:16:34,531 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Source: 
>>Custom Source (2/6) (7683c15e3ebb3e718c2439c6e32f0d7d) switched from 
>>DEPLOYING to RUNNING.
>>2020-06-22 10:16:34,564 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Source: 
>>Custom Source (6/6) (6ab1aaa5e1811c79c702197f984e9bb6) switched from 
>>DEPLOYING to RUNNING.
>>2020-06-22 10:16:34,609 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Source: 
>>Custom Source (1/6) (6245b508b8e0494f06ef71c6ad4954b6) switched from 
>>DEPLOYING to RUNNING.
>>2020-06-22 10:16:34,616 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Filter -> Map 
>>(4/8) (2ea049476f0b48fcd85dcd9084091e9f) switched from DEPLOYING to RUNNING.
>>2020-06-22 10:16:34,650 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Sink: Unnamed 
>>(2/6) (e785e44e4212dcc5279bcde761b28292) switched from DEPLOYING to RUNNING.
>>2020-06-22 10:16:34,656 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Sink: Unnamed 
>>(5/6) (97a5e72f731d14aa97d93253b71b6aeb) switched from DEPLOYING to RUNNING.
>>2020-06-22 10:16:34,662 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Filter -> Map 
>>(7/8) (59babdbc2d7bea362a2794a966fe59ef) switched from DEPLOYING to RUNNING.
>>2020-06-22 10:16:34,664 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Source: 
>>Custom Source (3/6) (aed33b78cc847561908ea43164e0311a) switched from 
>>DEPLOYING to RUNNING.
>>2020-06-22 10:16:34,669 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Filter -> Map 
>>(6/8) (fd87d0111b10e9f9027068a72e9ce209) switched from DEPLOYING to RUNNING.
>>2020-06-22 10:16:34,726 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Sink: Unnamed 
>>(6/6) (5dd98ec92e0d5e53597cb7520643c7f5) switched from DEPLOYING to RUNNING.
>>2020-06-22 10:16:34,729 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Filter -> Map 
>>(8/8) (22b73fa7f7435a405e1102a3480c09c1) switched from DEPLOYING to RUNNING.
>>2020-06-22 10:16:34,760 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Sink: Unnamed 
>>(4/6) (4c677579ef44cf394618af38a75497da) switched from DEPLOYING to RUNNING.
>>2020-06-22 10:16:37,081 INFO  
>>org.apache.flink.runtime.checkpoint.CheckpointCoordinator - Triggering 
>>checkpoint 1 @ 1592792197072 for job 1797e2f64b7b1caeb6356608290263cc.
>>2020-06-22 10:16:45,065 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Sink: Unnamed 
>>(3/6) (d9a9c913dcbf782bd933b0adae157b38) switched from DEPLOYING to RUNNING.
>>2020-06-22 10:16:45,066 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Filter -> Map 
>>(5/8) (39dbdd04e2066d1d93be1641c0ab7add) switched from DEPLOYING to RUNNING.
>>2020-06-22 10:16:48,512 INFO  
>>org.apache.flink.runtime.executiongraph.ExecutionGraph- Filter -> Map 
>>(3/8) (0daed15d107c3031891f0c9e84093068) switched from RUNNING to FAI

Re:Re: FlinkSQL 是否支持类似临时中间表的概念

2020-06-23 文章 Weixubin



 Hi,
关于这句 “把 ` select * from sourceTable , LATERAL TABLE(ParseUriRow(request_uri)) 
as T( )….` 这段 sql insert 到中间结果表 和 group后再写入最终结果表就可以了”
我不太明白所说的中间结果表是什么意思, 我所理解为在数据库创建多一张middleSinkTable表,作为中间结果表。请问这样理解是否有误? 可否简单举个例子。
Thanks,
Bin










在 2020-06-23 11:57:28,"Leonard Xu"  写道:
>Hi,
>是的,这个是在 FLINK 1.11 的版本里支持的,当前 FLINK 1.11代码已经冻结,正在测试中,最近应该快发布了,所以master 
>分支上的版本号为1.12-SNAPSHOT
>,等1.11版本发布了就可以看到对应的文档。
>
>回到这个问题,flink sql(blink planner) 支持 multiple-sinks 的, 在 1.10 版本也可以一个作业搞定。 把 `  
>select * from sourceTable , LATERAL TABLE(ParseUriRow(request_uri)) as T( )….` 
> 这段 sql insert 到中间结果表 和 group后再写入最终结果表就可以了。效果和使用 VIEW 应该类似,因为 planner 会做分段优化。
>另外建议使用1.10.1版本,1.10.1在1.10的基础上修复了不少bug,也可以等1.11发布了试用下1.11。
>
>
>祝好,
>Leonard Xu


来自曲洋的邮件

2020-06-23 文章 曲洋



Re: 作业从savepoint启动,状态不一致问题

2020-06-23 文章 Congxian Qiu
具体的依赖你生成 watermark 的逻辑,换句话说,如果你的作业不 failvover 的话,watermark 应该是怎么样的,然后
failover 之后,你的 watermark 应该是怎么样的。你需要能够保证这两个是一致的。

checkpoint 包含 watermark 之前有个 issue[1] 如果你需要这个功能的话,可以在 issue 那边进行评论

[1] https://issues.apache.org/jira/browse/FLINK-5601


Best,
Congxian


claylin <1012539...@qq.com> 于2020年6月23日周二 下午2:44写道:

> 有什么办法可以确保watermark生成一直吗。。。如果没有的话是不是在生产上不能用时间窗口了
>
>
>
>
> -- 原始邮件 --
> 发件人: "Congxian Qiu" 发送时间: 2020年6月23日(星期二) 下午2:09
> 收件人: "user-zh"
> 主题: Re: 作业从savepoint启动,状态不一致问题
>
>
>
> 现在 watermark 没有被记录在 checkpoint/savepoint 中,因此结果可能会不一致,这需要看下 从 savepoint
> 恢复之后 watermark 的生成和之前是否完全一致。
>
> Best,
> Congxian
>
>
> claylin <1012539...@qq.com> 于2020年6月23日周二 上午9:35写道:
>
> > 1. 生成savepoint的作业还在正常运行,我是从savepoint又重新起了一个任务,然后对他们的输出做了对比,发现输出结果不一致
> > 2. 是的,我这边有window窗口,使用的是tumble event time window
> > 3. eventtime是从record计算出来的,计算的结果是幂等的,应该不会影响
> >
> >
> >
> >
> > -- 原始邮件 --
> > 发件人: "Congxian Qiu" > 发送时间: 2020年6月22日(星期一) 晚上11:27
> > 收件人: "user-zh" >
> > 主题: Re: 作业从savepoint启动,状态不一致问题
> >
> >
> >
> > Hi
> > 1 怎么对比得到“结果不一致”这个结论的呢?
> > 2 是否有 window 算子呢,现在 checkpoint/savepoint 没有 记录 watermark 的。
> > 3 你的 eventtime 是直接从 record 取的,还是计算出来的呢,如果是计算出来的话,重启是否影响计算逻辑得到的
> eventtime 和
> > watermark 呢
> >
> > Best,
> > Congxian
> >
> >
> > claylin <1012539...@qq.com> 于2020年6月22日周一 下午10:49写道:
> >
> > > hi all我这边有个去重作业,从savepoint启动后,发现作业运行结果和之前的结果不一致,作业采用的是event
> > > time,不知道还有什么因素会导致状态不一样,求大佬支招