能分享一下demo吗?

Cayden chen <[email protected]> 于2020年7月15日周三 下午2:56写道:

> 我们的获取逻辑是通过定义
> logback的appder,appder通过解析当前系统路径(因为flink每个taskmanager会自己定义一个带有applicationId的路径,然后里面会放各种jar包,包括我自定义的appder),获取之后通过MDC.put(),给日志加一列appId,在appder里面把日志上报到外部的日志系统
>
>
>
>
> ------------------&nbsp;原始邮件&nbsp;------------------
> 发件人:
>                                                   "user-zh"
>                                                                     <
> [email protected]&gt;;
> 发送时间:&nbsp;2020年7月14日(星期二) 下午5:31
> 收件人:&nbsp;"[email protected]"<[email protected]&gt;;
>
> 主题:&nbsp;回复:   flink on yarn日志问题
>
>
>
>
>
> 我们获取运行Yarn日志逻辑大概是这样的:
> 1.
> 访问rm-address/ws/v1/cluster/apps/applicationId,拿到amContainerLog中的url即为jm的url.
> 2.
> taskmanager日志url通过rm-address/proxy/applicationId/taskmanagers,拿到所有taskmanager的基本信息,替换amContainerLog中的containername和ip。
>
>
> 日志比较大时:指定读取的字节开始和结束位置,url?start=0&amp;end=1024
> | |
> jianxu
> |
> |
> [email protected]
> |
> 在2020年07月14日 17:07,Cayden chen<[email protected]&gt; 写道:
> 有个问题,如何区分日志是哪个任务的呢
>
>
>
>
> ------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
> 发件人:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> "user-zh"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> <[email protected]&amp;gt;;
> 发送时间:&amp;nbsp;2020年7月14日(星期二) 下午5:05
> 收件人:&amp;nbsp;"user-zh"<[email protected]&amp;gt;;
>
> 主题:&amp;nbsp;Re: Re: Re: flink on yarn日志问题
>
>
>
> Flink在1.11开始默认使用log4j2, log4j2已经有了很多appender[1]可以用来将日志输出到外部系统或服务。
>
> [1] https://logging.apache.org/log4j/2.x/manual/appenders.html
>
> Best,
> Yangze Guo
>
> On Tue, Jul 14, 2020 at 4:46 PM nicygan <[email protected]&amp;gt; wrote:
> &amp;gt;
> &amp;gt; 是有这个毛病,看TM日志不方便。
> &amp;gt;
> &amp;gt; 而且本地日志过几小时就会被清理,时间一久就看不到了,只剩JM日志。
> &amp;gt;
> &amp;gt;
> &amp;gt;
> &amp;gt;
> &amp;gt;
> &amp;gt;
> &amp;gt; 在 2020-07-14 12:35:06,"zhisheng" <[email protected]&amp;gt;
> 写道:
> &amp;gt; &amp;gt;知道 YARN 的 applicationId,应该也可以去 HDFS 找对应的 taskmanager
> 的日志(可以拼出路径),然后复制到本地去查看
> &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;Yangze Guo <[email protected]&amp;gt; 于2020年7月14日周二
> 上午11:58写道:
> &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; Hi, 王松
> &amp;gt; &amp;gt;&amp;gt;
> &amp;gt; &amp;gt;&amp;gt; 我理解拼接url就可以了,不用实际去登陆机器然后进到对应目录。
> &amp;gt; &amp;gt;&amp;gt;
> &amp;gt; &amp;gt;&amp;gt; Best,
> &amp;gt; &amp;gt;&amp;gt; Yangze Guo
> &amp;gt; &amp;gt;&amp;gt;
> &amp;gt; &amp;gt;&amp;gt; On Tue, Jul 14, 2020 at 8:26 AM 王松 <
> [email protected]&amp;gt; wrote:
> &amp;gt; &amp;gt;&amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; 我们也有问题 1,和 Yangze Guo
> 说的一样,每次都要去对应的tm目录中去找日志,很麻烦,不知道有没有更简单的办法。
> &amp;gt; &amp;gt;&amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; Yangze Guo <[email protected]&amp;gt;
> 于2020年7月13日周一 下午5:03写道:
> &amp;gt; &amp;gt;&amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; 1.
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt;
> 我验证了一下,如果开启了日志收集,那tm的日志是会保存的,但是你整个application结束前可能看不到,有一个trick的方法,首先在jm日志中找到tm分配到了哪个NodeManager上,通过拼接url的方式来获取container的日志
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; 2. 你是否需要调整一下重启策略[1]?
> 如果开启了ck,默认情况下就会一直尝试重启job
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; [1]
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt;
> https://ci.apache.org/projects/flink/flink-docs-master/zh/dev/task_failure_recovery.html
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; Best,
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; Yangze Guo
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; On Mon, Jul 13, 2020 at 2:40
> PM 程龙 <[email protected]&amp;gt; wrote:
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; 不好意思&amp;nbsp;
> 怪我灭有描述清楚
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; 1 目前开启日志收集功能
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; 2 目前已是 per-job模式
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; 3 集群使用cdh flink.1.10
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; 在 2020-07-13
> 11:18:46,"Yangze Guo" <[email protected]&amp;gt; 写道:
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;Hi,
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt;第一个问题,您可以尝试开启Yarn的日志收集功能[1]
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt;第二个问题,您可以尝试一下per-job mode [2][3]
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;[1]
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt;
> https://ci.apache.org/projects/flink/flink-docs-master/zh/ops/deployment/yarn_setup.html#log-files
> &amp;gt
> <https://ci.apache.org/projects/flink/flink-docs-master/zh/ops/deployment/yarn_setup.html#log-files&amp;gt>;
> &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;[2]
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt;
> https://ci.apache.org/projects/flink/flink-docs-master/zh/ops/deployment/#per-job-mode
> &amp;gt
> <https://ci.apache.org/projects/flink/flink-docs-master/zh/ops/deployment/#per-job-mode&amp;gt>;
> &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;[3]
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt;
> https://ci.apache.org/projects/flink/flink-docs-master/zh/ops/deployment/yarn_setup.html#run-a-single-flink-job-on-yarn
> &amp;gt
> <https://ci.apache.org/projects/flink/flink-docs-master/zh/ops/deployment/yarn_setup.html#run-a-single-flink-job-on-yarn&amp;gt>;
> &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;Best,
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;Yangze Guo
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;On Mon, Jul
> 13, 2020 at 10:49 AM 程龙 <[email protected]&amp;gt; wrote:
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;
> 请问一下两个问题
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt; 1
> flink on yarn的时候 taskmanager 挂掉的时候 上面的日志会被删除掉 无法查看
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; ,除了使用es收集日志的这种方案,
> 还有没有可以使taskmanager 挂掉,相关日志仍然可以保留。
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt; 2
> flink on yarn模式 当由于错误导致taskmanager 挂掉,但是jobmanager 却一直存在,
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; 有没有好的方式或者策略
> ,&amp;nbsp;&amp;nbsp; 可以是当task失败 达到重试次数之后 taskmanager挂掉,jobmanager也挂掉
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;
> &amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;gt;
> &amp;gt; &amp;gt;&amp;gt;

回复