Re: Job结束后,JobMaster没有及时GC掉, 导致JobManager OOM

2021-04-15 文章 jun su
); if (log.isDebugEnabled()) { scheduleRunAsync(this::scheduledLogStatus, STATUS_LOG_INTERVAL_MS, TimeUnit.MILLISECONDS); } } jun su 于2021年4月15日周四 下午4:50写道: > hi all, > > 通过看源码发现了问题 : > > 短时间内提交大量Job后, JobManager进程会OOM的原因是这些Job所属的JobMaster没被及时的GC掉. > > 原因是JobMaster所属的SlotP

Re: Job结束后,JobMaster没有及时GC掉, 导致JobManager OOM

2021-04-15 文章 jun su
在这个delay时间内GC不掉. 同时job包含大量文件数, 导致JobMaster中包含的ExecutionGraph和FileSplit等信息占用堆栈空间比较大, 最后导致OOM 通过调整slot.idle.timeout和slot.request.timeout两个参数来缩短delay的时间, 保证GC及时回收JobMaster, 就会避免OOM的发生 jun su 于2021年4月13日周二 下午3:18写道: > hi all, > 为了触发该异常, 预设场景: > 1. jobmanager 分配1g内存 >

Job结束后,JobMaster没有及时GC掉, 导致JobManager OOM

2021-04-13 文章 jun su
FileSplit对象也会较大,所以导致新的job无法构建导致oom 而同样的jm内存配置 + 文件数, 如果任务运行的稍慢,比如运行10s才结束, 这时JM虽然也有高堆栈占用导致高GC的问题,但是不会出现OOM , 说明JobMaster在被垃圾回收. 我的疑问是既然 JobMaster 已经在job执行完后 onStop 掉释放了资源, 为什么没被及时或者无法被回收, 从而导致JM的oom呢? JobMaster在job执行完后, 还会存留一段时间? 有些引用还未释放? -- Best, Jun Su

Re: computed column转为timestamp类型后进行窗口聚合报错

2020-12-11 文章 jun su
physical.batch.BatchExecWindowAggregateRule.onMatch(BatchExecWindowAggregateRule.scala:111) at org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:217) ... 27 more Jark Wu 于2020年12月11日周五 下午5:25写道: > 建议将完整的代码展示出来,现在的信息不足以分析问题。 > > On Fri, 11 Dec 2020 at 11:5

Re: computed column转为timestamp类型后进行窗口聚合报错

2020-12-10 文章 jun su
hi Danny, 尝试过是一样报错,debug看了下是LogicalWindowAggregateRuleBase在构建window时没有将Expr信息带下去 , 只带了别名,导致后续优化规则报错退出 Danny Chan 于2020年12月11日周五 上午11:47写道: > 有木有尝试补充 watermark 语法 > > jun su 于2020年12月11日周五 上午10:47写道: > > > hi all, > > > > flink 1.11.0版本, 使用computed column将long

computed column转为timestamp类型后进行窗口聚合报错

2020-12-10 文章 jun su
) at org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:217) ... 27 more -- Best, Jun Su

Re: Calcite在嵌套多层包含where条件的sql语句时优化器OOM

2020-09-23 文章 jun su
ule 一直重复重复触发,可以将 debug 日志打开,看下是哪个 rule > 被频繁触发了,之前修过一个类似的问题[1],可以参考下 > > [1] https://issues.apache.org/jira/browse/CALCITE-3121 > > Best, > Danny Chan > 在 2020年9月23日 +0800 AM10:23,jun su ,写道: > > hi godfrey, > > 方便说下是哪些rule fix了这个问题么? 我对这个比较好奇 , 想看下是什么原因导致的 >

Re: Calcite在嵌套多层包含where条件的sql语句时优化器OOM

2020-09-22 文章 jun su
hi godfrey, 方便说下是哪些rule fix了这个问题么? 我对这个比较好奇 , 想看下是什么原因导致的 godfrey he 于2020年9月23日周三 上午10:09写道: > Hi Jun, > > 可能是old planner缺少一些rule导致遇到了corner case, > blink planner之前解过一些类似的案例。 > > jun su 于2020年9月23日周三 上午9:53写道: > > > hi godfrey, > > > > 刚看了下,

