我有一种情况,我必须将数据/文件从 PROD 复制到 UAT(hadoop 集群)。为此,我现在正在使用'distcp'
。但它需要永远。由于 distcp 在后台使用 map-reduce,有没有办法使用 spark 来加快处理速度?就像我们可以将 hive 执行引擎设置为'TEZ'
(替换map-reduce
)一样,我们可以将执行引擎设置为 spark fordistcp
吗?或者有没有其他'spark'
方法可以跨集群复制数据,甚至可能不关心 distcp?
我的第二个问题来了(假设我们可以将distcp
执行引擎设置为 spark 而不是 map-reduce,否则请不要费心回答这个问题):- 据我所知,Spark 比 map-reduce 快,主要是因为它存储数据在它可能需要多次处理的内存中,这样它就不必从磁盘一直加载数据。在这里,我们正在跨集群复制数据,因此无需多次处理一个文件(或块或拆分),因为每个文件将进入内存然后将通过网络发送,被复制到目标集群磁盘,该文件的故事结束。那么如果不使用主要功能,Spark 怎么会加快处理速度呢?