来自blob的copyfromlocal hdinsight

ssm49v7z  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(473)

我刚开始了解hdinsight。我有一些文件存储在azure存储中,我想复制到hdfs中。我正在尝试使用fs-copyfromlocal。当我从c驱动器复制时,它工作正常当我尝试使用wasb路径从blob存储复制到blob容器时,我得到一个错误的fs错误。我怀疑从本地复制是错误的工具。如何从容器复制到hdfs。

cig3rfwq

cig3rfwq1#

在hdinsight中将文件从azure存储复制到hdfs可能不是一个好主意。原因是hdinsight集群上hdfs中的任何内容都存储在组成该集群的临时示例上,本质上是临时存储。
您可能想做的是将包含这些文件的存储帐户添加到hdinsight集群中,这将使hadoop可以作为wasb://空间的一部分访问这些文件。
您可以使用创建群集时要访问的文件添加存储帐户,也可以使用中描述的过程添加存储帐户http://blogs.msdn.com/b/cindygross/archive/2013/04/25/access-azure-blob-stores-from-hdinsight.aspx. 你也可以使用

azure hdinsight cluster config storage add

或等效的powershell:

Add-AzureHDInsightStorage

copyfromlocal命令只有在运行该命令的计算机上有文件时才起作用,因此您当然可以将azure文件下载到该本地磁盘,但是,既然您可以用上面的命令将计算集群链接到它,为什么还要移动数据呢?

dgiusagp

dgiusagp2#

尝试以下命令。

cp公司

Usage: hadoop fs -cp URI [URI …] <dest>

将文件从源复制到目标。此命令还允许多个源,在这种情况下,目标必须是一个目录。

Example:
hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2
hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir

退出代码:成功时返回0,错误时返回-1。

Usage: hadoop fs -put <localsrc> ... <dst>

将单个src或多个src从本地文件系统复制到目标文件系统。还从stdin读取输入并写入目标文件系统。

hadoop fs -put localfile /user/hadoop/hadoopfile
hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir
hadoop fs -put localfile hdfs://nn.example.com/hadoop/hadoopfile
hadoop fs -put - hdfs://nn.example.com/hadoop/hadoopfile

从标准输入读取输入。退出代码:成功时返回0,错误时返回-1。
更多详情和参考:http://hadoop.apache.org/docs/r0.19.1/hdfs_shell.html

相关问题