hadoop distcp 备份HDFS文件,并行复制大量数据。
1.同版本集群之间复制 :
hadoop distcp hdfs://namenode1/src hdfs://namenode2/dist
这将从第一个集群中复制/src目录下的内容复制到第二个集群中的/dist目录下
默认情况下,distcp会跳过目标路径已经有的文件,但可以通过提供的-overwrite选项进行覆盖,也可以用-update选项来选择只更新那些修改过的文件。
第一个集群的子树/src下的一个文件与第二个集群的改变进行同步。
hadoop distcp -update hdfs://namenode1/src hdfs://namenode2/dist
distcp是作为一个MapReduce作业执行的,复制工作由集群中并行运行的map来完成。这里没有reducer。每个文件都由一个单一的map进行复制,并且distcp通过将文件分成大致相等的文件来为每个map数量大致相同的数据。
map的数量确定:
通过让每一个map复制数量合理的数据以最小化任务建立所涉及的开销,是一个很好的想法,所以每个map的副本至少为256MB。例如,1GB的文件被分成4个map任务。如果数据很大,为限制带宽和集群的使用而限制映射的数据就变得很有必要。map默认的最大数量是每个集群节点(tasktracker)有20个。例如,复制1000GB的文件到一个100个节点的集群,会分配2000个map(每个节点20个map),所以平均每个会复制512MB。通过对distcp指定-m参数,会减少映射的分配数量。例如,-m 1000会分配1000个map,平均每个复制1GB。
2.不同版本之前复制
不同版本HDFS的集群上利用distcp,使用hdfs协议是会失败的,因为RPC系统是不兼容的。想要弥补这种情况,可以使用基于HTTP的HFTP文件系统从源中进行读取。这个作业必须运行在目标集群上,使得HDFS RPC版本是兼容的。使用HFTP重复前面的例子:
hadoop distcp hftp://namenode1:50070/src hdfs://namenode2/dist
注意,需要在URI源中指定名称节点的Web端口。这是由dfs.http.address的属性决定的,默认值为50070。
保持HDFS集群的平衡
向HDFS复制数据时,考虑集群的平衡相当重要。文件块在集群中均匀地分布时,HDFS能达到最佳工作状态。回顾前面1000 GB数据的例子,通过指定-m选项为1,即由一个单一的map执行复制工作,它的意思是,不考虑速度变慢和未充分利用集群资源,每个块的第一个副本会存储在运行map的节点上(直到磁盘被填满)。第二和第三个副本分散在集群中,但这一个节点并不会平衡。通过让map的数量多于集群中节点的数量,我们便可避免这个问题。鉴于此,最好首先就用默认的每个节点20个map这个默认设置来运行distcp。
然而,这也并不总能阻止一个集群变得不平衡。也许想限制map的数量以便一些节点可以被其他作业使用。若是这样,可以使用balancer工具继续改善集群中块的分布。
相关推荐
本篇将详细阐述如何进行Hadoop数据迁移,包括虚拟机环境下的硬盘扩展以及Hadoop命令的使用。 一、虚拟机硬盘扩展与分区 1. **为虚拟机添加新硬盘** 在项目开发中,当原有的虚拟机硬盘空间不足时,通常需要扩展...
本文档详细记录了一次从自建Hadoop集群到华为云MRS(Managed Service for Big Data)的大规模数据迁移项目,涉及到了Hive、Kudu和HBase这三种不同类型的数据存储系统。以下是针对这些系统的迁移策略、流程和解决方案...
本实验主要介绍了 HBase 数据迁移与数据备份和恢复的方法,包括使用 Sqoop 将 MySQL 数据导入到 HBase、将文本文件批量导入 HBase、使用 Hadoop DistCp 实现 HBase 的冷备份和热备份。 一、使用 Sqoop 将 MySQL ...
数据迁移常用工具如DistCp或AWS的Snowball;应用需要评估是否适应云环境,可能需要代码修改;配置需调整以充分利用云服务的特性。 5. **Shell脚本**: 标签“Shell”表明此源代码可能包含用于自动化迁移过程的Shell...
同时,Hadoop还提供了一些工具jar包,如`hadoop-tools.jar`,它包含了诸如HDFS的DFSAdmin工具和数据迁移工具等。 在实际应用中,我们可以通过编写MapReduce程序,利用`hadoop-streaming.jar`进行基于命令行的处理,...
简介Hadoop Distcp(Distributed copy)主要是用于 Hadoop 文件系统内部或之间进行大规模数据复制的工具,它基于 Map/Redu
其次,distcp(Distributed Copy)是Hadoop提供的一个工具,用于在HDFS集群之间或者HDFS与其他存储系统间高效地进行大规模数据复制。distcp利用MapReduce框架并行执行复制任务,显著提高了数据迁移的效率。用户可以...
5. **hadoop-tools**: 提供了一些实用工具,如Hadoop命令行工具、数据迁移工具(DistCp)以及与其他系统集成的工具。 在分析源码时,你可能需要关注以下几个关键点: - **HDFS的副本策略**:Hadoop如何决定数据块的...
对于关系型数据库MySQL来说,首先需要停止对外服务,并通过配置DTS(Data Transmission Service)来进行数据迁移。在数据迁移过程中,可以采用自动增量迁移的方式来减少对外服务的影响时间。完成迁移后,需重建MySQL...
`distcp`命令用于在两个不同的HDFS之间进行高效的数据复制,特别适合大规模数据迁移场景。 - **`hadoop distcp hdfs://src/hdfs://dest`**:从源HDFS复制数据到目标HDFS。 #### 4. **hadoop dfsadmin** 用于HDFS...
数据备份是任何系统的重要环节,Hadoop备份可能包括数据复制策略、HDFS的快照功能、以及使用工具如DistCp进行数据迁移或备份的方法。 五、Hadoop命令 这部分可能会详细介绍Hadoop相关的命令行工具,如HDFS的`hadoop...
2. 数据迁移:将现有的数据迁移到HDFS,这可能需要使用工具如DistCp或者Hadoop的自带工具。 3. 开发和部署MapReduce程序:根据业务需求编写MapReduce代码,然后将其部署到集群上运行。 4. 监控和维护:对Hadoop...
本文将深入探讨HBase跨集群迁移的方法,特别是通过DistCp工具进行迁移的步骤和注意事项。 首先,当需要进行HBase集群迁移时,通常是因为硬件升级、灾难恢复或数据中心迁移等原因。在这种情况下,一种常见的方法是...
例如,Hadoop的HDFS可以使用DistCp工具进行大规模数据迁移;HBase的性能可以通过调整Region大小、使用布隆过滤器等方式优化;Kafka的数据持久化可以通过设置Log Compaction保证;ClickHouse的查询性能可通过创建合适...
10. **Hadoop DistCp**:一个用于大规模数据复制和同步的工具,可以高效地在HDFS和其他文件系统之间移动数据。 通过`hadoop-client-modules.rar`,开发者可以访问这些模块,实现对Hadoop集群的访问和管理,进行数据...
- 对于大规模数据迁移,需要利用像FastCopy这样高效的数据迁移工具,虽然它比distcp更快且不需要物理拷贝,但仍然需要注意迁移过程的资源消耗和时间成本。 - 在保证用户透明度方面,可能需要实现一些高级的调度和...
总的来说,Hive元数据导入SQL生成工具是大数据环境中不可或缺的辅助工具,它简化了元数据管理的过程,提高了数据迁移和恢复的效率。对于CDH4.7.0这样的旧版本,正确使用这样的工具可以帮助用户保持数据处理能力的...
DistCp 是一个分布式的文件拷贝工具,而 JindoDistCp 是阿里云 EMR 团队开发的针对 OSS 上数据迁移的拷贝工具,它不仅可以支持 HDFS、OSS 上的数据迁移,还可以支持常见的 S3 和 COS 等数据间的数据迁移。...
5. JindoDistCp 介绍:JindoDistCp 是阿里云 EMR 团队开发的针对 OSS 上数据迁移的拷贝工具,支持 HDFS、OSS、S3 和 COS 等数据源之间的数据迁移。 6. 数据无忧:JindoFS 提供了多种方式来确保数据安全,包括 ...