我创建了一个消息生成器工具,它以json格式生成文件并直接写入azure数据湖存储。
场景1:为了提高性能,我在代码中应用了java多线程功能
使用java executorservice进行多线程处理:
ExecutorService pool = Executors.newFixedThreadPool(5);
我尝试通过ide在本地机器上执行,发现进程是并行执行的(线程数:5),执行时间有了很大的提高。
当我使用azure databricks notebook执行具有以下设置的同一jar文件时,发现该文件正在序列化中执行,执行时间没有任何改进:
集群模式:标准databrick运行时版本:7.0(包括apachespark3.0.0、scala 2.12)驱动程序和工作程序类型:standard\u ds3\u v2
场景2:此外,我还应用了logger( java.util.logging.Logger
)在代码中,以便在作为jar文件执行时监视活动。
已为记录器创建此示例:
static Logger logger = Logger.getLogger(DataLakeConnection.class.getName());
a) 我试图访问azuredatabrick集群页面中的“驱动程序日志”部分(track stdout,stderr,log-4j)中的日志,但在jar文件中找不到任何作为日志应用的日志。
b) 我试图通过笔记本使用命令从azuredatabrick的“dbfs”部分访问更多日志。
我的问题是:
我们是否需要为azure databrick中spark cluster的配置添加任何允许并行执行的配置(就多线程而言)
如何详细跟踪内部日志(jar文件中应用的相同内部日志)
提前感谢:)
暂无答案!
目前还没有任何答案,快来回答吧!