Azure Databrick:需要在集群的配置中添加哪些配置以帮助并行执行以及如何跟踪应用的日志

问题描述

我创建了一个消息生成器工具,该工具可生成JSON格式的文件并直接写入到Azure数据湖存储中。

方案1:为了提高性能,我在代码中应用了Java多线程功能

使用Java ExecutorService进行多线程处理:

ExecutorService pool = Executors.newFixedThreadPool(5);

我试图通过IDE在本地计算机上执行,发现该进程正在并行执行(线程数:5),并且执行时间得到了很好的改善。

虽然我正在使用azure Databricks Notebook通过以下设置执行相同的jar文件,但发现它正在序列化中执行,并且执行时间没有任何改善:

集群模式:标准 Databrick运行时版本:7.0(包括Apache Spark 3.0.0,Scala 2.12) 驱动程序和工作者类型:Standard_DS3_v2

场景2 :此外,我在代码中应用了logger(java.util.logging.Logger),以便在作为jar文件执行时监视活动。

为记录器创建了此实例:

static Logger logger = Logger.getLogger(DataLakeConnection.class.getName());

a)我试图从Azure Databrick的“群集”页面中的“驱动程序日志”部分(跟踪stdout,stderr,log-4j)访问日志,但是找不到在jar文件中用作记录器的任何日志。

b)我试图通过笔记本使用命令从Azure Databrick的“ DBFS”部分访问更多日志。

我的问题是

  1. 我们是否需要在Azure Databrick中为Spark群集的配置添加任何配置,以允许并行执行(就多线程而言)

  2. 我们如何跟踪内部日志的详细信息(与jar文件中应用的内部日志相同)

预先感谢您:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)