我有两个hdfs设置,希望将一些表从hdfs1复制(而不是迁移或移动)到hdfs2。如何将数据从一个hdfs复制到另一个hdfs?是否可以通过sqoop或其他命令行?
ttisahbt1#
还需要注意的是,可以使用源集群或目标集群运行底层mapreduce作业,如下所示:
hadoop --config /path/to/hadoop/config distcp <src> <dst>
ebdffaop2#
distcp 用于并行地向hadoop文件系统复制数据和从hadoop文件系统复制数据。它类似于泛型 hadoop fs -cp 命令。在后台进程中, distcp 实现为mapreduce作业,其中Map器仅用于在集群中并行复制。用法:将一个文件复制到另一个文件 % hadoop distcp file1 file2 将目录从一个位置复制到另一个位置 % hadoop distcp dir1 dir2 如果 dir2 不存在,则它将创建该文件夹并复制内容。如果 dir2 已经存在了,那么 dir1 将被复制到它下面。 -overwrite 选项强制覆盖同一文件夹中的文件。 -update 选项仅更新已更改的文件。在两个hdfs集群之间传输数据% hadoop distcp -update -delete hdfs://nn1/dir1 hdfs://nn2/dir2 -delete 选项从目标中删除源中不存在的文件或目录。
distcp
hadoop fs -cp
% hadoop distcp file1 file2
% hadoop distcp dir1 dir2
dir2
dir1
-overwrite
-update
-delete
4urapxun3#
试试dtingest,它是在ApacheApex平台上开发的。此工具将来自不同来源(如hdfs、共享驱动器、nfs、ftp、kafka)的数据复制到不同的目标。dtingest支持将数据从远程hdfs群集复制到本地hdfs群集。dtingest运行线程作业以并行方式复制数据,因此速度非常快。它负责故障处理、恢复等,并支持定期轮询目录进行连续复制。用法:dtingest[选项]。。。源URL。。。destinationurl示例:dtingesthdfs://nn1:8020/源hdfs://nn2:8020/目的地
uurity8g4#
hadoop附带了一个名为 distcp 用于并行地向hadoop文件系统复制大量数据。distcp的规范用例是在两个hdfs集群之间传输数据。如果集群运行的是相同版本的hadoop,那么hdfs方案是合适的。
$ hadoop distcp hdfs://namenode1/foo hdfs://namenode2/bar
中的数据 /foo namenode1的目录将被复制到namenode2的/bar目录。如果 /bar 目录不存在,它将创建它。我们还可以提到多个源路径。类似 rsync 默认情况下,distcp命令将跳过已经存在的文件。我们也可以使用 -overwrite 选项覆盖目标目录中的现有文件。选择 -update 将只更新已更改的文件。
/foo
/bar
rsync
$ hadoop distcp -update hdfs://namenode1/foo hdfs://namenode2/bar/foo ``` `distcp` 也可以实现为mapreduce作业,其中复制工作由在集群中并行运行的Map完成。不会有减速器。 如果尝试在两个运行不同版本的hdfs集群之间复制数据,复制过程将失败,因为rpc系统不兼容。在这种情况下,我们需要使用只读的基于http的hftp文件系统从源代码读取。在这里,作业必须在目标集群上运行。
$ hadoop distcp hftp://namenode1:50070/foo hdfs://namenode2/bar
50070是namenode的嵌入式web服务器的默认端口号。
ovfsdjhp5#
distcp命令用于并行地从一个集群复制到另一个集群。必须设置src的namenode的路径和dst的namenode的路径,内部使用mapper。例子:
$ hadoop distcp <src> <dst>
您可以为distcp设置的选项很少-m表示用于复制数据的Map器的数量这将提高复制速度。-自动提交数据的原子。-更新将只更新旧版本的数据。hadoop中有用于复制文件的通用命令are-cp和-put,但它们仅在数据量较少时使用。
uinbv5nw6#
distcp(distributed copy)是一种用于在集群之间复制数据的工具。它使用mapreduce实现其分发、错误处理和恢复以及报告。它将文件和目录列表展开为Map任务的输入,每个任务将复制源列表中指定的文件分区。用法: $ hadoop distcp <src> <dst> 例子:$ hadoop distcp hdfs://nn1:8020/file1 hdfs://nn2:8020/file2 file1 从 nn1 已复制到 nn2 带文件名 file2 到目前为止,distcp是最好的工具。sqoop用于将数据从关系数据库复制到hdfs,反之亦然,但不能在hdfs到hdfs之间进行复制。更多信息:http://hadoop.apache.org/docs/r1.2.1/distcp.htmlhttp://hadoop.apache.org/docs/r1.2.1/distcp2.html有两个版本可用-运行时性能 distcp2 与…相比 distcp
file1
nn1
nn2
file2
distcp2
6条答案
按热度按时间ttisahbt1#
还需要注意的是,可以使用源集群或目标集群运行底层mapreduce作业,如下所示:
ebdffaop2#
distcp
用于并行地向hadoop文件系统复制数据和从hadoop文件系统复制数据。它类似于泛型hadoop fs -cp
命令。在后台进程中,distcp
实现为mapreduce作业,其中Map器仅用于在集群中并行复制。用法:
将一个文件复制到另一个文件
% hadoop distcp file1 file2
将目录从一个位置复制到另一个位置% hadoop distcp dir1 dir2
如果dir2
不存在,则它将创建该文件夹并复制内容。如果dir2
已经存在了,那么dir1
将被复制到它下面。-overwrite
选项强制覆盖同一文件夹中的文件。-update
选项仅更新已更改的文件。在两个hdfs集群之间传输数据
% hadoop distcp -update -delete hdfs://nn1/dir1 hdfs://nn2/dir2
-delete
选项从目标中删除源中不存在的文件或目录。4urapxun3#
试试dtingest,它是在ApacheApex平台上开发的。此工具将来自不同来源(如hdfs、共享驱动器、nfs、ftp、kafka)的数据复制到不同的目标。dtingest支持将数据从远程hdfs群集复制到本地hdfs群集。dtingest运行线程作业以并行方式复制数据,因此速度非常快。它负责故障处理、恢复等,并支持定期轮询目录进行连续复制。
用法:dtingest[选项]。。。源URL。。。destinationurl示例:dtingesthdfs://nn1:8020/源hdfs://nn2:8020/目的地
uurity8g4#
hadoop附带了一个名为
distcp
用于并行地向hadoop文件系统复制大量数据。distcp的规范用例是在两个hdfs集群之间传输数据。如果集群运行的是相同版本的hadoop,那么hdfs方案是合适的。中的数据
/foo
namenode1的目录将被复制到namenode2的/bar目录。如果/bar
目录不存在,它将创建它。我们还可以提到多个源路径。类似
rsync
默认情况下,distcp命令将跳过已经存在的文件。我们也可以使用-overwrite
选项覆盖目标目录中的现有文件。选择-update
将只更新已更改的文件。$ hadoop distcp hftp://namenode1:50070/foo hdfs://namenode2/bar
ovfsdjhp5#
distcp命令用于并行地从一个集群复制到另一个集群。必须设置src的namenode的路径和dst的namenode的路径,内部使用mapper。
例子:
您可以为distcp设置的选项很少
-m表示用于复制数据的Map器的数量这将提高复制速度。
-自动提交数据的原子。
-更新将只更新旧版本的数据。
hadoop中有用于复制文件的通用命令are-cp和-put,但它们仅在数据量较少时使用。
uinbv5nw6#
distcp(distributed copy)是一种用于在集群之间复制数据的工具。它使用mapreduce实现其分发、错误处理和恢复以及报告。它将文件和目录列表展开为Map任务的输入,每个任务将复制源列表中指定的文件分区。
用法:
$ hadoop distcp <src> <dst>
例子:$ hadoop distcp hdfs://nn1:8020/file1 hdfs://nn2:8020/file2
file1
从nn1
已复制到nn2
带文件名file2
到目前为止,distcp是最好的工具。sqoop用于将数据从关系数据库复制到hdfs,反之亦然,但不能在hdfs到hdfs之间进行复制。更多信息:
http://hadoop.apache.org/docs/r1.2.1/distcp.html
http://hadoop.apache.org/docs/r1.2.1/distcp2.html
有两个版本可用-运行时性能
distcp2
与…相比distcp