cp命令在Hadoop中如何工作?

时间:2018-08-23 06:54:10

标签: hadoop hdfs

我正在阅读“ Hadoop:权威指南”,并解释我的问题,让我引用本书中的内容

  

distcp被实现为MapReduce作业,其中复制工作由   在整个集群中并行运行的映射。没有减速器。每个文件被复制   一张地图,然后distcp尝试为每张地图赋予大致相同的数量   通过将文件存储到大致相等的分配中来存储数据。默认情况下,最多使用20个映射,但是可以通过在distcp中指定-m参数来更改此映射。

和脚注

  

即使对于单个文件副本,distcp变体也适用于大文件,因为hadoop fs -cp复制文件   通过运行命令的客户端。

我理解为什么distcp可以更好地收集文件,因为不同的映射器在单个文件上并行执行每个映射器。但是,当仅要复制一个文件时,为什么在文件大小较大时(根据脚注)distcp的性能会更好。我只是一个入门,因此如果解释了hadoop中cp命令的工作方式以及“ hadoop fs -cp通过运行该命令的客户端复制文件”的含义,将对您有所帮助。我了解Hadoop的写入过程,该书中解释了Hadoop的写入过程,该过程中形成了一个数据节点管道,每个数据节点负责将数据写入管道中的以下数据节点。

1 个答案:

答案 0 :(得分:1)

“通过客户端”复制文件时,字节内容将从HDFS流传输到运行命令的本地节点,然后上传回目标HDFS位置。文件元数据并不会像您期望的那样直接复制到数据节点之间的新位置。

将其与distcp进行比较,后者会创建分布在多个主机上的较小的并行cp命令