我刚开始了解hdinsight。我有一些文件存储在azure存储中,我想复制到hdfs中。我正在尝试使用fs-copyfromlocal。当我从c驱动器复制时,它工作正常当我尝试使用wasb路径从blob存储复制到blob容器时,我得到一个错误的fs错误。我怀疑从本地复制是错误的工具。如何从容器复制到hdfs。
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文件下载到该本地磁盘,但是,既然您可以用上面的命令将计算集群链接到它,为什么还要移动数据呢?
dgiusagp2#
尝试以下命令。
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
2条答案
按热度按时间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. 你也可以使用
或等效的powershell:
copyfromlocal命令只有在运行该命令的计算机上有文件时才起作用,因此您当然可以将azure文件下载到该本地磁盘,但是,既然您可以用上面的命令将计算集群链接到它,为什么还要移动数据呢?
dgiusagp2#
尝试以下命令。
cp公司
将文件从源复制到目标。此命令还允许多个源,在这种情况下,目标必须是一个目录。
退出代码:成功时返回0,错误时返回-1。
放
将单个src或多个src从本地文件系统复制到目标文件系统。还从stdin读取输入并写入目标文件系统。
从标准输入读取输入。退出代码:成功时返回0,错误时返回-1。
更多详情和参考:http://hadoop.apache.org/docs/r0.19.1/hdfs_shell.html