通过 hadoop 文件系统访问 Azure 存储模拟器 api
Access Azure Storage Emulator through hadoop FileSystem api
我有一个 scala 代码库,我在其中使用 Hadoop FileSystem Apis(而不是 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")
我有一个 scala 代码库,我在其中使用 Hadoop FileSystem Apis(而不是 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")