java - spark-submit 时如何将自定义日志输出到终端?
问题描述
我在机器 A 上有一个单节点 Spark,我在另一台机器 B 上执行 spark-submit,这就是我运行 spark-submit 的方式:
spark-submit \
--class com.foo.misc.spark.WordCount \
--master yarn \
--deploy-mode cluster \
--executor-memory 1G \
--num-executors 5 \
wordcount.jar \
file:///root/input01.txt \
hdfs://os74gcc52-c6cfd5d5:9000/test/output9
这很好用,我可以看到按字数生成的 output9。
只有这样,当查看终端(我运行 spark-submit 的那个)时,我找不到我的日志信息,我看到的只是 spark log
2018-11-07 15:41:36 INFO Client:54 - Application report for application_1541562152848_0010 (state: RUNNING)
2018-11-07 15:41:37 INFO Client:54 - Application report for application_1541562152848_0010 (state: RUNNING)
2018-11-07 15:41:38 INFO Client:54 - Application report for application_1541562152848_0010 (state: RUNNING)
2018-11-07 15:41:39 INFO Client:54 - Application report for application_1541562152848_0010 (state: RUNNING)
2018-11-07 15:41:40 INFO Client:54 - Application report for application_1541562152848_0010 (state: FINISHED)
这就是我在 WordCount.java 中登录的方式,
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
...
public class WordCount {
private static final Logger log = LogManager.getLogger(WordCount.class);
public static void main(String[] args) {
log.warn("start foooooooooooooooooooo");
...
是因为我使用的是集群部署模式吗?还是因为其他一些事情?
解决方案
从资源管理器获取 spark 作业的应用程序 ID。使用 yarn 命令获取应用程序 ID 的日志。您会发现您的信息是使用日志管理器打印的。如果应用程序以客户端模式提交,我认为这些可以在作业运行时在控制台上看到
推荐阅读
- mysql - 从mysql中的json列解码unicode字符串
- python - TypeError:无法对索引进行索引
使用这些索引器 [1] - sql - 语法错误:org.apache.hadoop.hive.ql.parse.ParseException:第 5:0 行无关输入“{”在表属性中的“类型”附近期待 StringLiteral
- python - 'str' 对象在尝试检查字典中是否存在字符串时没有属性 'get'
- ubuntu - 在 ubuntu 上构建 riscv 工具链的问题
- r - 用于连续时间隐马尔可夫模型的 R 包
- sql - 使用 coalesce() 避免嵌套聚合错误
- javascript - 条纹 VeriFone P400 设备
- sql-server - Dbup 自定义脚本提供程序 - 需要为日志脚本名称添加值
- javascript - 如何在不在 AAD 中注册应用程序的情况下向 Power BI Rest API 进行身份验证?