hadoop - 通过hadoop FileSystem api访问Azure存储模拟器

标签 hadoop hdfs azure-storage azure-blob-storage azure-storage-emulator

我有一个 scala 代码库,我在其中使用 Hadoop FileSystem API(而不是 azure blob Web 客户端)访问 azure blob 文件。我的用法是以下格式:

val hadoopConfig = new Configuration()
hadoopConfig.set(s"fs.azure.sas.${blobContainerName}.${accountName}.blob.windows.core.net",
        sasKey)
      hadoopConfig.set("fs.defaultFS",
        s"wasbs://${blobContainerName}@${accountName}.blob.windows.core.net")
      hadoopConfig.set("fs.wasb.impl",
        "org.apache.hadoop.fs.azure.NativeAzureFileSystem")
      hadoopConfig.set("fs.wasbs.impl",
        "org.apache.hadoop.fs.azure.NativeAzureFileSystem$Secure")
     
  
    
val fs = FileSystem.get(
                new java.net.URI(s"wasbs://" +
                  s"${blobContainerName}@${accountName}.blob.windows.core.net"), hadoopConfig)

我现在正在使用 azure 存储模拟器作为存储帐户为此代码编写单元测试。我经历了this页面,但它只解释了如何通过 AzureBlobClient 的 Web api 访问 azure 模拟器。我需要弄清楚如何通过使用 hadoop FileSystem api 访问 azure 存储模拟器来测试我的上述代码。我已经尝试过以下方法,但这不起作用:

val hadoopConfig = new Configuration()
    hadoopConfig.set(s"fs.azure.sas.{containerName}.devstoreaccount1.blob.windows.core.net",
      "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==")
    hadoopConfig.set("fs.defaultFS",
      s"wasbs://{containerName}@devstoreaccount1.blob.windows.core.net")
    hadoopConfig.set("fs.wasb.impl",
      "org.apache.hadoop.fs.azure.NativeAzureFileSystem")
    hadoopConfig.set("fs.wasbs.impl",
      "org.apache.hadoop.fs.azure.NativeAzureFileSystem$Secure")
    val fs = FileSystem.get(
      new java.net.URI(s"wasbs://{containerName}@devstoreaccount1.blob.windows.core.net"), hadoopConfig)

最佳答案

我能够通过添加以下 2 个配置来解决此问题并连接到存储模拟器:

hadoopConfig.set("fs.azure.test.emulator",
  "true")
hadoopConfig.set("fs.azure.storage.emulator.account.name",
  "devstoreaccount1.blob.windows.core.net")

关于hadoop - 通过hadoop FileSystem api访问Azure存储模拟器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68190038/

相关文章:

c# - Azure 存储队列中的重复检测

performance - 如何加快Azure存储队列的速度

azure - 从 VS 2013 管理 Azure 存储

java - 如何在映射器中合并值?

amazon-ec2 - 使用 s3 作为 fs.default.name 或 HDFS?

mercurial - Hadoop 项目的存储库组织

hadoop - 如何在 Hadoop HDFS 中导航目录

hadoop - Hive(0.12.0)-使用分区,存储桶和附加索引将数据加载到表中

java - Hadoop hdfs DistributedFileSystem 无法实例化

hadoop - 在hadoop中备份源数据文件