使用spark跨hadoop集群复制数据

使用spark跨hadoop集群复制数据,hadoop,apache-spark,hdfs,distcp,bigdata,Hadoop,Apache Spark,Hdfs,Distcp,Bigdata,我的情况是,我必须将数据/文件从PROD复制到UAT(hadoop集群)。为此,我现在使用的是'distcp'。但这要花很长时间。由于distcp在引擎盖下使用map reduce,是否有任何方法可以使用spark使过程更快?就像我们可以将配置单元执行引擎设置为'TEZ'(替换map reduce),我们可以将执行引擎设置为spark fordistcp?或者是否有任何其他的'spark'方法可以跨集群复制数据,而这些方法甚至不必考虑distcp 下面是我的第二个问题(假设我们可以将distcp

我的情况是,我必须将数据/文件从PROD复制到UAT(hadoop集群)。为此,我现在使用的是
'distcp'
。但这要花很长时间。由于distcp在引擎盖下使用map reduce,是否有任何方法可以使用spark使过程更快?就像我们可以将配置单元执行引擎设置为
'TEZ'
(替换
map reduce
),我们可以将执行引擎设置为spark for
distcp
?或者是否有任何其他的
'spark'
方法可以跨集群复制数据,而这些方法甚至不必考虑distcp

下面是我的第二个问题(假设我们可以将
distcp
执行引擎设置为spark而不是map reduce,请不要费心回答这个问题):-
据我所知,Spark比map reduce快,主要是因为它将数据存储在内存中,在某些情况下可能需要处理这些数据,这样它就不必一直从磁盘加载数据。在这里,我们跨集群复制数据,因此无需对一个文件(或块或拆分)进行多次处理,因为每个文件都将进入内存,然后通过网络发送,复制到目标集群磁盘,该文件的故事到此结束。那么,如果不使用主要功能,Spark为什么会使过程更快呢?

Spark并不是真正用于Hadoop集群之间的数据移动。您可能希望使用
“-m”
选项为您的
distcp
作业寻找其他映射器

Spark并不是真正用于Hadoop集群之间的数据移动。您可能希望使用
“-m”
选项为您的
distcp
作业寻找其他映射器

大容量跨群集IO上的瓶颈通常是

  • 集群间带宽
  • 从源群集读取带宽
  • 向目标群集写入带宽(使用3倍复制,写入会占用磁盘和交换机带宽)
  • 分配的工作空间(即执行者、任务的数量)
  • 一般来说,在长途上传时,它会影响到您的长途网络,这是一个瓶颈:您不需要太多的工作人员来覆盖网络

    有一个著名的故事是关于两个Yahoo!集群确实做到了这一点:Hadoop ops团队为distcp进展如此之快感到高兴,而networks ops团队则担心他们的核心服务由于两个站点之间的流量而受到影响。我相信这一事件是distcp现在拥有
    -带宽
    选项的原因:)

    在distcp中可能存在限制的地方,可能是在任务设置和执行中:要复制哪些文件的决定是提前做出的,如果一些文件复制得很快,而另一些文件复制得很出色,那么在重新安排工作时就没有多少(任何?)智能

    Distcp只是提前建立列表,并将其交给专门的Distcp映射器,每个映射器读取其文件列表并将其复制过来


    有人可以尝试使用distcp的spark版本;如果有人想更好地安排工作,这可能是一个有趣的项目,因为spark在向现有执行者推出新工作方面非常有效:spark版本可以动态推出工作,而不是提前列出所有内容。实际上,它仍然可以在枚举要复制的文件时启动复制操作,以加快启动时间。即便如此:跨群集带宽通常是瓶颈。

    大容量跨群集IO上的瓶颈通常是

  • 集群间带宽
  • 从源群集读取带宽
  • 向目标群集写入带宽(使用3倍复制,写入会占用磁盘和交换机带宽)
  • 分配的工作空间(即执行者、任务的数量)
  • 一般来说,在长途上传时,它会影响到您的长途网络,这是一个瓶颈:您不需要太多的工作人员来覆盖网络

    有一个著名的故事是关于两个Yahoo!集群确实做到了这一点:Hadoop ops团队为distcp进展如此之快感到高兴,而networks ops团队则担心他们的核心服务由于两个站点之间的流量而受到影响。我相信这一事件是distcp现在拥有
    -带宽
    选项的原因:)

    在distcp中可能存在限制的地方,可能是在任务设置和执行中:要复制哪些文件的决定是提前做出的,如果一些文件复制得很快,而另一些文件复制得很出色,那么在重新安排工作时就没有多少(任何?)智能

    Distcp只是提前建立列表,并将其交给专门的Distcp映射器,每个映射器读取其文件列表并将其复制过来


    有人可以尝试使用distcp的spark版本;如果有人想更好地安排工作,这可能是一个有趣的项目,因为spark在向现有执行者推出新工作方面非常有效:spark版本可以动态推出工作,而不是提前列出所有内容。实际上,它仍然可以在枚举要复制的文件时启动复制操作,以加快启动时间。即便如此:跨集群带宽通常是瓶颈。

    From:我知道它规定了可以同时执行的map任务的最大数量。那么,有没有办法知道我的集群同时执行的最大数量(假设一个作业有25个拆分)?在不妨碍其他流程的情况下,我可以在多大程度上增加此数量?我有12个节点的PROD和6个节点的UAT,它们都有大约250 GB的物理内存和大约45 TB的磁盘空间。可能需要一些测试来确定最佳设置。From:我知道它指定了可以同时执行的最大映射任务数。那么,有没有办法知道最大数量是多少