调试 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

打开文件操作的 WASB 调试日志

  1. 在 Web 浏览器中导航到 https://CLUSTERNAME.azurehdinsight.cn/#/main/services/SPARK2/configs,其中 CLUSTERNAME 是 Spark 群集的名称。

  2. 导航到“advanced spark2-log4j-properties”。

  3. log4j.appender.console.Threshold=INFO 修改为 log4j.appender.console.Threshold=DEBUG

    1. 添加 log4j.logger.org.apache.hadoop.fs.azure.NativeAzureFileSystem=DEBUG
  4. 导航到“Advanced livy2-log4j-properties”。

    添加 log4j.logger.org.apache.hadoop.fs.azure.NativeAzureFileSystem=DEBUG

  5. 保存更改。

其他日志记录

上述日志应提供对文件系统操作的大致理解。 如果上述日志仍未提供有用的信息,或者如果要调查 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 门户提交支持请求。