Re: 反复提交Job会导致TaskManager 元空间oom?

2022-07-04 Thread LuNing Wang
目前我觉得最好的解决办法就是定期重启JM和TM进程。


知而不惑  于2022年7月4日周一 17:07写道:

> 这个问题没有人解答吗?
>
>
>
>
> --原始邮件--
> 发件人:
>   "知而不惑"
> <
> chenliangv...@qq.com;
> 发送时间:2022年5月18日(星期三) 上午10:45
> 收件人:"user-zh"
> 主题:反复提交Job会导致TaskManager 元空间oom?
>
>
>
> 请问大家一个问题,
> 场景:
> 版本是Flink 1.14
> 我们使用standalone 模式,我们的Flink job由supervisorctl托管,JM和TM用systemd托管
>
>
> 异常:
> job异常重启设置了两次的flink延迟重启:restart-strategy.fixed-delay.attempts: 2,
> 我们线上有个业务代码没有捕获一个异常,导致job重启两次后,再由supervisorctl重新提交job,循环了很多次之后,
>
> TM出现了元空间OOM(我们已经把元空间的内存加大,还是会出现),然后TM就掉了,控制台上没有TM了,这影响了其他的job,但是TM进程也没有退出,我们的TM由Systemd托管,所以TM一直没有重启,
> 处在一个“假死”状态,我们是用的standalone模式,只有一个TM,
>
>
> 日志:
> TM日志出现:TM metaspace oom
> JM日志:Association with remote system [akka.tcp://flink@localhost:43583]
> has failed, address is now gated for [50] ms. Reason: [Association failed
> with [akka.tcp://flink@localhost:43583]] Caused by:
> [java.net.ConnectException: Connection refused: localhost/127.0.0.1:43583]
> JM 连接 TM接口失败,unreachable
>
>
>
> 补充:
> 我们把元空间内存配置放到512M。再次重现:
> 发现每次提交job的时候:
> 观察tm metaspace 内存变化:179MB 183MB 207MB 232MB 256MB
> 280MB 352MB 372MB
> 元空间一直没回收,这样最终会导致TM metaspace oom
>
>
>
> 问题:
> 1.想问下TM元空间oom异常,是反复提交job造成,还是job的业务代码有问题,
> 2.TM元空间OOM为什么会导致JM认为TM掉线,TM也不自己退出进程
>
>
> 希望获得的帮助:
> 1.上述问题原因
> 2.有什么办法可以在standalone模式下,识别到TM掉线,从而我们能做一些自动的运维操作:比如重启整个集群


Re: 关于PyFlink的环境问题,期望得到回复。

2022-06-19 Thread LuNing Wang
Hi

你可以尝试配置 HADOOP_CLASSPATH 环境变量[1] 不用非得手动导入Hadoop相关Jar包
[1]
https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/deployment/resource-providers/yarn/#preparation

Best regards
Luning Wang

yuxia  于2022年6月20日周一 10:07写道:

> Hadoop 环境依赖多个 jar 包,单单一个 hadoop-common 是远远不够地。可以试试使用这个 Flink 提供的 hadoop3 的
> uber 包[1]。
>
>
> 如果还不行地话,把完整堆栈贴一下,看一下是哪个类找不到。
>
> [1]
> https://repository.cloudera.com/artifactory/cloudera-repos/org/apache/flink/flink-shaded-hadoop-3-uber/3.1.1.7.2.8.0-224-9.0/flink-shaded-hadoop-3-uber-3.1.1.7.2.8.0-224-9.0.jar
>
> Best regards,
> Yuxia
>
> - 原始邮件 -
> 发件人: "张 兴博" 
> 收件人: "user-zh" 
> 发送时间: 星期一, 2022年 6 月 20日 上午 8:54:21
> 主题: 关于PyFlink的环境问题,期望得到回复。
>
> 您好:
>
>  
> 我是西南财经大学一个在读博士,目前想使用PyFlink,但是遇到了一个问题,我的集群采用的CDH6.2.0,其中的Hadoop为3.0.0版本。当我在pytlink的程序里引入hadoop-common-3.0.0.jar(或hadoop-common-3.0.0-cdh6.2.0.jar)的时候,运行程序就会报错:
> Caused by: java.lang.NoClassDefFoundError: Could not initialize class
> org.apache.hadoop.security.UserGroupInformation
> at
> org.apache.flink.hbase.shaded.org.apache.hadoop.hbase.security.User$SecureHadoopUser.(User.java:300)
> at
> org.apache.flink.hbase.shaded.org.apache.hadoop.hbase.security.User.getCurrent(User.java:173)
> at
> org.apache.flink.hbase.shaded.org.apache.hadoop.hbase.security.UserProvider.getCurrent(UserProvider.java:187)
> at
> org.apache.flink.hbase.shaded.org.apache.hadoop.hbase.AuthUtil.loginClient(AuthUtil.java:107)
> at
> org.apache.flink.hbase.shaded.org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:128)
> at
> org.apache.flink.connector.hbase.sink.HBaseSinkFunction.open(HBaseSinkFunction.java:116)
> at
> org.apache.flink.api.common.functions.util.FunctionUtils.openFunction(FunctionUtils.java:34)
> at
> org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.open(AbstractUdfStreamOperator.java:100)
> at
> org.apache.flink.table.runtime.operators.sink.SinkOperator.open(SinkOperator.java:58)
> at
> org.apache.flink.streaming.runtime.tasks.RegularOperatorChain.initializeStateAndOpenOperators(RegularOperatorChain.java:107)
> at
> org.apache.flink.streaming.runtime.tasks.StreamTask.restoreGates(StreamTask.java:700)
> at
> org.apache.flink.streaming.runtime.tasks.StreamTaskActionExecutor$1.call(StreamTaskActionExecutor.java:55)
> at
> org.apache.flink.streaming.runtime.tasks.StreamTask.restoreInternal(StreamTask.java:676)
> at
> org.apache.flink.streaming.runtime.tasks.StreamTask.restore(StreamTask.java:643)
> at
> org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(Task.java:948)
> at
> org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:917)
> at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:741)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:563)
> at java.lang.Thread.run(Thread.java:750)
>
> 我看在github上采用的hadoop-common版本为2.8.5,是不支持3.0.0吗?还是什么原因呀,期望解答,万分感谢。
>


