当前位置: 首页 > 知识库问答 >
问题:

如何通过yarnClient在代码中获取日志聚合

潘国源
2023-03-14

我正在遵循这个关于通过java API创建YarnApp的示例。

https://github.com/hortonworks/simple-yarn-app

工作正常,但日志只存在于执行中,之后日志就消失了。

我怎么能通过代码捕捉到这个?或者启用一个选项?

共有1个答案

慕宏博
2023-03-14

您可以在应用程序完成后通过应用程序ID使用LogCliHelpers查找日志:

import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
import org.apache.hadoop.yarn.client.api.YarnClientApplication;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.exceptions.YarnException;
import org.apache.hadoop.yarn.logaggregation.LogCLIHelpers;

import java.io.IOException;
import java.io.PrintStream;

public static void getLogs(YarnConfiguration conf, YarnClientApplication app) throws IOException, YarnException {
    ApplicationSubmissionContext appContext =
            app.getApplicationSubmissionContext();
    ApplicationId appId = appContext.getApplicationId();
    LogCLIHelpers logCLIHelpers = new LogCLIHelpers();
    logCLIHelpers.setConf(conf);
    FileSystem fs = FileSystem.get(conf);
    Path logFile = new Path("/path/to/log/file.log");
    fs.create(logFile, false);
    try (PrintStream printStream = new PrintStream(logFile.toString())) {
      logCLIHelpers.dumpAllContainersLogs(appId, UserGroupInformation.getCurrentUser().getShortUserName(), printStream);
    }
}
 类似资料:
  • 如何通过代码从ImageView获取颜色?

  • 问题内容: 但是,如何在没有GUI客户端的情况下获取该语句(例如,使用psql命令行)? 问题答案: 像这样的东西,但是我不确定这是否涵盖创建聚合的所有可能方式(它确实没有考虑到使用引号引起来的标识符)

  • 我必须在弹性搜索中使用聚合执行搜索。因为刻面将在不久的将来被删除,所以我不能使用刻面。 当然,我被鼓励使用聚合。 下面的代码给了我想要的输出: 聚合聚合=elasticsearch chTemplate.query(搜索查询,新的结果提取器(){@覆盖公共聚合提取(搜索响应响应){返回response.get聚合(); 但问题是,它成为了我的弹性搜索查询之外的第二个查询,这使得它变得非常慢。 我正

  • 问题内容: 我正在使用一些房屋更换产品,使我可以隐藏通知栏,而这正是我真正喜欢的东西。 所有信息都可以用一些小部件代替,但是我也想显示通知。 当我已经开发了一些应用程序时,我想知道是否存在允许应用程序获取所有通知的命令行。我打算将此添加到小部件或烤面包。 非常感谢您提供任何线索或帮助。 问题答案: 从Android API级别18(Android 4.3)开始,提供了一个类 Notificatio

  • 问题内容: 这里有国家代码列表,我需要在每个代码上附加表情符号标志。有没有办法从中提取unicode或为国家/地区代码找到表情符号? 这个npm示例看起来与我的目标相似(但使用十六进制作为输入)https://github.com/thekelvinliu/country-code- emoji/blob/master/src/index.js 问题答案: 此代码段对我有用。只需替换为您喜欢的任何

  • 我已经在AWS部署了我的战争,现在非常缓慢。我想在spring boot中解决以下问题: > spring boot应用程序中使用了哪个连接池? 如何在spring boot应用程序中记录连接池信息?现在,我得到的是Spring。数据源。原木被遗弃了。有吗?我想记录一些信息,比如有多少是空闲的,有多少是活动的等等。 当前连接池中可用和空闲的最小和最大连接数是多少?