这种一般是因为APIServer那边有问题导致单次的ConfigMap renew lease annotation的操作失败,Flink默认会重试的
如果你发现因为这个SocketTimeoutException原因导致了任务Failover,可以把下面两个参数调大
high-availability.kubernetes.leader-election.lease-duration: 60s
high-availability.kubernetes.leader-election.renew-deadline: 60s
Best,
Yang
On Tue, Mar 12,
可以通过JobResultStore[1]来获取任务最终的状态,flink-kubernetes-operator也是这样来获取的
[1].
https://cwiki.apache.org/confluence/display/FLINK/FLIP-194%3A+Introduce+the+JobResultStore
Best,
Yang
Weihua Hu 于2023年3月22日周三 10:27写道:
> Hi
>
> 我们内部最初版本是通过 cluster-id 来唯一标识一个 application,同时认为流式任务是长时间运行的,不应该主动退出。如果该
>
可以通过给Prometheus server来配置metric_relabel_configs[1]来控制采集哪些metrics
[1].
https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
Best,
Yang
casel.chen 于2023年3月22日周三 13:47写道:
>
其实可以参考Flink Kubernetes
Operator里面的做法,设置execution.shutdown-on-application-finish参数为false
然后通过轮询Flink RestAPI拿到job的状态,job结束了再主动停掉Application cluster
Best,
Yang
JasonLee <17610775...@163.com> 于2022年11月24日周四 09:59写道:
> Hi
>
>
> 可以通过 Flink 的 Metric 和 Yarn 的 Api 去获取任务的状态(任务提交到 yarn 的话)
>
>
> Best
>
Just Kindly remind, you attached images could not show normally.
Given that *ApplicationDeployer* is not only used for Yarn application
mode, but also native Kubernetes, I am not sure which way you are referring
to return the applicationId.
We already print the applicationId in the client logs.
从1.15开始,任务结束不会主动把JobManager删除掉了。所以Kubernetes Operator就可以正常查到Job状态并且更新
Best,
Yang
¥¥¥ 于2022年10月25日周二 15:58写道:
> 退订
>
>
>
>
> --原始邮件--
> 发件人:
> "user-zh"
>
> 发送时间:2022年10月25日(星期二) 下午3:33
> 收件人:"user-zh"
> 主题:batch
你在Flink client端提交任务前设置一下HADOOP_CONF_DIR环境变量
然后再运行flink run-application命令
Best,
Yang
yanfei lei 于2022年9月22日周四 11:04写道:
> Hi Tino,
> 从org.apache.flink.core.fs.FileSystem.java
> <
>
我猜测你是因为没有给TM设置service account,导致TM没有权限从K8s ConfigMap拿到leader,从而注册到RM、JM
-Dkubernetes.taskmanager.service-account=wuzhiheng \
Best,
Yang
Xuyang 于2022年8月30日周二 23:22写道:
> Hi, 能贴一下TM的日志吗,看Warn的日志貌似是TM一直起不来
> 在 2022-08-30 03:45:43,"Wu,Zhiheng" 写道:
> >【问题描述】
> >启用HA配置之后,taskmanager
Webhook主要的作用是做CR的校验,避免提交到K8s上之后才发现
例如:parallelism被错误的设置为负值,jarURI没有设置等
Best,
Yang
Kyle Zhang 于2022年7月27日周三 18:59写道:
> Hi,all
> 最近在看flink-k8s-operator[1],架构里有一个flink-webhook,请问这个container的作用是什么,如果配置
> webhook.create=false对整体功能有什么影响?
>
> Best regards
>
> [1]
>
>
Congrats! Thanks Gyula for driving this release, and thanks to all
contributors!
Best,
Yang
Gyula Fóra 于2022年7月25日周一 10:44写道:
> The Apache Flink community is very happy to announce the release of Apache
> Flink Kubernetes Operator 1.1.0.
>
> The Flink Kubernetes Operator allows users to
e 方式提交运行的任务,则用 FlinkDeployment,并配置好 job 部分。 会自动创建
> flink 集群,并根据 job 配置运行job。
> 这种方式不需要考虑集群创建、任务提交的步骤,本身就是一体。
> (2)对于 session 集群的创建,也是用 FlinkDeployment ,只是不需要指定 job 配置即可。
> (3)配合通过(2)方式创建的 session 集群,则可以配合 FlinkSessionJob 提交任务。
>
> Yang Wang 于2022年7月12日周二 17:10写道:
> &g
确认一下你是否正确设置了HADOOP_CONF_DIR环境变量
Best,
Yang
lishiyuan0506 于2022年7月14日周四 09:41写道:
> 打扰大家一下,请问一下各位在yarn提交flink的时候,有没有遇到过Retrying connect to server:
> 0.0.0.0/0.0.0.0:8030这个异常
>
>
> hadoop的classpath没问题,Spark和MR在Yarn上跑也没问题,就flink有这样的问题
>
>
> | |
> lishiyuan0506
> |
> |
> lishiyuan0...@163.com
> |
>
方式是什么原理。
> >
> > yidan zhao 于2022年7月12日周二 12:48写道:
> > >
> > > 我理解的 k8s 集群内是组成 k8s 的机器,是必须在 pod 内?我在k8s的node上也不可以是吧。
> > >
> > > Yang Wang 于2022年7月12日周二 12:07写道:
> > > >
> > > > 日志里面已经说明的比较清楚了,如果用的是ClusterIP的方式,那你的Flink
>
日志里面已经说明的比较清楚了,如果用的是ClusterIP的方式,那你的Flink
client必须在k8s集群内才能正常提交。例如:起一个Pod,然后再pod里面执行flink run
否则你就需要NodePort或者LoadBalancer的方式了
2022-07-12 10:23:23,021 WARN
org.apache.flink.kubernetes.KubernetesClusterDescriptor [] -
Please note that Flink client operations(e.g. cancel, list, stop,
Thanks Gyula for working on the first patch release for the Flink
Kubernetes Operator project.
Best,
Yang
Gyula Fóra 于2022年6月28日周二 00:22写道:
> The Apache Flink community is very happy to announce the release of Apache
> Flink Kubernetes Operator 1.0.1.
>
> The Flink Kubernetes Operator
Zhanghao的回答已经非常全面了,我再补充小点,删除Deployment保留HA ConfigMap是预期内的行为,文档里面有说明[1]
之所以这样设计有两点原因:
(1.) 任务可能会被重启,但使用相同的cluster-id,并且希望从之前的checkpoint恢复
(2.) 单纯的删除ConfigMap会导致存储在DFS(e.g. HDFS、S3、OSS)上面的HA数据泄露
[1].
The Apache Flink community is very happy to announce the release of Apache
Flink Kubernetes Operator 1.0.0.
The Flink Kubernetes Operator allows users to manage their Apache Flink
applications and their lifecycle through native k8s tooling like kubectl.
This is the first production ready release
可以临时通过-D "$internal.pipeline.job-id="来自定义job id,但是个内部参数
你可以看下[1],了解更多讨论的信息
[1]. https://issues.apache.org/jira/browse/FLINK-19358
Best,
Yang
谭家良 于2022年5月11日周三 22:17写道:
>
>
> 我使用的Application模式:Kubernetes
> 我使用的HA模式:Kubernetes HA
>
>
> 目前Application + HA发现所有的Job
* 使用flink run命令来提交任务到running的Session集群的话,只能是本地的jar
* 也可以使用rest接口来提交,先上传到JobManager端[1],然后运行上传的jar[2]
* 最后可以尝试一下flink-kubernetes-operator项目,目前Session job是支持远程jar的[3],项目还在不断完善
[1].
https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/ops/rest_api/#jars-upload
[2].
目前Application模式确实不能支持已经生成好的JobGraph运行,我能想到一个work around的办法是就先写一个user
jar直接把JobGraph提交到local的集群里面
就像下面这样
public class JobGraphRunner {
private static final Logger LOG =
LoggerFactory.getLogger(JobGraphRunner.class);
public static void main(String[] args) throws Exception {
final
track this issue.
>
>
>
> BRs,
>
> Chenyu
>
>
>
> *From: *"Zheng, Chenyu"
> *Date: *Friday, April 22, 2022 at 6:26 PM
> *To: *Yang Wang
> *Cc: *"u...@flink.apache.org" , "
> user-zh@flink.apache.org"
> *Subject: *Re: JobManager d
The root cause might be you APIServer is overloaded or not running
normally. And then all the pods events of
taskmanager-1-9 and taskmanager-1-10 are not delivered to the watch in
FlinkResourceManager.
So the two taskmanagers are not recognized by ResourceManager and then
registration are
你这个报错主要原因还是访问外部的一些镜像源失败导致的,你可以使用一些云厂商提供的代理来解决拉镜像失败的问题
或者使用--set webhook.create=false来关闭webhook功能
Best,
Yang
casel.chen 于2022年4月14日周四 15:46写道:
> The deployment 'cert-manager-webhook' shows
> Failed to pull image "quay.io/jetstack/cert-manager-webhook:v1.7.1": rpc
> error: code = Unknown desc =
你用新版本试一下,看着是已经修复了
https://issues.apache.org/jira/browse/FLINK-19212
Best,
Yang
崔深圳 于2022年3月9日周三 10:31写道:
>
>
>
> web ui报错:请求这个接口: /jobs/overview,时而报错, Exception on server
> side:\norg.apache.flink.runtime.rpc.akka.exceptions.AkkaRpcException:
> Failed to serialize the result for RPC call :
>
Standalone Flink on K8s 和 native K8s都会有你说的这个问题
主要原因是标准输出打印到的pod console了,所以通过kubectl logs可以查看stdout日志,但webUI上就没有
你可以参考这个commit[1]自己编译一个Flink binary来实现
[1].
https://github.com/wangyang0918/flink/commit/2454b6daa2978f9ea9669435f92a9f2e78de357a
Best,
Yang
xinzhuxiansheng 于2022年3月2日周三 15:00写道:
/FlinkKubeClientFactory.java#L58
Best,
Yang
JianWen Huang 于2022年1月10日周一 22:04写道:
> 首先感谢您答复。我也想到了采用第二种JOB动态+ConfigMap挂到Flink Client Pod中,然后命令提交。
> 另外您和官方文档都提到kube config的配置。请问flink client在源码实现中是在哪个地方去解析读取kube config的?
>
> Yang Wang 于2022年1月10日周一 15:17写道:
> >
> > 抱歉回复晚了
> >
> > 在实践中,Fl
t; 1.在k8s 启动一个带flink客户端的容器。在容器内部进行命令行提交。
> 2.在k8s以带Flink客户端的镜像启动一个Job类型作业,然后在作业运行时进行命令提交。
>
> 第1种对于kubernetes.pod-template-file的提交需要把kubernetes.pod-template-file中的模板文件cp到容器中。
> 第2种需要提前把kubernetes.pod-template-file文件打到带Flink客户端的镜像中。
> 请问您有更好的方法吗。
>
> Yang Wang 于2021年12月26日
file:///home/service/var/chubaofs/flink/user/usrlib/
demo/httpclient-4.5.2.jar
你指定的这个文件是在镜像里面吗?如果不是需要打到镜像里面,或者使用pod template注入init-container来下载到容器里面
Best,
Yang
johnjlong 于2022年1月5日周三 18:28写道:
>
> 大佬们
> 我部署作业到k8s集群,有多个作业共享一个外部的jar的情况。外部的jar的通过共享存储,每个JM、TM都能访问。
>
:
> client-local的文件,不是镜像里面的。这句话该怎么理解?因为run-application
>
> 模式下是需要将用户jar包跟flink标准镜像打到一起形成自己镜像然后进行提交。那么这个文件该放在哪个地方?目前我指定路径发现读的是镜像包中的路径。如/opt/my-pod-template。读的是镜像中/opt/my-pod-template文件。
>
> 谢谢您的回复。
>
> Yang Wang 于2021年12月24日周五 11:18写道:
> >
> > 使用flink
> > run-ap
使用flink
run-application来提交任务时,kubernetes.pod-template-file需要指定的是一个client-local的文件
不是镜像里面的
Best,
Yang
hjw <1010445...@qq.com.invalid> 于2021年12月23日周四 22:21写道:
> Flink版本:1.13Flink基于Native K8s
>
CPU不会触发驱逐的,只有内存的request/limit不一样可能会发生这样的事情
Best,
Yang
casel.chen 于2021年12月23日周四 17:18写道:
> cpu request和limit不同会有什么影响吗?会不会pod竞争不过被kill掉?
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> 在 2021-12-20 11:36:02,"Jeff" 写道:
> >升级版本没有用的,我用的是flink 1.13.2也遇到这个问题,原因是它request与limit相同,所以后来我改了它的源代码,你可以参考一下:
>
我觉得你可以尝试一下ship本地的hadoop conf,然后设置HADOOP_CONF_DIR环境变量的方式
-yt /path/of/my-hadoop-conf
-yD containerized.master.env.HADOOP_CONF_DIR='$PWD/my-hadoop-conf'
-yD containerized.taskmanager.env.HADOOP_CONF_DIR='$PWD/my-hadoop-conf'
Best,
Yang
chenqizhu 于2021年11月30日周二 上午10:00写道:
> all,您好:
>
>
如果你使用的是native模式,设计上cancel job以后,所有K8s相关的资源会被释放,HA相关的信息也会自动被删除[1]
出现重新拉起是不符合预期的,你可以把JM日志发出来具体看一下
[1].
https://nightlies.apache.org/flink/flink-docs-master/docs/deployment/ha/kubernetes_ha/#high-availability-data-clean-up
Best,
Yang
研发-江志洋 于2021年11月30日周二 上午9:39写道:
> 你好,最近在使用Flink1.13.3
在Yarn上部署时,会把所有的LOCAL_DIRS都设置为io.tmp.dirs。这样在某些情况下可以达到更好的性能
因为这个本来就是用来存放临时文件的,不存在高可用的问题。
如果有一块盘坏掉,目前YARN只能保证新起的container不再使用这块盘,现有正在使用这个盘的container不会处理
所以,只能等container自己失败退出了
Best,
Yang
鲁成祥 <979775...@qq.com.invalid> 于2021年11月15日周一 下午8:30写道:
> 目前Flink Yarn集群上 io.tmp.dirs 统一配置了
你这个需求是taint和toleration[1]可以解决的,目前native K8s是支持的[2]
kubernetes.jobmanager.tolerations
kubernetes.taskmanager.tolerations
[1].
https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
[2].
启动速度不应该这么慢的,你需要确认一下是否是下载镜像太慢导致的
如果是,可以把镜像提前预热到所有K8s节点,这样可以大幅减少启动时间
Best,
Yang
casel.chen 于2021年11月13日周六 上午8:46写道:
> 同一个作业,在请求资源相同的情况下,使用flink on native k8s session mode和application
> mode启动时间相差十几倍。
> 在session mode下提交作业,最多需要2分钟。而在application mode下提交作业,少则10分钟,多则半个小时至一个小时。
> 1. 想问一下作业启动速度跟什么有关?
我理解你的需求其实可以通过让cpu的limit与request大来解决,已经有相关的ticket但还没有实现
https://issues.apache.org/jira/browse/FLINK-15648
Best,
Yang
casel.chen 于2021年11月13日周六 上午8:52写道:
> 我发现作业启动时消耗的资源量是最大的,但当作业运行起来后资源消耗量会下降。
> 这点从cpu消耗看更为明显,申请了2 vCore (Request == Limit),作业启动会用到 1.2
> vCore,但当作业运行起来后实际只用到了0.8
你可以查看一下JM的日志,看看提交的job或者failover之后恢复的job
id是不是397a081a0313f462818575fc725b3582
Best,
Yang
RS 于2021年11月15日周一 上午9:53写道:
> 查看下client的日志,一般在flink的logs目录下
>
>
>
>
> 在 2021-11-12 20:59:59,"sky" 写道:
> >我使用的事flink on yarn。在执行命令时: flink run -m yarn-cluster
> ./examples/batch/WordCount.jar 结果却报错了:
>
-t参数需要搭配-D一起来使用,而不是使用-y来引导
例如:-t yarn-per-job -Dyarn.application.name=flink-test
Best,
Yang
Lawulu 于2021年10月25日周一 上午11:41写道:
> 例如:
> bin/flink run -ynm flink-test -t yarn-per-job --detached
> ./examples/streaming/TopSpeedWindowing.jar
>
>
> 在yarn ui上面看name还是Flink per-job cluster
东东是正确的
这种情况只能使用pod template来挂载PV或者使用hostpath来保存heap dump的文件
Best,
Yang
东东 于2021年9月17日周五 下午5:10写道:
> 升级到1.13用pod template吧,这之前的版本没有官方支持的方式
>
>
> 在 2021-09-17 16:43:53,"casel.chen" 写道:
> >为了监控TM OOM情况发生,我们在启动作业的时候添加了如下参数
> >-Denv.java.opts.taskmanager="-XX:+HeapDumpOnOutOfMemoryError
>
export HADOOP_CLASSPATH=`hadoop classpath`
如上方式应该是没有问题的,你确认下这些目录下面的jar包是存在的,尤其是/Users//local/hadoop/hadoop-3.2.2/share/hadoop/yarn/
Best,
Yang
龙逸尘 于2021年8月31日周二 上午11:02写道:
> Hi Wayne,
>
> 可以尝试下指定 HADOOP_CONF_DIR
> export HADOOP_CONF_DIR=/opt/flink/hadoop-conf/
>
> Wayne
日志采集一般两种方式:
1. K8s节点侧统一收集,例如阿里云的ilogtail[1],Flink一般只需要输出到标准输出或者emptyDir挂载就可以了
2. 利用log4j2 custom appender,直接将日志推送到存储服务(OSS、阿里云SLS等),需要自己写一个插件或者使用阿里云现有提供的
[1]. https://help.aliyun.com/document_detail/87540.html
Best,
Yang
东东 于2021年8月23日周一 下午12:14写道:
>
>
>
>
看报错应该是个已知问题[1]并且已经在1.11.2中修复
[1]. https://issues.apache.org/jira/browse/FLINK-19212
Best,
Yang
周瑞 于2021年8月17日周二 上午11:04写道:
> 您好:Flink程序部署在Yran上以Appliation Mode 模式启动的,在没有采用HA
> 模式的时候可以正常启动,配置了HA之后,启动异常,麻烦帮忙看下是什么原因导致的.
>
>
> HA 配置如下:
> high-availability: zookeeper high-availability.storageDir:
目前Flink on Kubernetes的大feature已经开发完成,包括native Kubernetes[1](session mode
and application mode)、
Kubernetes HA[2]、pod template[3]
1.12版本也引入很多稳定性相关的提升,包括Job任务结束后清理HA信息、ClusterEntrypoint优化避免ConfigMap残留等,
已经达到生产可用的标准。
但是,我相信还是有很多需要打磨的细节,例如:当使用LoadBalancer时返回的结果可能是一个不正确的值,需要梳理
n上运行的作业都生效么?每个运行在session上的作业可以独立配置日志吗?谢谢!
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >在 2021-07-12 10:57:08,"Yang Wang" 写道:
> >>你直接修改ConfigMap中存储的log4
你直接修改ConfigMap中存储的log4j-console.properties就可以立即生效了,具体参考这里[1]
[1].
https://ci.apache.org/projects/flink/flink-docs-master/docs/deployment/resource-providers/native_kubernetes/#changing-the-log-level-dynamically
Best,
Yang
casel.chen 于2021年7月9日周五 下午8:29写道:
> flink运行在原生k8s上,现在想要修改Root Logger
如果不严格区分名字的话,application模式和per-job模式在K8s环境下是没有差异的,都是在JM完成的任务提交
目前的K8s application mode在高可用开启的情况下,也只能支持提交一个任务
[1].
https://ci.apache.org/projects/flink/flink-docs-master/docs/deployment/resource-providers/standalone/kubernetes/#deploy-application-cluster
[2].
你可以增加如下参数来打开gc日志,并且写入到/opt/flink/log目录下
env.java.opts: -verbose:gc -XX:NewRatio=3 -XX:+PrintGCDetails
-XX:+PrintGCDateStamps -XX:ParallelGCThreads=4 -Xss512k
env.java.opts.jobmanager: -Xloggc:/opt/flink/log/jobmanager-gc.log
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=2
你可以参考一下RestClusterClient里面实现的使用ClientHighAvailabilityServices来获取leader地址的实现
Best,
Yang
yidan zhao 于2021年6月15日周二 下午2:52写道:
> 代码里不需要remoteEnv创建,你这种removeEnv是通过本地ide提交任务的情况。这种情况很少见,一般线上网络环境和办公网络是隔离的吧。
>
> yidan zhao 于2021年6月15日周二 下午2:49写道:
> >
> > 你这个方式不是用于测试嘛。线上情况不应该使用flink run命令嘛。使用flink
Native Flink on K8s是可以运行batch任务的,目前还是用的K8s Deployment来管理JobManager。当任务结束以后,
会自动deregister整个Flink Application,此时会清理掉所有的K8s资源。
如果你想在结束后查看任务相关的一些信息,可以部署一个history server,并配置给batch任务
Best,
Yang
casel.chen 于2021年6月13日周日 上午12:18写道:
> 我们知道flink on 原生kubernetes当前是用k8s deployment运行一个流作业的,请问会用k8s
Native
k8s部署模式下,会自动将$FLINK_CONF_DIR目录下的flink-conf.yaml以及log4j-console.properties放到ConfigMap里面
然后挂载给JM与TM。你只需要修改对应的本地文件就好了
Best,
Yang
eriendeng 于2021年6月7日周一 下午3:09写道:
> Hi all,
> 最近再把flink任务迁移到native
> k8s,发现flink-conf系列的文件没有办法很好地被修改,比如log4j文件还有一些很通用的写在flink-conf的配置项(e.g.
> Prometheus配置)。
>
HA在ZK里面记录了最后一次成功的checkpoint counter和地址,没有启用HA的话,就是从指定的savepoint恢复的。
Best,
Yang
刘建刚 于2021年5月28日周五 下午6:51写道:
> 那应该是master failover后把快照信息丢失了,ha应该能解决这个问题。
>
> 董建 <62...@163.com> 于2021年5月28日周五 下午6:24写道:
>
> > 稳定复现
> > checkpoint 正常生成,在web ui和hdfs目录里边都可以确认。
> > 我们jobmanager没有做ha,不知道是否是这个原因导致的?
> >
你可以describe一下失败JM的pod发出来,看看生成的启动命令是不是正确的
Best,
Yang
fz 于2021年5月28日周五 下午10:09写道:
> 镜像: flink:1.13.0-scala_2.11
>
> sed: cannot rename /opt/flink/conf/sed1yRdDY: Device or resource busy
> sed: cannot rename /opt/flink/conf/sed03zP3W: Device or resource busy
> /docker-entrypoint.sh: line 73:
你参数配置错了,应该是kubernetes.rest-service.exposed.type=NodePort
Best,
Yang
仙剑……情动人间 <1510603...@qq.com> 于2021年5月12日周三 上午9:45写道:
> Hi All,
>
> 我这里在自己搭建的 k8s 测试环境中按照官网的 flink on k8s native
> 指南进行测试,然后一直报错,具体情况如下,请求大佬们的帮助,不胜感激。
>
> 一、环境
>
> k8s v1.18.16
> flink flink-1.12.2
> java openjdk
你只需要修改本地Flink conf目录下面的log4j-console.properties就可以了
这个配置文件会通过ConfigMap自动ship到JM和TM上并使用
Best,
Yang
casel.chen 于2021年5月8日周六 下午11:57写道:
>
> 求大佬解答一下,谢谢!
>
>
>
>
>
> 转发邮件信息
> 发件人:"casel.chen"
> 发送日期:2021-05-08 11:50:03
> 收件人:"user-zh@flink.apache.org"
> 主题:flink on native
目前Flink的history server并没有和Yarn NM的log
aggregation进行整合,所以任务结束以后只能看webui以及exception
日志是没有办法看的
Best,
Yang
lhuiseu 于2021年5月7日周五 下午1:57写道:
> Hi:
> flink 1.12.0
> on yarn 模式
> 已经Finish的任务可以再history server中找到。但是通过WebUI查看TaskManager Log报404。目前Flink
> History Server是不支持查看TaskManager聚合后的日志吗?希望了解history
你的cpu设置这么小,K8s是严格限制的
我怀疑TM启动很慢,一直注册不上来超时导致失败了,你可以看看TM log确认一下
另外,从你发的这个log看,rest endpoint应该已经成功启动了,可以通过来进行访问
Best,
Yang
casel.chen 于2021年4月5日周一 上午10:05写道:
> 最近试用flink kubernetes
> application时发现TM不断申请再终止,而且设置的LoadBalancer类型的Rest服务一直没有ready,查看不到flink web
> ui,k8s日志如下,这是什么原因?是因为我申请的资源太小么?
>
>
.rest-service.exposed.type=ClusterIP
> -Dkubernetes.jobmanager.service-account=flink-service-account
> -Dresourcemanager.taskmanager-timeout=345600 -Dkubernetes.namespace=flink
>
> 镜像使我们根据: apache/flink:1.12.2-scala_2.12 自己做的。
>
>
>
> Yang Wang wrote
> > 我可以确认1.12.1和1.12.2已经修复,如果还是不能正
这样的报错多半是Flink的JM/TM进程就没有被Yarn正常拉起,你查看Yarn的NodeManager日志
搜索对应的container,应该会有一些线索的
Best,
Yang
flink2021 于2021年3月30日周二 上午9:40写道:
> 实时作业运行一段时间后报错:
> Container exited with a non-zero exit code 2. Error file: prelaunch.err.
> Last 4096 bytes of prelaunch.err
> 具体原因是什么呢?有哪位大佬帮忙看看呢,日志中只有这条错误提示,其它没有。
>
我可以确认1.12.1和1.12.2已经修复,如果还是不能正常使用,麻烦发一下启动命令以及对应的TM报错日志
Best,
Yang
1120344670 <1120344...@qq.com> 于2021年3月29日周一 下午5:09写道:
> 您好:
>之前提交过一个关于这方面的issue,链接如下:
> http://apache-flink.147419.n8.nabble.com/flink1-12-k8s-session-TM-td10153.html
>目前看还是没有fix对应的issue。
>
>报错如下:
>
>
>
目前已经有了一个ticket来跟进了,https://issues.apache.org/jira/browse/FLINK-17707
应该在1.13里面可以支持
Best,
Yang
casel.chen 于2021年3月26日周五 上午8:23写道:
> Flink on K8S Standalone模式下可以通过yaml启多个JM,但是在Native K8S模式下要如果做呢?有文档资料介绍吗?谢谢!
和Standalone一样,你可以按照自己创建一个taskmanager-query-state-service,然后把selector修改一下就好了
native会自动添加如下的label,可以filter出来属于一个Flink cluster的TaskManager
app:
component: taskmanager
type: flink-native-kubernetes
Best,
Yang
tian lin 于2021年3月25日周四 下午4:43写道:
> 各位好:
> 请教Flink 1.12.1 在Flink Native
这个问题的根本原因是云上LoadBalancer一直在给Flink创建的service发送RST包导致了
这个JIRA[1]可以了解更多信息
临时绕过去的方案就是在log4j2配置里面把org.apache.flink.runtime.dispatcher.DispatcherRestEndpoint这个类的log级别调到ERROR
[1]. https://issues.apache.org/jira/browse/FLINK-18129
Best,
Yang
18756225...@163.com <18756225...@163.com> 于2021年3月24日周三
ZooKeeper HA的实现是独立于部署模式的,不仅Yarn可以用,Standalone、K8s也可以用
具体的文档可以参考社区[1]
如果想了解设计细节,可以看一下K8s HA的实现,原理上大同小异[2]
[1].
https://ci.apache.org/projects/flink/flink-docs-master/docs/deployment/ha/overview/
[2].
https://cwiki.apache.org/confluence/display/FLINK/FLIP-144%3A+Native+Kubernetes+HA+for+Flink
你在运行flink run命令以前export一下FLINK_LOG_DIR应该就可以的
Best,
Yang
小旋锋 于2021年3月3日周三 下午12:12写道:
> Hi all.
> 通过flink run提交Flink作业,flink client产生的日志文件默认是在 $FLINK_HOME/log 下。
> 需要将每个作业提交产生的日志分别放到不同的目录下,那么请问如何动态指定每次flink run的日志文件的路径呢?
>
>
> 附:
> 1. 通过设置env.log.dir 配置项的值,在 flink-conf.yaml文件中会生效,但通过 -yD 或 -D
>
根本原因还是因为你把8081端口暴露在了公网上面,并且Flink的rest endpoint默认是没有鉴权的
所以可以任意提交jar进行运行
你应该用的是session模式吧,application模式默认是把web提交任务关闭了的
Best,
Yang
Michael Ran 于2021年3月3日周三 上午11:03写道:
> 网络层面 不会直接到公网才对,是开了什么吧?
> 在 2021-03-02 13:04:41,"macdoor" 写道:
> >我不是安全专家,不知道如何才能确认是 flink 的问题,但从现象看跟之前 flink 1.10
>
这个其实原因是阿里云的LoadBalancer探活机制不停的给Flink的rest endpoint发送RST导致的
目前有一个ticket来跟进这个问题[1],但还没有修复
短时间内你可以通过log4j的配置将org.apache.flink.runtime.jobmaster.MiniDispatcherRestEndpoint
这个package的log level设置为WARN来暂时避免
[1]. https://issues.apache.org/jira/browse/FLINK-18129
Best,
Yang
王 羽凡 于2021年3月1日周一
Flink的standalone application模式[1]是可以每个app都单独记录日志的
[1].
https://ci.apache.org/projects/flink/flink-docs-master/docs/deployment/resource-providers/standalone/kubernetes/#deploy-application-cluster
Best,
Yang
xingoo <23603...@qq.com> 于2021年2月22日周一 下午12:01写道:
> Hi,
>
>
也可以在build镜像的时候来进行设置
Best,
Yang
Michael Ran 于2021年2月19日周五 下午7:35写道:
> k8s 设置的
> 在 2021-02-19 09:37:28,"casel.chen" 写道:
> >目前是UTC时区的,怎样才能设置成当地的东8区呢?谢谢!
> >
> >
> >2021-02-19 01:34:21,259 INFO akka.event.slf4j.Slf4jLogger
> [] - Slf4jLogger started
> >2021-02-19 01:34:22,155
我理解你说的应该是standalone session,这种模式下一个TM上面是会跑不同job的task的
TM里面的框架日志都是混在一起的,如果你的job class是在不同的package下面
可以用log4j2针对不同的package设置不同的logger以及appender来输出到不同路径
Best,
Yang
xingoo <23603...@qq.com> 于2021年2月20日周六 下午5:31写道:
> Dear All:
> 目前Flink部署主要采用standalone,想了解下如何在同一个taskmanager区分各个job的日志。
>
>
>
> --
>
使用社区官方镜像flink:1.12.1,你需要配置如下参数
最后两个参数是通过环境变量的方式来enable oss的plugin
high-availability.storageDir: oss://flink/flink-ha
fs.oss.endpoint:
fs.oss.accessKeyId:
fs.oss.accessKeySecret:
containerized.master.env.ENABLE_BUILT_IN_PLUGINS:
flink-oss-fs-hadoop-1.12.1.jar
启用HA以后,你需要创建一个有create/watch ConfigMap的权限的service account
然后挂载给JobManager和TaskManager
从你的报错看应该是没有配置service account
Best,
Yang
casel.chen 于2021年2月9日周二 上午12:10写道:
> 我试着答k8s上部署flink
> standalone集群,做HA之前集群是能够正常work的,在做HA的时候发现在configmap中添加了如下两个HA配置后JM就会抛异常,这是为什么?
>
>
> high-availability:
>
那你可能需要把你的JobManager和TaskManager的日志发一下,才能进一步分析
主要需要确认的是连的端口是正确的,如果网络层面没有问题,那就有可能是哪个配置项使用了某个特定端口导致的
Best,
Yang
Junpb 于2021年2月8日周一 上午9:30写道:
> 你好,
> 我的测试环境yarn有三个节点,当TM启动只有一个时,JM和Tm随机启动在任何节点上都很正常,只有TM变为两个时,会出现报错。
> 每次启动JM和TM端口都是随机的,以上配置是确保2个TM启动,我现在怀疑是我其他配置导致的错误,谢谢
>
> Best,
> Bi
>
>
>
> --
>
建议你使用telnet检查一下JM和有问题TM之间的网络连通性,Flink在这个地方没有已知的bug
Best,
Yang
Junpb 于2021年2月5日周五 下午8:09写道:
> nohup bin/flink run -m yarn-cluster \
> -c main \
> -ynm ${FLINK_NAME} \
> -ys 3 \
> -p 4 \
> -yjm 2048m \
> -ytm 2048m \
>
> 在flink on yarn 的情况下,使用以上flink run 参数,确保TaskManager 为 2
>
> 奇怪的是 JobManager
-m yarn-cluster和-t yarn-per-job都是可以用来提交per-job任务到Yarn集群的
只是背后实现的CLI不一样而已,前者FlinkYarnSessionCLI是以前的方式
后者是在1.10引入的一个更加通用的方式,可以和K8s、Standalone等保持一致
另外,还有一个差异是,-m yarn-cluster是可以支持-yq -ynm等这些CLI参数的
-t yarn-per-job只能通过-D的方式来设置
Best,
Yang
lp <973182...@qq.com> 于2021年1月29日周五 下午3:00写道:
>
Thanks Xintong for driving this release.
Best,
Yang
Yu Li 于2021年1月29日周五 下午3:52写道:
> Thanks Xintong for being our release manager and everyone else who made
> the release possible!
>
> Best Regards,
> Yu
>
>
> On Fri, 29 Jan 2021 at 15:05, Xintong Song wrote:
>
>> The Apache Flink community is
这个报错应该是你HDFS的core-site.xml的配置有问题
defaultFS应该是hdfs://localhost:9000/才对,你可以检查一下
Best,
Yang
casel.chen 于2021年1月19日周二 下午6:19写道:
> 今天尝试使用yarn
> application模式(带yarn.provided.lib.dirs参数),将$FLINK_LIB目录下的jar包上传到了hdfs,结果报了如下的错,是少了哪个jar包或配置文件吗?
>
>
>
目前user jar是可以支持远程,但是只能是hadoop compatiable的schema
因为远程的这个user jar并不会下载到Flink client本地,而是直接注册为Yarn的local resource来使用
所以你的这个报错是预期内的,还没有办法支持
Best,
Yang
casel.chen 于2021年1月20日周三 上午10:23写道:
> ./bin/flink run-application -t yarn-application \
>
>
通过附件或者你上传到第三方的存储,然后在这里共享一下链接
macdoor 于2021年1月19日周二 下午12:44写道:
> 可以的,怎么发给你?
>
>
>
> --
> Sent from: http://apache-flink.147419.n8.nabble.com/
>
Thanks Xintong for the great work as our release manager!
Best,
Yang
Xintong Song 于2021年1月19日周二 上午11:53写道:
> The Apache Flink community is very happy to announce the release of Apache
> Flink 1.12.1, which is the first bugfix release for the Apache Flink 1.12
> series.
>
> Apache Flink® is an
看着是有很多Connecting websocket 和 Scheduling reconnect task的log
我觉得还是你的Pod和APIServer的网络不是很稳定
另外,可以的话,你把DEBUG级别的JobManager完整log发一下
Best,
Yang
macdoor 于2021年1月19日周二 上午9:31写道:
> 多谢!打开了DEBUG日志,仍然只有最后一个ERROR,不过之前有不少包含
> kubernetes.client.dsl.internal.WatchConnectionManager 的日志,grep
> 了一部分,能看出些什么吗?
>
>
供相关资料吗,我去了解具体flink
> on yarn 部署逻辑。
>
> thx.
>
>
> Yang Wang wrote
> > 在Yarn部署的时候是依赖log4j.properties这个文件名来ship资源的,所以不能手动指定一个其他文件
> >
> > 但是你可以export一个FLINK_CONF_DIR=/path/of/your/flink-conf环境变量
> > 在相应的目录下放自己的flink-conf.yaml和log4j.properties
> >
> > B
在Yarn部署的时候是依赖log4j.properties这个文件名来ship资源的,所以不能手动指定一个其他文件
但是你可以export一个FLINK_CONF_DIR=/path/of/your/flink-conf环境变量
在相应的目录下放自己的flink-conf.yaml和log4j.properties
Best,
Yang
Bobby <1010445...@qq.com> 于2021年1月18日周一 下午7:18写道:
> Flink On Yarn 日志配置log4j.properties 文件默认读取flink/conf中的log4j.properties。
>
可以用iperf来进行网络的测试,你需要在镜像里面提前安装好
另外,可以打开debug log看一下是不是Watch经过了很多次重试都连不上,才导致失败的
Best,
Yang
macdoor 于2021年1月18日周一 下午7:08写道:
> 我查看了一下之前的日志,没有发现 too old resource
> version,而且连续几个日志都没有其他错误,直接就这个错误,restart,然后就是一个新日志了。
>
> 我用的k8s集群似乎网络确实不太稳定,请教一下如何测试Pod和APIServer之间的网络比较容易说明问题?ping?或者什么工具?
>
>
>
> --
你搜索一下看看有没有too old resource version的报错
另外,测试一下Pod和APIServer的网络状态,是不是经常断
Best,
Yang
macdoor 于2021年1月18日周一 上午9:45写道:
> 大约几十分钟就会restart,请教大佬们有查的思路,每次抛出的错误都是一样的,运行一段时间也会积累很多ConfigMap,下面是一个具体的错误
>
> 错误内容
>
> 2021-01-17 04:16:46,116 ERROR
>
看着是Watch的时候报错了,你的K8s环境是怎么样的,如果Pod和K8s APIServer的网络状况不是很稳定会导致这个问题的
我这边在minikube和阿里云的ACK集群都做过测试,长时间运行(超过一周)并没有出现too old resource version等引起的JM重启
鉴于好几个人都反馈有这样的问题,会在1.12的下个bug fix(1.12.2)版本修复一下
Best,
Yang
macdoor 于2021年1月18日周一 上午9:45写道:
> 您好,我刚刚开始使用 flink 1.12.1 HA on
>
目前对于一些不是经常使用的功能,社区打算使用pod template来统一支持
我理解应该是可以满足你的需求的
这样更加灵活,也会有更好的扩展性,具体你可以看一下这个JIRA[1]
已经有了一个draft的PR,会很快在完成后提交正式PR,然后review
你也可以先试用一下,有问题及时反馈
[1]. https://issues.apache.org/jira/browse/FLINK-15656
Best,
Yang
高函 于2021年1月18日周一 上午11:13写道:
>
>
> 请问社区有计划支持native k8s模式下配置hostAlais码?
>
这个问题是在1.12.1中修复的,1.12.0里面还不能支持给TM设置ServiceAccount
具体可以看下这个ticket,https://issues.apache.org/jira/browse/FLINK-20664
另外,1.12.1正在投票,最近就会发布
Best,
Yang
1120344670 <1120344...@qq.com> 于2021年1月13日周三 下午5:17写道:
> *flink版本: 1.12*
> *kubernetes: 1.17*
> TM无法启动, 报错如下:
>
>
>
这个问题的根本原因是你Client端用的是1.12版本,但是你build的镜像的基础镜像是1.11的,因为1.12的镜像还没有发布到docker
hub上
你用正确的Dockerfile[1]自己重新build一个,再运行一下看看
[1].
https://github.com/apache/flink-docker/tree/master/1.12/scala_2.12-java8-debian
Best,
Yang
yzxs 于2021年1月8日周五 下午12:16写道:
> 1、使用以下命令发布任务:
> ./bin/flink run-application \
>
1.11版本以后可以直接在Flink Client的机器上export HADOOP_CONF_DIR
然后运行flink run-application或者kubernetes_session.sh启动Flink任务,这样Flink
Client会自动通过ConfigMap将Hadoop配置ship到JobManager和TaskManager pod
并且加到classpath的
Best,
Yang
龙逸尘 于2021年1月4日周一 下午4:39写道:
> 各位下午好,目前我正在使用 Flink on k8s application-mode 构建构建一个消费 kafka
目前native的方式只能支持local,也就是用户jar需要打到镜像里面,暂时不能支持hdfs或oss
是可以通过init container来下载,目前pod template[1]这个功能还没有支持,你可以跟进进度
[1]. https://issues.apache.org/jira/browse/FLINK-15656
Best,
Yang
陈帅 于2021年1月2日周六 下午8:08写道:
> 官网给的示例命令如下
> ./bin/flink run-application -p 8 -t kubernetes-application \
>
>
可以通过配置PrometheusPushGateway[1]将Metrics导入到Prometheus,然后对接Grafana进行查看
日志除了sidecar,也可以通过log4j2自定义appender的方式,来直接将Log写到分布式存储(阿里云Oss,ElasticSearch)等
[1].
.java:292)
> ~[?:1.8.0_275]
> at
> java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:308)
> ~[?:1.8.0_275]
> at
> java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:607)
> ~[?:1.8.0_275]
> at
> java.util.concurre
ConfigMap不需要提前创建,那个Warning信息可以忽略,是正常的,主要原因是先创建的deployment,再创建的ConfigMap
你可以参考社区的文档[1]把Jm的log打到console看一下
我怀疑是你没有创建service account导致的[2]
[1].
https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/deployment/native_kubernetes.html#log-files
[2].
感谢使用K8s的HA mode,你用的是Session模式还是Application模式
* 如果是Application模式,那在flink job达到terminal state(FAILED, CANCELED,
SUCCEED)时会自动清理掉所有HA相关的ConfigMap,你可以在webui上面cancel任务或者用flink
cancel,然后观察一下,应该不会有残留的
*
你整个流程理由有两个问题:
1. 镜像找不到
原因应该是和minikube的driver设置有关,如果是hyperkit或者其他vm的方式,你需要minikube
ssh到虚拟机内部查看镜像是否正常存在
2. JM链接无法访问
2020-12-27 22:08:12,387 INFO
org.apache.flink.kubernetes.KubernetesClusterDescriptor [] - Create
flink session cluster session001 successfully, JobManager Web Interface:
非常不建议你将非Flink binary的jar存放到yarn.provided.lib.dirs,因为这个下面的jar会以Yarn public
distributed cache的方式进行分发
并在NodeManager上缓存,共享给所有的application使用
你这个报错的根本原因是本地运行main的时候udf还是在hdfs上,所以报错在client端了
有两个办法修复:
1. 不要将udf放到hdfs上的provided lib dirs,除非你确实想将它共享给很多application
2.
你这个命令写的有点问题,flink run -m yarn-cluster -ynm traffic -s 2 -p 2 -ytm 1024 -py
traffic.py
应该是-ys,而不是-s
-s是从savepoints恢复,所以报错里面会有找不到savepoints目录
Best,
Yang
magichuang 于2020年12月23日周三 下午8:29写道:
> 机器参数:三台 32C64G centos 7.8,cdh集群在这上面先部署
> flink版本:1.11.2,在三台集群上搭建的集群
>
> hadoop集群是用cdh搭建的
>
>
>
之前在社区我提过一次redirect的方案,但其他人有一些concerns,可以参考一下
https://github.com/apache/flink/pull/11839#pullrequestreview-399769862
zilong xiao 于2020年12月22日周二 下午4:13写道:
> 恩恩,这个场景是有的,目前看是可以通过重定向后实现,follow issue~
>
> 李杰 于2020年12月22日周二 下午3:58写道:
>
> > Hi,
> > 这个功能我们之前做过,可以看下这里。
> >
在Yarn上将需要给Flink使用的机器单独划分到一个partition里面,使用node label可以实现
然后在提交Flink任务的时候使用yarn.application.node-label来指定就可以了。partition是可以保证排他的,不带这个label的调度不上来
Best,
Yang
r pp 于2020年12月23日周三 上午11:18写道:
> flink 提交到特定的node ,可以保证 其它的任务 不能提交到flink特定的node 上么?
>
> xiao cai 于2020年12月22日周二 上午10:28写道:
>
> > Hi
> >
共有 201 项搜索結果,以下是第 1 - 100 matches
Mail list logo