Re: Flink OLAP 与 Trino TPC-DS 对比

2022-05-06 Thread LuNing Wang
谢谢 Yu Li 老师提醒,
我彻底开放了测试表格,和资源配置文档。

《TPC-DS各引擎耗时》
https://www.yuque.com/deadwind/notes/tpcds-benchmark-table
《TPC-DS资源配置》
https://www.yuque.com/deadwind/notes/tpcds-resource
Best,
LuNing Wang.


Re: FlinkSQL 对接k8s的提交问题

2022-04-25 Thread LuNing Wang
SQL Client的Application模式现在还不支持,方案在设计中。
https://issues.apache.org/jira/browse/FLINK-26541

吕宴全 <1365976...@qq.com.invalid> 于2022年4月24日周日 14:45写道:

> 我准备使用Kyuubi对接FlinkSQL,将任务运行在k8s环境中,任务可能包括离线作业(Application
> mode)和即席查询(Session mode)。在Application模式下,从jar中构建jobgraph。SQL示例如下:
>
>
> CREATE TABLE T (
> id INT
> ) WITH (
> 'connector.type' = 'filesystem',
> 'connector.path' = 'file:///tmp/tmp.csv',
> 'format.type' = 'csv',
> 'format.derive-schema' = 'true'
> );
>
>
>
> insert into T values(1);
>
>
>
>
> insert这条语句我希望在Application模式下执行,但是我不能只把当前的这条SQL作为参数执行,
> 因为这可能会缺少上下文信息(catalog)。因此我需要记录之前的一些SQL,并在每个任务都将之前的SQL一起作为参数,这会比较麻烦。
> 另一方面,在table的Executor里其实可以构建好jobgraph,这样将jobgraph作为参数提交就不需要传递上下文SQL了,但是k8s中已经没有per
> job这种模式的实现了。
>
>
> 我对这种场景下提交离线任务感到困惑,希望大家能给我一些建议,或者说我的理解是不是存在问题的?


