《Hadoop实战手册》一1.3 使用distcp实现集群间数据复制

简介:

本节书摘来异步社区《Hadoop实战手册》一书中的第1章,第1.3节,作者: 【美】Jonathan R. Owens , Jon Lentz , Brian Femiano 译者: 傅杰 , 赵磊 , 卢学裕 责编: 杨海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.3 使用distcp实现集群间数据复制

Hadoop分布式复制(distcp)是Hadoop集群间复制大量数据的高效工具。distcp是通过启动MapReduce实现数据复制的。使用MapReduce的好处包含可并行性、高容错性、作业恢复、日志记录、进度汇报等。Hadoop分布式复制(distcp)对在开发集群环境、研究集群环境和生产集群环境之间进行数据复制十分有用。

准备工作
首先必须保证复制源和复制目的地能够互相访问。

最好关闭复制源集群map任务的推测机制,可以在配置文件mapred-site.xml中将mapred.map.tasks.speculative.execution的值设置为false来实现,这样就可以避免在map任务失败的时候产生任何不可知的行为。

源集群和目的集群的RPC协议必须是一致。这意味着两个集群之间安装的Hadoop版本必须一致3。

操作步骤
完成以下几个步骤实现集群间的文件夹复制。

1.将集群A的weblogs文件夹复制到集群B上:

hadoop distcp hdfs://namenodeA/data/weblogs  hdfs://namenodeB/data/weblogs

2.将集群A的weblogs文件夹复制到集群B并覆盖已存在文件:

hadoop distcp –overwrite hdfs://namenodeA/data/weblogs hdfs://namenodeB/ data/weblogs

3.同步集群A和集群B之间的weblogs文件夹:

hadoop distcp –update hdfs://namenodeA/data/weblogs hdfs://namenodeB/data/ weblogs

工作原理
在源集群,文件夹中的内容将被复制为一个临时的大文件。将会启动一个只有map(map-only4)的MapReduce作业来实现两个集群间的数据复制。默认情况下,每个map就将会分配到一个256 MB的数据块文件。举个例子,如果weblogs文件夹总大小为10 GB,默认将会启动40个map,每个map会复制大约256 MB的数据。distcp复制也可以通过参数手动设置启动的map数量。

hadoop distcp –m 10 hdfs://namenodeA/data/weblogs hdfs://namenodeB/data/ weblogs

在上面这个例子中,将会启动10个map进行数据复制。如果weblogs文件夹的总大小是10 GB,那么每个map会复制大约1 GB的数据。

更多参考
如果要在运行的Hadoop版本不一样的两个集群之间进行数据复制,一般建议在复制源集群使用HftpFileSystem5。HftpFileSystem是一个只读的文件系统。相应的distcp命令只能在目标服务器上运行:

hadoop distcp hftp://namenodeA:port/data/weblogs hdfs://namenodeB/data/ weblogs

在上面这条命令中,port的值要与配置文件hdfs-site.xml中dfs.http.address属性的端口值一致。

相关文章
|
4月前
|
数据采集 分布式计算 监控
Hadoop集群长时间运行数据倾斜原因
【6月更文挑战第20天】
42 6
|
4月前
|
分布式计算 监控 网络协议
Hadoop集群长时间运行网络延迟原因
【6月更文挑战第20天】
111 2
|
2月前
|
存储 分布式计算 资源调度
Hadoop入门基础(三):如何巧妙划分Hadoop集群,全面提升数据处理性能?
Hadoop入门基础(三):如何巧妙划分Hadoop集群,全面提升数据处理性能?
|
1月前
|
分布式计算 Hadoop Devops
Hadoop集群配置https实战案例
本文提供了一个实战案例,详细介绍了如何在Hadoop集群中配置HTTPS,包括生成私钥和证书文件、配置keystore和truststore、修改hdfs-site.xml和ssl-client.xml文件,以及重启Hadoop集群的步骤,并提供了一些常见问题的故障排除方法。
52 3
Hadoop集群配置https实战案例
|
14天前
|
分布式计算 Hadoop Java
Hadoop集群搭建,基于3.3.4hadoop和centos8【图文教程-从零开始搭建Hadoop集群】,常见问题解决
本文是一份详细的Hadoop集群搭建指南,基于Hadoop 3.3.4版本和CentOS 8操作系统。文章内容包括虚拟机创建、网络配置、Java与Hadoop环境搭建、克隆虚拟机、SSH免密登录设置、格式化NameNode、启动Hadoop集群以及通过UI界面查看Hadoop运行状态。同时,还提供了常见问题的解决方案。
Hadoop集群搭建,基于3.3.4hadoop和centos8【图文教程-从零开始搭建Hadoop集群】,常见问题解决
|
1月前
|
机器学习/深度学习 分布式计算 安全
Hadoop集群常见报错汇总
这篇博客总结了Hadoop集群中可能遇到的各种常见错误,包括Kerberos认证问题、配置错误、权限问题等,并为每个问题提供了详细的错误复现、原因分析以及相应的解决方案。
56 1
Hadoop集群常见报错汇总
|
1月前
|
资源调度 分布式计算 运维
Hadoop集群资源管理篇-资源调度器
详细介绍了Hadoop集群资源管理中的资源调度器,包括资源分配的概念、大数据运维工程师如何管理集群工作负载、资源调度器的背景、Hadoop提供的FIFO、容量调度器和公平调度器三种资源调度器的概述以及它们之间的对比。
84 4
|
1月前
|
分布式计算 监控 Hadoop
监控Hadoop集群实战篇
介绍了监控Hadoop集群的方法,包括监控Linux服务器、Hadoop指标、使用Ganglia监控Hadoop集群、Hadoop日志记录、通过Hadoop的Web UI进行监控以及其他Hadoop组件的监控,并提供了相关监控工具和资源的推荐阅读链接。
52 2
|
2月前
|
机器学习/深度学习 存储 分布式计算
Hadoop高可用集群搭建
Hadoop高可用集群搭建
|
2月前
|
存储 分布式计算 监控
什么是 Hadoop 集群?
【8月更文挑战第12天】
94 4

相关实验场景

更多