我在Azure存储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
基于本link的声明,实际上,在Hadoop中,整个文件系统分层结构存储在一个容器中。
你可以如下配置您的帐户键和容器名称:
<property>
<name>fs.azure.account.key.youraccount.blob.core.windows.net</name>
<value>YOUR ACCESS KEY</value>
</property>
因此,只有你需要做的只是将文件复制到与AzCopy配置的容器。
更多详细信息,请参阅该document。
更新答案:
我在这里提供一个解决方案为您提供:
在VM 1.InstallBlobFuse以提供你Azure的Blob存储容器支持的虚拟文件系统。
2.然后使用cp命令从container directly
到HDFS URL复制文件。
只是为了总结,请使用命令:
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