Re: Flink OLAP 与 Trino TPC-DS 对比

2022-04-19 Thread LuNing Wang
https://www.yuque.com/docs/share/8625d14b-d465-48a3-8dc1-0be32b138f34?#lUX6
《tpcds-各引擎耗时》
链接有效期至 2022-04-22 10:31:05

LuNing Wong  于2022年4月18日周一 09:44写道:

> 补充,用的Hive 3.1.2 Hadoop 3.1.0做的数据源。
>
> LuNing Wong  于2022年4月18日周一 09:42写道:
>
> > Flink版本是1.14.4, Trino是359版本,tm.memory.process.size和CPU资源我都和Trino对齐了。都是32G
> > 16核 16线程,2台计算节点。
> >
> > Zhilong Hong  于2022年4月15日周五 18:21写道:
> >
> >> Hello, Luning!
> >>
> >>
> >>
> 我们目前也正在关注Flink在OLAP场景的性能表现,请问你测试的Flink和Trino版本分别是什么呢?另外我看到flink-sql-benchmark中所使用的集群配置和你的不太一样,可能需要根据集群资源对flink-conf.yaml中taskmanager.memory.process.size等资源配置进行调整。
> >>
> >> Best,
> >> Zhilong
> >>
> >> On Fri, Apr 15, 2022 at 2:38 PM LuNing Wang 
> >> wrote:
> >>
> >> > 跑了100个 TPC-DS SQL
> >> > 10 GB 数据、2个Worker(TM)、每个32G内存,16个核心。
> >> > Flink平均用时 18秒
> >> > Trino平均用时 7秒
> >> >
> >> > 我看字节跳动和阿里的老师测试,Flink和presto
> >> OLAP性能接近,但是我测的差距很大。想进一步和老师交流下,是不是我Flink设置的有问题。
> >> > 我基本上是按照下面这个项目里模板配置的Flink相关参数。
> >> > https://github.com/ververica/flink-sql-benchmark
> >> >
> >> >
> >> > LuNing Wang  于2022年4月15日周五 14:34写道:
> >> >
> >> > > 跑了100个SQL
> >> > >
> >> >
> >>
> >
>


Re: Flink OLAP 与 Trino TPC-DS 对比

2022-04-15 Thread LuNing Wang
跑了100个 TPC-DS SQL
10 GB 数据、2个Worker(TM)、每个32G内存,16个核心。
Flink平均用时 18秒
Trino平均用时 7秒

我看字节跳动和阿里的老师测试,Flink和presto OLAP性能接近,但是我测的差距很大。想进一步和老师交流下,是不是我Flink设置的有问题。
我基本上是按照下面这个项目里模板配置的Flink相关参数。
https://github.com/ververica/flink-sql-benchmark


LuNing Wang  于2022年4月15日周五 14:34写道:

> 跑了100个SQL
>


Flink OLAP 与 Trino TPC-DS 对比

2022-04-15 Thread LuNing Wang
跑了100个SQL


Re: flink1.1.36用SQL方式如何设置输出到hive表为upsert模式?

2022-04-06 Thread LuNing Wang
Hi,

Hive sink不支持 upsert写入,只能INSERT写入,你怎么设置都不行,一般这种情况可以使用hudi和iceberg作为Sink接受
upsert数据。

Best,
LuNing Wang

799590...@qq.com.INVALID <799590...@qq.com.invalid> 于2022年4月6日周三 14:37写道:

