我在镶木地板格式的天蓝色存储blob中有数据。我需要做的就是将所有这些存储文件传输到hdfs。我有什么办法吗?
找不到任何有用的方法来做
谢谢。
答案 0 :(得分:0)
实际上,根据此link中的语句,在Hadoop中,整个文件系统层次结构存储在单个容器中。
您可以如下配置帐户密钥和容器名称:
<property>
<name>fs.azure.account.key.youraccount.blob.core.windows.net</name>
<value>YOUR ACCESS KEY</value>
</property>
因此,只需要使用AzCopy将文件复制到配置的容器中即可。
更多详细信息,请参阅此document。
更新答案:
我在这里为您提供解决方案:
1。在虚拟机上安装BlobFuse,以提供由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
答案 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