Re: Calcite在嵌套多层包含where条件的sql语句时优化器OOM

2020-09-22 文章 jun su
hi godfrey, 刚看了下, blink应该也会用hep , 上文说错了 jun su 于2020年9月23日周三 上午9:19写道: > hi godfrey, > 我用了最新代码的blink没这个问题, 我看代码flink是先用hep然后进valcano, 而blink貌似没用hep, > 我将hep代码注释后valcano的迭代次数会大幅减少, 语句嵌套10层基本在4000次左右能获取最佳方案,我再debug看下原因 > > godfrey he 于2020年9月22日周二 下午8:58写道: > >

Re: Calcite在嵌套多层包含where条件的sql语句时优化器OOM

2020-09-22 文章 jun su
hi godfrey, 我用了最新代码的blink没这个问题, 我看代码flink是先用hep然后进valcano, 而blink貌似没用hep, 我将hep代码注释后valcano的迭代次数会大幅减少, 语句嵌套10层基本在4000次左右能获取最佳方案,我再debug看下原因 godfrey he 于2020年9月22日周二 下午8:58写道: > blink planner 有这个问题吗? > > jun su 于2020年9月22日周二 下午3:27写道: > > > hi all, > > > &g

Calcite在嵌套多层包含where条件的sql语句时优化器OOM

2020-09-22 文章 jun su
quot;,t4) val t5 = fbTableEnv.sqlQuery("select Auth_Roles,Target_UserSid,Thread_ID,access_path,action from t4 where action= 'e'") -- Best, Jun Su

Re: 多线程模式下使用Blink TableEnvironment

2020-09-17 文章 jun su
t; > 参考zeppelin的做法,每个线程里都调用这个 > > > > > > > https://github.com/apache/zeppelin/blob/master/flink/interpreter/src/main/java/org/apache/zeppelin/flink/FlinkSqlInterrpeter.java#L111 > > > > > > jun su 于2020年9月14日周一 上午11:54写道: > > >

多线程模式下使用Blink TableEnvironment

2020-09-13 文章 jun su
) at GeneratedMetadataHandler_NonCumulativeCost.getNonCumulativeCost(Unknown Source) -- Best, Jun Su

Re: RocksDBKeyedStateBackend如何写磁盘