> 问题:flink1.1.36用SQL方式如何设置输出到hive表为upsert模式?
>
> flink:1.13.6
> hive:1.1.1
> hadoop:2.6.0-cdh5.16.2
>
> 纯SQL的方式,使用kafka作为source,中间的转换会有DISTINCT 或者 GROUP 操作,将计算结果sink到hive表,会报下面的错误
>
> doesn't support consuming update changes which is produced by node
> GroupAggregate(groupBy=[id, user_id, status, EXPR$3]
>
> 在网上找了答案,说需要将sink表设置为upsert模式,尝试过按照下列方式创建sink表,创建表能成功,但提交INSERT INTO时还是报错
>
> source表
>
> CREATE TABLE data_2432_5074_model(
> id STRING,
> user_id STRING,status STRING
> ) WITH (
> 'connector' = 'kafka',
> 'topic' = 'person',
> 'properties.bootstrap.servers' = '192.168.9.116:9092',
> 'properties.group.id' = 'chinaoly-group',
> 'scan.startup.mode' = 'latest-offset',
> 'format' = 'json',
> 'json.fail-on-missing-field'='false',
> 'json.ignore-parse-errors'='true'
> )
> sink表
>
> CREATE TABLE output_2432_5076_model_1649226175146(
> id STRING,
> user_id STRING,
> status STRING,
> my_dt timestamp
> ) TBLPROPERTIES (
> 'streaming-source.enable' = 'true',
> 'streaming-source.partition.include' = 'all',
> 'streaming-source.partition-order' = 'create-time',
> 'sink.partition-commit.watermark-time-zone' = 'Asia/Shanghai',
> 'sink.partition-commit.policy.kind' = 'metastore,success-file',
> 'write.upsert.enable' = 'true',
> 'streaming-source.monitor-interval' = '1 min'
> )
>
> 计算逻辑
> INSERT INTO output_2432_5076_model_1649226175146 SELECT DISTINCT id AS id,
> user_id AS user_id, status AS status ,proctime() FROM (SELECT * FROM
> data_2432_5074_model) WHERE status = '1'
>
> 万能的官方,能否给我答案,先谢谢了。
>
>
>
> 799590...@qq.com
>


Re: flink table store

2022-04-06 Thread LuNing Wang
Hi,

Table store是存储,应和数据湖类似

Best,
LuNing Wang

yidan zhao  于2022年4月6日周三 16:55写道:

> 看官网出来个 flink table store,和 flink table、flink sql 那一套有啥区别呢?
>


Re: flink on k8s场景,大家一般如何解决访问hdfs的问题呢。

2022-03-30 Thread LuNing Wang
也可以使用MinIO做存储。

casel.chen  于2022年3月30日周三 12:05写道:

> 我们是直接使用云存储,像阿里云的oss,没有再搭建hadoop集群。如果flink on
> k8s的确需要访问hadoop的话,是需要打包hadoop发行包在镜像里面的,配置好core-site.xml, hdfs-site.xml等
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> 在 2022-03-30 12:01:54,"yidan zhao"  写道:
> >如题,是需要打包hadoop client到镜像中吗。
>


Re: 退订

2022-03-30 Thread LuNing Wang
Hi!

退订中文邮件列表请发送任意邮件到 user-zh-unsubscr...@flink.apache.org。

如果不想收到邮件列表的邮件,但希望关注列表中的讨论,可以查看
https://lists.apache.org/list.html?user-zh@flink.apache.org。

袁超 <13699142...@163.com> 于2022年3月30日周三 10:57写道:

> 退订
>


Re: 退订

2022-03-30 Thread LuNing Wang
Hi!

退订中文邮件列表请发送任意邮件到 user-zh-unsubscr...@flink.apache.org。

如果不想收到邮件列表的邮件,但希望关注列表中的讨论,可以查看
https://lists.apache.org/list.html?user-zh@flink.apache.org。

董剑辉  于2022年3月29日周二 17:25写道:

> 退订
>


Re: Pyflink elastic search connectors

2022-03-30 Thread LuNing Wang
Hi,

The principle of the python datastream connector is interprocess
communication via py4j. I blocked in a class loading problem, so I haven't
achieved the PR about the Python ES datastream connector yet. Compared with
other connectors, the ES is a little more troublesome. Because implementing
of interface ElasticsearchEmitter is difficult in python code.

If you want to use Python DataStream API for processing ES data and haven't
any custom wrapper code. You can use PyFlink Table API to connect ES and
convert Table to DataStream. When you use Table API.
https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/dev/table/data_stream_api/

Beat,
LuNing Wang


Sandeep Sharat  于2022年3月30日周三 18:38写道:

> Hi,
>
> I am pretty much a novice in python. So writing an entire wrapper using
> python may be a tough nut to crack for me. But just out of curiosity, want
> to ask ask the question that why were the connectors not implemented in
> python api. Is it because of a very lesser number of  use cases ???or most
> use cases regarding the elasticsearch use the table api to achieve it??
>
> On Wed, 30 Mar, 2022, 9:58 am Sandeep Sharat, 
> wrote:
>
>> Hi,
>>
>> Thank you for the quick responses. We are using the datastream api for
>> pyflink. We are trying to implement a wrapper in python for the same as we
>> speak. Hopefully it will work out. 
>>
>> On Wed, 30 Mar, 2022, 8:02 am Xingbo Huang,  wrote:
>>
>>> Hi,
>>>
>>> Are you using datastream api or table api?If you are using the table
>>> api, you can use the connector by executing sql[1]. If you are using the
>>> datastream api, there is really no es connector api provided, you need to
>>> write python wrapper code, but the wrapper code is very simple. The
>>> underlying code takes use of py4j to call the java api of es connector. For
>>> details, you can refer to the wrapper code in kafka or pulsar[2].
>>>
>>> [1]
>>> https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/connectors/table/overview/
>>> [2]
>>> https://github.com/apache/flink/blob/master/flink-python/pyflink/datastream/connectors.py
>>>
>>> Best,
>>> Xingbo
>>>
>>> Sandeep Sharat  于2022年3月29日周二 20:51写道:
>>>
>>>> Hello Everyone,
>>>>
>>>> I have been working on a streaming application using elasticsearch as
>>>> the sink. I had achieved it using the java api quite easily. But due to a
>>>> recent policy change we are moving towards the python api for flink,
>>>> however we were unable to find any python elastic search connectors for
>>>> flink. We were able to find support for the kafka connectors in python.
>>>> Does it mean that we have to write our own connectors in python  to
>>>> make use of the flink-elasticsearch connector jar?
>>>>
>>>> Thanks in advance
>>>> --
>>>> Thanks & Regards
>>>> Sandeep Sharat Kumar
>>>>
>>>


Re: 退订

2022-03-28 Thread LuNing Wang
Hi!

退订中文邮件列表请发送任意邮件到 user-zh-unsubscr...@flink.apache.org。

如果不想收到邮件列表的邮件,但希望关注列表中的讨论,可以查看
https://lists.apache.org/list.html?user-zh@flink.apache.org。

天下五帝东  于2022年3月7日周一 19:02写道:

> 退订


Re: 退订

2022-03-28 Thread LuNing Wang
Hi!

退订中文邮件列表请发送任意邮件到 user-zh-unsubscr...@flink.apache.org。

如果不想收到邮件列表的邮件,但希望关注列表中的讨论,可以查看
https://lists.apache.org/list.html?user-zh@flink.apache.org。

Minc  于2022年3月10日周四 11:02写道:

>
> 退订
>
> | |
> Minc
> |
> |
> 邮箱:xing...@126.com
> |
>
> 签名由 网易邮箱大师 定制


Re: 退订

2022-03-28 Thread LuNing Wang
Hi!

退订中文邮件列表请发送任意邮件到 user-zh-unsubscr...@flink.apache.org。

如果不想收到邮件列表的邮件,但希望关注列表中的讨论,可以查看
https://lists.apache.org/list.html?user-zh@flink.apache.org。

liber xue  于2022年3月7日周一 20:59写道:

> 退订
>


Re: 退订

2022-03-28 Thread LuNing Wang
Hi!

退订中文邮件列表请发送任意邮件到 user-zh-unsubscr...@flink.apache.org。

如果不想收到邮件列表的邮件,但希望关注列表中的讨论,可以查看
https://lists.apache.org/list.html?user-zh@flink.apache.org。

hihl  于2022年3月25日周五 15:23写道:

>
>


Re: 退订

2022-03-28 Thread LuNing Wang
Hi!

退订中文邮件列表请发送任意邮件到 user-zh-unsubscr...@flink.apache.org。

如果不想收到邮件列表的邮件,但希望关注列表中的讨论,可以查看
https://lists.apache.org/list.html?user-zh@flink.apache.org。

guoxb__...@sina.com  于2022年3月25日周五 17:16写道:

>
> 退订
>
>
> guoxb__...@sina.com
>


Re: 退订

2022-03-28 Thread LuNing Wang
Hi!

退订中文邮件列表请发送任意邮件到 user-zh-unsubscr...@flink.apache.org。

如果不想收到邮件列表的邮件,但希望关注列表中的讨论,可以查看
https://lists.apache.org/list.html?user-zh@flink.apache.org。

Peter Gee  于2022年3月25日周五 18:55写道:

> 退订
>


Re: 退订

2022-03-28 Thread LuNing Wang
Hi!

退订中文邮件列表请发送任意邮件到 user-zh-unsubscr...@flink.apache.org。

如果不想收到邮件列表的邮件,但希望关注列表中的讨论,可以查看
https://lists.apache.org/list.html?user-zh@flink.apache.org。

杨自闯  于2022年3月26日周六 06:41写道:

> 退订


Re: 退订

2022-03-28 Thread LuNing Wang
Hi!

退订中文邮件列表请发送任意邮件到 user-zh-unsubscr...@flink.apache.org。

如果不想收到邮件列表的邮件,但希望关注列表中的讨论,可以查看
https://lists.apache.org/list.html?user-zh@flink.apache.org。

Peter Gee  于2022年3月26日周六 20:09写道:

> 退订
>


Re: 退订

2022-03-28 Thread LuNing Wang
Hi!

退订中文邮件列表请发送任意邮件到 user-zh-unsubscr...@flink.apache.org。

如果不想收到邮件列表的邮件,但希望关注列表中的讨论,可以查看
https://lists.apache.org/list.html?user-zh@flink.apache.org。

稻草人  于2022年3月26日周六 21:32写道:

> 退订


Re: 退订

2022-03-28 Thread LuNing Wang
Hi!

退订中文邮件列表请发送任意邮件到 user-zh-unsubscr...@flink.apache.org。

如果不想收到邮件列表的邮件,但希望关注列表中的讨论,可以查看
https://lists.apache.org/list.html?user-zh@flink.apache.org。

hk lv  于2022年3月26日周六 23:13写道:

> 退订
>


Re: 退订

2022-03-28 Thread LuNing Wang
Hi!

退订中文邮件列表请发送任意邮件到 user-zh-unsubscr...@flink.apache.org。

如果不想收到邮件列表的邮件,但希望关注列表中的讨论,可以查看
https://lists.apache.org/list.html?user-zh@flink.apache.org。

写虫师  于2022年3月22日周二 18:23写道:

> 退订


Re: 退订

2022-03-28 Thread LuNing Wang
Hi!

退订中文邮件列表请发送任意邮件到 user-zh-unsubscr...@flink.apache.org。

如果不想收到邮件列表的邮件,但希望关注列表中的讨论,可以查看
https://lists.apache.org/list.html?user-zh@flink.apache.org。

bjbs_270  于2022年3月25日周五 14:56写道:

> 退订
>
> 发自我的iPhone
>
> > 在 2022年3月25日,07:50,邱志磊  写道:
> >
> > 退订
>


Re: 退订

2022-03-28 Thread LuNing Wang
Hi!

退订中文邮件列表请发送任意邮件到 user-zh-unsubscr...@flink.apache.org。

如果不想收到邮件列表的邮件,但希望关注列表中的讨论,可以查看
https://lists.apache.org/list.html?user-zh@flink.apache.org。

598465018 <598465...@qq.com.invalid> 于2022年3月23日周三 15:28写道:

> 退订


Flink ad-hoc方向问题

2022-03-23 Thread LuNing Wang
Flink未来会在ad-hoc方向投入吗?类似Flink自带Trino/Presto的性能优化方式,这样批、流、OLAP/ad-hoc只需要一个引擎就可以。