cp命令在hadoop中是如何工作的?

vfhzx4xs  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(835)

我正在读“hadoop:定义指南”,为了解释我的问题,请允许我引用这本书中的话
distcp实现为mapreduce作业,其中复制工作由在集群中并行运行的Map完成。没有减速器。每个文件都由一个Map复制,distcp通过将文件按大致相等的分配来尝试为每个Map提供大致相同的数据量。默认情况下,最多使用20个Map,但是可以通过将-m参数指定给distcp来更改。
在脚注中
即使对于单个文件副本,distcp变体也更适合用于大型文件,因为hadoop fs-cp通过运行该命令的客户机来复制文件。
我理解为什么distcp更适用于文件的收集,因为不同的Map程序在单个文件上并行执行。但是,当只复制一个文件时,为什么文件大小较大时distcp的性能更好(根据脚注)。我只是刚刚开始,如果解释一下hadoop中的cp命令是如何工作的,以及“hadoop fs-cp通过运行该命令的客户机复制文件”是什么意思,这将非常有用。我理解hadoop的写过程,这在书中有解释,其中形成了一个datanode管道,每个datanode负责将数据写入管道中的以下datanode。

lb3vh1jj

lb3vh1jj1#

当文件“通过客户端”复制时,字节内容从hdfs流式传输到运行该命令的本地节点,然后上传回目标hdfs位置。文件元数据并不像您期望的那样直接复制到数据节点之间的新位置。
与distcp相比,distcp可以创建更小的、并行的 cp 命令分布在多个主机上

相关问题