2020-08-02 文章 jun su
sdb,和 rocksdb 刷磁盘还不是一回事。 > Best, > Congxian > > > jun su 于2020年7月31日周五 下午4:57写道: > > > hi, > > > > 看到 RocksDBWriteBatchWrapper类有 flushIfNeeded()方法 , 是这个么? > > > > private void flushIfNeeded() throws RocksDBException { > > boolean needF

Re: RocksDBKeyedStateBackend如何写磁盘

2020-07-31 文章 jun su
"user-zh" > < > sujun891...@gmail.com; > 发送时间:2020年7月31日(星期五) 下午4:37 > 收件人:"user-zh" > 主题:RocksDBKeyedStateBackend如何写磁盘 > > > > hi all, > > 请问RocksDBKeyedStateBackend是何时将state序列化到磁盘的, 窗口结束时间?还是配置的checkpoint周期,谢谢 > > -- > Best, > Jun Su -- Best, Jun Su

RocksDBKeyedStateBackend如何写磁盘

2020-07-31 文章 jun su
hi all, 请问RocksDBKeyedStateBackend是何时将state序列化到磁盘的, 窗口结束时间?还是配置的checkpoint周期,谢谢 -- Best, Jun Su

Re: Blink的Batch模式的并行度问题

2020-07-27 文章 jun su
; [1] > > https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/config.html#table-exec-resource-default-parallelism > > jun su 于2020年7月27日周一 下午3:50写道: > > > hi all, > > > > Flink 目前的blink table planner batch mode > > (读hdfs上的orc文件)只支持StreamTableSource

Blink的Batch模式的并行度问题

2020-07-27 文章 jun su
hi all, Flink 目前的blink table planner batch mode (读hdfs上的orc文件)只支持StreamTableSource和LookupableTableSource, 但是StreamTableSource的并行度默认应该是1 , 底层是ContinuousFileMonitoringFunction , 那么如何能扩大并行度来优化性能呢? -- Best, Jun Su

Re: Blink Planner构造Remote Env

2020-07-27 文章 jun su
是依赖问题,解决了 jun su 于2020年7月27日周一 下午2:29写道: > hi Jark, > > 抱歉这么晚回复邮件, 在flink 1.11.0版本上按照你的方式试验了下, > 创建StreamTableEnvironmentImpl的方式参照了StreamTableEnvironmentImpl#create, > 只是删除了方法中检查模式的代码 settings.isStreamingMode() , 结果报以

Re: Blink Planner构造Remote Env

2020-07-27 文章 jun su
(.. > execEnv, .., false); // 构造的参数可以参考 StreamTableEnvironmentImpl#create 的实现 > > Best, > Jark > > On Tue, 19 May 2020 at 15:27, jun su wrote: > > > hi all, > > > > 过去在ide中想连接远程flink集群可以 ExecutionEnvironment.createRemoteEnvironment() > > > > 官网Bli

Batch 模式 Table API 增加cache算子

2020-06-04 文章 jun su
hi all, 最初blink分支上有对batch模式下的table cache操作, 后续会merge到flink上来么? -- Best, Jun Su

Blink Planner构造Remote Env

2020-05-19 文章 jun su
hi all, 过去在ide中想连接远程flink集群可以 ExecutionEnvironment.createRemoteEnvironment() 官网Blink构建方式是: val bbSettings = EnvironmentSettings.newInstance().useBlinkPlanner().inBatchMode().build() val bbTableEnv = TableEnvironment.create(bbSettings) 请问如何连接远程集群呢? -- Best, Jun Su

Re: Blink模式下运用collect方法快速获取结果

2020-04-24 文章 jun su
非常感谢, 我用的flink-1.9.2 , 但是直接将代码copy过来可以用了! Jingsong Li 于2020年4月24日周五 下午3:02写道: > 1.10里面有TableUtils了,里面有collectToList > > > Best, > Jingsong Lee > > On Fri, Apr 24, 2020 at 2:49 PM jun su wrote: > > > hi all, > > > > 找到了源码中BatchTableEnvUtil类使用了Collec

Re: Blink模式下运用collect方法快速获取结果

2020-04-24 文章 jun su
= UUID.randomUUID().toString tEnv.registerTableSink(sinkName, sink) tEnv.insertInto(table, sinkName) val res = tEnv.execute("test") val accResult: JArrayList[Array[Byte]] = res.getAccumulatorResult(id) SerializedListAccumulator.deserializeList(accResult, typeSerializer) } jun su

Blink模式下运用collect方法快速获取结果

2020-04-24 文章 jun su
hi all, blink模式下没法将table 转为 dataset , 所以如果直接collect了, 请问有类似方法可以获取到 结果用于代码调试么? -- Best, Jun Su

Re: 重复声明watermark的问题

2020-04-10 文章 jun su
ark,前面的watermark会被覆盖掉吗? > 比如我再source端声明了watermark,进行了一系列操作后,我觉得watermark的延迟不满足需求,就再次声明一次。 > 另外,稍微咨询下另外一个问题,两个流join之后,watermark会消失吗?看书上说的是,以两个流最小的watermark(全局最小)为准。 > 主要是在阿里云Blink上,使用sql进行join后,说的是时间属性字段会消失。有点不明白。 > -- Best, Jun Su

Re: keyby的乱序处理

2020-03-30 文章 jun su
> > | | > > Jimmy Wong > > | > > | > > wangzmk...@163.com > > | > > 签名由网易邮箱大师定制 > > > > > > 在2020年03月30日 20:58,tingli ke 写道: > > 请教一个问题:kafka-per-partition 的watermark的分配,可以在keyby之后分配吗,想做key化的乱序处理能支持吗 > > > -- Best, Jun Su

Re: 读取ORC文件的VectorizedRowBatch的最佳batchSize设置建议

2020-03-17 文章 jun su
ize太大也不利于cache。 > batchSize不一定要和row group一样,这种row group特别大的情况下,batchSize 够用就行了。 > > Best, > Jingsong Lee > > On Tue, Mar 17, 2020 at 11:52 AM jun su wrote: > > > hi all: > > 在向量化读取orc文件时, 需要配置VectorizedRowBatch的batchSize, 用于设置每次读取的行数, > > 我知道根据orc索引, 读取orc文件

