首页 > 解决方案 > SPARK:将 Azure Blob 存储与 Spark 集群一起使用时如何访问 AzureFileSystemInstrumentation?

问题描述

我正在开发一个存储接收器是 Azure Blob 存储的spark项目。我以镶木地板格式写入数据。我需要一些关于存储的指标,例如。numberOfFilesCreatedwrittenBytes。在网上搜索它时,我遇到了一个特定的指标,该hadoop-azure包称为AzureFileSystemInstrumentation. 我不确定如何从 spark 访问相同的内容,也找不到任何相同的资源。对于给定的 Spark 作业,如何访问该仪器?

标签: azureapache-sparkhadoopazure-blob-storagemetrics

解决方案


根据我的经验,我认为在您当前的场景中可以使用三种解决方案,如下所示。

  1. 在 Spark 中直接使用Hadoop API for HDFS 获取 HDFS Metrics 数据,因为hadoop-azure只是实现了使用 Azure Blob Storage 的 HDFS API,所以请参阅 Hadoop 官方文档Metrics了解您要使用哪些特定指标,例如CreateFileOpsFilesCreated作为下图得到numberOfFilesCreated。同时,有一个类似的 SO 线程How do I get HDFS bytes read and write for Spark applications?你可以参考。

    在此处输入图像描述

  2. 直接使用 Azure Storage SDK for Java 或您编写程序时使用的其他语言对 Azure Blob Storage 中存储的文件进行统计,这些文件按照创建时间戳或其他方式排序,请参阅官方文档Quickstart: Azure Blob storage client library v8 for Java了解如何使用其 SDK。

  3. 使用带有 Blob Trigger 的 Azure Function 来监控 Azure Blob Storage 中创建的文件的事件,然后您可以编写代码来统计每个 blob 创建的事件,请参阅官方文档Create a function triggered by Azure Blob storage了解如何使用 Blob Trigger。甚至,您可以将这些指标发送到 Azure 表存储或 Azure SQL 数据库或其他服务,以便稍后在 Azure Blob 触发函数中进行统计。


推荐阅读