`
zhaohuafei
  • 浏览: 28252 次
文章分类
社区版块
存档分类
最新评论

HDFS——如何将文件从HDFS复制到本地

 
阅读更多

下面两个命令是把文件从HDFS上下载到本地的命令。

get

使用方法:hadoop fs -get [-ignorecrc] [-crc] <src> <localdst>

复制文件到本地文件系统。可用-ignorecrc选项复制CRC校验失败的文件。使用-crc选项复制文件以及CRC信息。

示例:

  • hadoop fs -get /user/hadoop/file localfile
  • hadoop fs -get hdfs://host:port/user/hadoop/file localfile

返回值:

成功返回0,失败返回-1。

copyToLocal

使用方法:hadoop fs -copyToLocal [-ignorecrc] [-crc] URI <localdst>

除了限定目标路径是一个本地文件外,和get命令类似。


也可以用如下的程序可实现将HDFS上的文件下载到本地。
import java.net.URI;
import java.io.OutputStream;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public class FileCopy2Local
{
 public static void main(String[] args) throws Exception
 {
  String dest = "hdfs://localhost:9000/user/laozhao0/cite2.txt";
  String local = "/home/laozhao0/cite2.txt";
  Configuration conf = new Configuration();
  FileSystem fs = FileSystem.get(URI.create(dest),conf);
  FSDataInputStream fsdi = fs.open(new Path(dest));
  OutputStream output = new FileOutputStream(local);
  IOUtils.copyBytes(fsdi,output,4096,true);
 }
}


分享到:
评论

相关推荐

    《HDFS——Hadoop分布式文件系统深度实践》PDF

    客户端在写入文件时,会先将文件块写入本地DataNode,然后将元数据信息更新到NameNode。读取文件时,NameNode会根据元数据信息指引客户端找到数据块的位置,通常是从最近或负载较低的DataNode开始读取。 HDFS的另一...

    实验二:熟悉常用的HDFS操作

    在Java编程实现部分,学生通过`org.apache.hadoop.conf.Configuration`,`org.apache.hadoop.fs.FileSystem`和`org.apache.hadoop.fs.Path`等类,实现了文件存在性判断和本地文件复制到HDFS的功能。`FileSystem.get...

    hdfs_design.rar_HDFS-OPERATE_hadoop_hadoop java_hdfs

    例如,使用`hadoop fs -put`命令将本地文件上传到HDFS,使用`hadoop fs -get`下载文件,`hadoop fs -rm`删除文件,以及如何查看目录结构等。这些基本操作是日常管理和维护HDFS的基础。 在Hadoop__java标签中,意味...

    hadoop源码分析-HDFS部分

    1. **fs**: 这是文件系统接口层,提供了一种抽象,使得Hadoop可以在不同类型的文件系统上运行,包括本地文件系统、HDFS以及Amazon S3等。这个包包含了FileContext接口,它是访问文件系统的主要入口点。 2. **hdfs**...

    大数据与云计算教程课件 优质大数据课程 08.HDFS文件接口(共41页).pptx

    写入时,数据块先写入本地DataNode,再复制到其他节点,提高写入速度。同时,HDFS的容错机制确保了即使部分节点故障,数据也能被安全地恢复。 本课程涵盖了Hadoop的多个关键组件,如MapReduce、YARN、Hive、HBase、...

    云计算之HDFS.ppt

    HDFS提供了一系列API供用户与系统交互,如`hdfs.copyFromLocalFile()`方法用于将本地文件上传到HDFS。开发者可以利用这些API进行数据的读写、操作和管理,实现对大数据的高效处理。 总的来说,Hadoop的HDFS是一个...

    hdfs-command-line_Transcript.pdf

    - **示例**:假设你想将名为`myfile.txt`的文件从本地文件系统复制到HDFS的根目录下,可以使用命令:`hadoop fs -copyFromLocal myfile.txt hdfs://localhost/` #### 五、HDFS命令行接口其他常见命令 除了上述提到...

    Hadoop技术内幕 深入解析HADOOP COMMON和HDFS架构设计与实现原理.pdf

    1. 块级存储:HDFS将大文件切分成多个固定大小的块,每个块多副本分布在不同的DataNode上,提高了容错性和读取效率。 2. 写入流程:客户端首先与NameNode交互,确定写入的块位置,然后直接向DataNode写入数据,最后...

    Hadoop分布式文件系统——导入和导出数据内含源码以及说明书可以自己运行复现.zip

    例如,`hadoop fs -put localfile hdfs://namenode:port/destinationpath`会将localfile文件复制到HDFS的指定路径下。 4. **使用Hadoop API**:如果你是在编程环境中工作,可以使用Hadoop的Java API或者其他的语言...

    Hadoop分布式文件系统——翻译

    - **数据持久性和可靠性**:为了保证数据的持久性和可靠性,HDFS通过将文件内容复制到多个DataNode上来实现。这种方式不仅保证了数据的可靠性,还提高了数据传输带宽和计算本地化的可能性。 #### 3. HDFS的关键技术...

    【HDFS篇07】NameNode和SecondearyNameNode1

    然后,SecondaryNameNode会将旧的Fsimage和Edits文件复制到本地,并在内存中合并它们,生成一个新的fsimage.chkpoint文件。 3. **同步回NameNode:** 合并完成后,SecondaryNameNode会将fsimage.chkpoint文件传回...

    HDFS的概念-namenode和datanode.pdf

    然而,Namenode是整个系统的单点故障,如果Namenode失效,文件系统的可用性将受到影响。为了保证容错性,Hadoop提供了多种策略。首先,可以配置Namenode在多个文件系统上同步保存元数据,通常包括本地磁盘和网络文件...

    hadoop,map,reduce,hdfs

    - `hadoop fs -put &lt;localfile&gt; &lt;hdfsdir&gt;`:将本地文件上传到HDFS。 - `hadoop fs -ls &lt;path&gt;`:列出HDFS路径下的文件和目录列表。 #### HDFS Java API 除了命令行工具之外,HDFS还提供了Java API,允许开发者...

    实验报告模板 - 大数据应用-实验二.docx

    - 复制本地文件到HDFS,覆盖已存在的文件:利用`FileSystem.copyFromLocalFile()`方法。 - 追加文件内容:使用`FileSystem.append()`方法创建一个`FSDataOutputStream`,将内容追加到文件末尾。 四、Java API实现...

    Hadoop技术内幕 深入解析HADOOP COMMON和HDFS架构设计与实现原理 高清 完整书签

    4. 数据读写流程:读操作通常从最近或最忙的DataNode开始,写操作则先在NameNode上创建文件,然后DataNodes接收数据并将Block写入本地磁盘,最后NameNode更新元数据。 5. 故障恢复:当DataNode故障时,NameNode会...

    Hadoop海量数据处理

    二、HDFS——分布式文件系统 HDFS的设计目标是高容错性、可扩展性和高吞吐量。它将大文件分割成块,并在多台服务器上冗余存储,确保即使部分节点故障,数据仍然可访问。HDFS的关键特性包括数据自动复制、数据本地化...

    《云计算》课程论文.doc

    客户端将数据写入第一个DataNode,后者再将数据复制到其他DataNode。 4. 当块写满后,关闭当前块并开始下一个块的写入过程。 5. 写入完成后,客户端通知NameNode,后者更新元数据。 - **读取流程**: 1. 客户端...

    Hadoop2.7.1——NFS部署

    ### Hadoop 2.7.1 —— NFS 部署详解 ... 从 HDFS 复制文件到本地:** ```bash cp /mnt/hdfs/jdk.tar.gz . ``` 完成上述步骤后,即可实现Hadoop 2.7.1 的 NFS 部署,并能够进行数据的高效读写操作。

    hadoop学习之wordCount以及文件上传demo,经测试通过

    在Hadoop环境中,文件上传通常通过`hadoop fs -put`命令完成,该命令将本地文件或目录复制到HDFS中。在本示例的"bigdata-demo"压缩包中,可能包含了一个模拟的文件上传脚本或者程序,用于演示如何通过编程方式实现...

    hadoop资料

    二、HDFS——分布式文件系统 1. 数据块与副本策略:HDFS将大文件分割为多个小的数据块,每个数据块默认有三份副本,分别存储在不同的节点上,增强了数据的可靠性和可用性。 2. NameNode与DataNode:NameNode是HDFS...

Global site tag (gtag.js) - Google Analytics