将数据从Azure Blob存储传输到HDFS文件系统

时间:2019-02-04 06:45:07

标签: azure azure-storage azure-storage-blobs

我在镶木地板格式的天蓝色存储blob中有数据。我需要做的就是将所有这些存储文件传输到hdfs。我有什么办法吗?

找不到任何有用的方法来做

谢谢。

2 个答案:

答案 0 :(得分:0)

实际上,根据此link中的语句,在Hadoop中,整个文件系统层次结构存储在单个容器中。

您可以如下配置帐户密钥和容器名称:

<property>
  <name>fs.azure.account.key.youraccount.blob.core.windows.net</name>
  <value>YOUR ACCESS KEY</value>
</property>

enter image description here

因此,只需要使用AzCopy将文件复制到配置的容器中即可。

更多详细信息,请参阅此document


更新答案:

我在这里为您提供解决方案:

1。在虚拟机上安装BlobFuse,以提供由Azure Blob存储容器支持的虚拟文件系统。

2。然后使用cp命令将文件从container directly复制到HDFS URL。

此外,只需编写一段Java代码即可从蔚蓝blob存储中获取数据并转储到HDFS中。

仅供参考,请使用命令:

hadoop  distcp -D fs.azure.account.key.<account name>.blob.core.windows.net=<Key> wasb://<container>@<account>.blob.core.windows.net<path to wasb file> hdfs://<hdfs path>

distcp递归复制目录结构以获取更多信息,请阅读此link

答案 1 :(得分:0)

使用@jay的解决方案,我能够使用以下命令传输数据。

命令:

hadoop  distcp -D fs.azure.account.key.<account name>.blob.core.windows.net=<Key> wasb://<container>@<account>.blob.core.windows.net<path to wasb file> hdfs://<hdfs path>

distcp递归复制目录结构以获取更多信息,请阅读此link