读取ORC文件的VectorizedRowBatch的最佳batchSize设置建议

2020-03-16 文章 jun su
hi all: 在向量化读取orc文件时, 需要配置VectorizedRowBatch的batchSize, 用于设置每次读取的行数, 我知道根据orc索引, 读取orc文件最小的单位应该是row group(默认1w行), 底层会根据filter条件来精确到哪些row group, 那之前提到的batchSize设置为1000时 , 那一个row group需要读取10次, 每个row group又是按列存储, 势必会存在非连续读取的可能, 这样岂不是做不到最大优化? 是够将batchSize设置和row group配置一样才能读取效率最大化呢? 不知道我的理解是否正确.

Re: Re: flink 1.8 内的StreamExecutionEnvironment 对于 FileInputFormat 多file path 不兼容问题咨询

2020-03-11 文章 jun su
应该只能改ContinuousFileMonitoringFunction源码 , 支持多path 王智 于2020年3月4日周三 下午6:34写道: > 我的需求是2,现在我使用的是execEnv.createInput(inputFormat()), > > 我先去试试 env.addSource(new InputFormatSourceFunction(..)...)。 > > 多谢~ > > > > > > > > > 原始邮件 > > > 发件人:"JingsongLee"< lzljs3620...@aliyun.com.INVALID ; > >

Re: ParquetTableSource在blink table planner下的使用问题

2020-02-17 文章 jun su
hi Jark, 就是因为我的数据里 event_name 字段的value 没有 "没有这个值" , 所以才比较奇怪 Jark Wu 于2020年2月18日周二 下午12:15写道: > Hi jun, > > 这个是符合预期的行为哈。这说明你的 source 中有4条 event_name 的值是 '没有这个值' > > Best, > Jark > > On Mon, 17 Feb 2020 at 23:26, jun su wrote: > >> hi Jark Wu,

Re: ParquetTableSource在blink table planner下的使用问题

2020-02-14 文章 jun su
1. 发现ParquetTableSource在flink table planner下, stream/batch 两个模式下都有以上提出的问题, 2. blink table planner下没有以上问题, 但是中文print方法有编码问题 不清数是不是我使用问题,麻烦查证下 jun su 于2020年2月14日周五 下午6:30写道: > hi Jark Wu, > > 抱歉以下是我的代码和结果: > > public static void main(String[] args) throws Exception { > Ex

Re: ParquetTableSource在blink table planner下的使用问题

2020-02-14 文章 jun su
hi JingsongLee, 我在测试ParquetTableSource时遇到一个问题: 我的数据中没有where条件设置的值, 但是打印的结果, 是将where条件直接赋值给了该字段 [image: image.png] JingsongLee 于2020年2月14日周五 下午5:05写道: > Hi jun, > > pushdown逻辑是批流复用的,应该work的很愉快。 > > Best, > Jingsong Lee > > >

ParquetTableSource在blink table planner下的使用问题

2020-02-14 文章 jun su
你好: 官网文档中说明Blink Table Planner并不支持BatchTableSource, 目前最新版1.10代码中的ParquetTableSource还是BatchTableSource,那么说明目前的ParquetTableSource还不支持blink table planner ?如果将现有的ParquetTableSource改成StreamTableSource后, pushdown逻辑会不会出现bug?

Re: 疑似ParquetTableSource Filter Pushdown bug

2020-01-12 文章 jun su
已经创建issue: https://issues.apache.org/jira/browse/FLINK-15563 Kurt Young 于2020年1月8日周三 下午5:33写道: > 如果是优化器一直卡住不能退出,那基本肯定是BUG了。请开一个issue把这些信息上传上去吧,我们会调查一下是什么问题导致的。 > > Best, > Kurt > > > On Wed, Jan 8, 2020 at 5:12 PM jun su wrote: > > > 添加代码文字: > > >

Re: 疑似ParquetTableSource Filter Pushdown bug

2020-01-08 文章 jun su
;:\"device\",\"type\":[\"null\",\"string\"],\"default\":null},{\"name\":\"timestamp_string\",\"type\":[\"null\",\"string\"],\"default\":null},{\"name\":\"occur_time\",\"type\":[