【发布时间】:2016-12-25 17:19:19
【问题描述】:
我有一种情况,我必须将数据/文件从 PROD 复制到 UAT(hadoop 集群)。为此,我现在使用'distcp'。但它需要永远。由于 distcp 在后台使用 map-reduce,有没有办法使用 spark 来加快处理速度?就像我们可以将 hive 执行引擎设置为'TEZ'(以替换map-reduce)一样,我们可以将执行引擎设置为distcp 的火花吗?或者是否有任何其他'spark' 方法可以跨集群复制数据,甚至可能不关心 distcp?
我的第二个问题来了(假设我们可以将distcp执行引擎设置为spark而不是map-reduce,否则请不要费心回答这个问题):-
据我所知,Spark 比 map-reduce 更快,主要是因为它将数据存储在内存中,可能需要多次处理,这样它就不必从磁盘一直加载数据。在这里,我们正在跨集群复制数据,因此无需多次处理一个文件(或块或拆分),因为每个文件将进入内存然后将通过网络发送,被复制到目标集群磁盘,该文件的故事结束。那么如果不使用主要功能,Spark 怎么会加快处理速度呢?
【问题讨论】:
-
没有尝试过,但也许您实际上可以使用 Hive 来读取和写入(创建表作为选择)数据并在 Tez 或 Spark 上运行 Hive。关于第二部分 Spark的优势不仅在于使用内存,而且执行阶段的调度更好,因此它的顺序性不如MR
标签: hadoop apache-spark hdfs distcp bigdata