调试 Azure HDInsight 中的 WASB 文件操作
有时你可能想要了解 WASB 驱动程序使用 Azure 存储所启动的操作。 对于客户端,WASB 驱动程序在“调试”级别生成每个文件系统操作的日志。 WASB 驱动程序使用 log4j 来控制日志记录级别,默认值为“INFO”级别。 有关 Azure 存储服务器端分析日志,请参阅Azure 存储分析日志记录。
生成的日志将如下所示:
18/05/13 04:15:55 DEBUG NativeAzureFileSystem: Moving wasb://xxx@yyy.blob.core.chinacloudapi.cn/user/livy/ulysses.txt/_temporary/0/_temporary/attempt_20180513041552_0000_m_000000_0/part-00000 to wasb://xxx@yyy.blob.core.chinacloudapi.cn/user/livy/ulysses.txt/part-00000
在 Web 浏览器中导航到
https://CLUSTERNAME.azurehdinsight.cn/#/main/services/SPARK2/configs
,其中CLUSTERNAME
是 Spark 群集的名称。导航到“advanced spark2-log4j-properties”。
将
log4j.appender.console.Threshold=INFO
修改为log4j.appender.console.Threshold=DEBUG
。添加
log4j.logger.org.apache.hadoop.fs.azure.NativeAzureFileSystem=DEBUG
。
导航到“Advanced livy2-log4j-properties”。
添加
log4j.logger.org.apache.hadoop.fs.azure.NativeAzureFileSystem=DEBUG
。保存更改。
上述日志应提供对文件系统操作的大致理解。 如果上述日志仍未提供有用的信息,或者如果要调查 blob 存储 api 调用,请将 fs.azure.storage.client.logging=true
添加到 core-site
。 此设置将为 wasb 存储驱动程序启用 Java SDK 日志,并打印对 blob 存储服务器的每次调用。 在调查后删除设置,因为它可能会快速填满磁盘,并可能会减慢进程速度。
如果后端是基于 Azure Data Lake 的,则为组件(例如 spark/tez/hdfs)使用以下 log4j 设置:
log4j.logger.com.microsoft.azure.datalake.store=ALL,adlsFile
log4j.additivity.com.microsoft.azure.datalake.store=true
log4j.appender.adlsFile=org.apache.log4j.FileAppender
log4j.appender.adlsFile.File=/var/log/adl/adl.log
log4j.appender.adlsFile.layout=org.apache.log4j.PatternLayout
log4j.appender.adlsFile.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n
在 /var/log/adl/adl.log
中查找日志。
如果你的问题未在本文中列出,或者无法解决问题,请访问以下渠道之一获取更多支持:
- 如果需要更多帮助,可以从 Azure 门户提交支持请求。