我的编程空间,编程开发者的网络收藏夹
学习永远不晚

hadoop distcp是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

hadoop distcp是什么

这篇文章主要讲解了“hadoop distcp是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“hadoop distcp是什么”吧!

概述

distcp(分布式拷贝)是用于大规模集群内部和集群之间拷贝的工具。 它使用Map/Reduce实现文件分发,错误处理和恢复,以及报告生成。 它把文件和目录的列表作为map任务的输入,每个任务会完成源列表中部分文件的拷贝。 由于使用了Map/Reduce方法,这个工具在语义和执行上都会有特殊的地方。 这篇文档会为常用distcp操作提供指南并阐述它的工作模型。

标识描述备注
Preserve
  r: replication number
  b: block size
  u: user
  g: group
  p: permission
修改次数不会被保留。并且当指定 忽略失败就像在 附录中提到的,这个选项会比默认情况提供关于拷贝的更精确的统计, 同时它还将保留失败拷贝操作的日志,这些日志信息可以用于调试。最后,如果一个map失败了,但并没完成所有分块任务的尝试,这不会导致整个作业的失败。
记录日志到 <logdir>DistCp为每个文件的每次尝试拷贝操作都记录日志,并把日志作为map的输出。 如果一个map失败了,当重新执行时这个日志不会被保留。
同时拷贝的最大数目指定了拷贝数据时map的数目。请注意并不是map数越多吞吐量越大。
覆盖目标如果一个map失败并且没有使用如果源和目标的大小不一样则进行覆盖像之前提到的,这不是"同步"操作。 执行覆盖的唯一标准是源文件和目标文件大小是否相同;如果不同,则源文件替换目标文件。 像 下面提到的,它也改变生成目标路径的语义, 用户使用要小心。
使用<urilist_uri> 作为源文件列表这等价于把所有文件名列在命令行中。 urilist_uri 列表应该是完整合法的URI。
更新和覆盖

这里给出一些 -update和 -overwrite的例子。 考虑一个从/foo/a 和 /foo/b 到 /bar/foo的拷贝,源路径包括:

    hdfs://master1:8020/foo/a 
    hdfs://master1:8020/foo/a/aa 
    hdfs://master1:8020/foo/a/ab 
    hdfs://master1:8020/foo/b 
    hdfs://master1:8020/foo/b/ba 
    hdfs://master1:8020/foo/b/ab

如果没设置-update或 -overwrite选项, 那么两个源都会映射到目标端的 /bar/foo/ab。 如果设置了这两个选项,每个源目录的内容都会和目标目录的 内容 做比较。distcp碰到这类冲突的情况会终止操作并退出。

默认情况下,/bar/foo/a 和 /bar/foo/b 目录都会被创建,所以并不会有冲突。

现在考虑一个使用-update合法的操作:
distcp -update hdfs://master1:8020/foo/a \ 
               hdfs://master1:8020/foo/b \ 
               hdfs://master2:8020/bar

其中源路径/大小:

    hdfs://master1:8020/foo/a 
    hdfs://master1:8020/foo/a/aa 32 
    hdfs://master1:8020/foo/a/ab 32 
    hdfs://master1:8020/foo/b 
    hdfs://master1:8020/foo/b/ba 64 
    hdfs://master1:8020/foo/b/bb 32

和目的路径/大小:

    hdfs://master2:8020/bar 
    hdfs://master2:8020/bar/aa 32 
    hdfs://master2:8020/bar/ba 32 
    hdfs://master2:8020/bar/bb 64

会产生:

    hdfs://master2:8020/bar 
    hdfs://master2:8020/bar/aa 32 
    hdfs://master2:8020/bar/ab 32 
    hdfs://master2:8020/bar/ba 64 
    hdfs://master2:8020/bar/bb 32

只有master2的aa文件没有被覆盖。如果指定了 -overwrite选项,所有文件都会被覆盖。

附录

Map数目

distcp会尝试着均分需要拷贝的内容,这样每个map拷贝差不多相等大小的内容。 但因为文件是最小的拷贝粒度,所以配置增加同时拷贝(如map)的数目不一定会增加实际同时拷贝的数目以及总吞吐量。

如果没使用-m选项,distcp会尝试在调度工作时指定map的数目 为 min (total_bytes / bytes.per.map, 20 * num_task_trackers), 其中bytes.per.map默认是256MB。

建议对于长时间运行或定期运行的作业,根据源和目标集群大小、拷贝数量大小以及带宽调整map的数目。

hadoop distcp -Ddistcp.bytes.per.map=1073741824 -Ddfs.client.socket-timeout=240000000 -Dipc.client.connect.timeout=40000000 -i -update  hdfs://master1:8020/foo/a hdfs://master1:8020/foo/b hdfs://master2:8020/bar/foo

不同HDFS版本间的拷贝

对于不同Hadoop版本间的拷贝,用户应该使用HftpFileSystem。 这是一个只读文件系统,所以distcp必须运行在目标端集群上(更确切的说是在能够写入目标集群的TaskTracker上)。 源的格式是 hftp://<dfs.http.address>/<path> (默认情况dfs.http.address是 <namenode>:50070)。

Map/Reduce和副效应

像前面提到的,map拷贝输入文件失败时,会带来一些副效应。

  • 除非使用了-i,任务产生的日志会被新的尝试替换掉。

  • 除非使用了-overwrite,文件被之前的map成功拷贝后当又一次执行拷贝时会被标记为 "被忽略"。

  • 如果map失败了mapred.map.max.attempts次,剩下的map任务会被终止(除非使用了-i)。

  • 如果mapred.speculative.execution被设置为 final和true,则拷贝的结果是未定义的。

感谢各位的阅读,以上就是“hadoop distcp是什么”的内容了,经过本文的学习后,相信大家对hadoop distcp是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

hadoop distcp是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

hadoop distcp是什么

这篇文章主要讲解了“hadoop distcp是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“hadoop distcp是什么”吧!概述distcp(分布式拷贝)是用于大规模集群内部和集
2023-06-03

HADOOP概念是什么

本篇内容主要讲解“HADOOP概念是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HADOOP概念是什么”吧!大数据:指无法在一定时间范围内用常规软件工具进行捕捉,管理和处理的数据集合,是需
2023-06-02

hadoop是什么语言

Hadoop是什么?Hadoop是一个开发和运行处理大规模数据的软件平台,是Appach的一个用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算.Hadoop框架中最核心设计就是:HDFS和MapReduc
2023-05-31

Hadoop的特点是什么

本篇内容介绍了“Hadoop的特点是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  Hadoop出现的原因:现在的我们,生活在数据大爆
2023-06-02

hadoop五大节点是什么

这篇文章主要讲解了“hadoop五大节点是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“hadoop五大节点是什么”吧!1.NameNode(管理节点) Namenode 管理着文
2023-06-02

Hadoop和Spark异同点是什么

这篇“Hadoop和Spark异同点是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Hadoop和Spark异同点是什么
2023-06-27

hadoop的读写流程是什么

Hadoop的读写流程主要分为两部分:HDFS的读写流程和MapReduce的读写流程。HDFS的读写流程:写入流程:当客户端需要向HDFS写入数据时,首先会将数据划分为块(通常为128MB)并进行复制,然后通过HDFS客户端将数据块传输给
hadoop的读写流程是什么
2024-03-04

Hadoop的容错机制是什么

Hadoop的容错机制主要包括以下几个方面:数据的冗余备份:Hadoop会将数据分片备份至多个数据节点上,确保数据的冗余性,一旦某个数据节点发生故障,系统可以从其他节点上获取备份数据。心跳检测与自动故障恢复:Hadoop的各个组件会定期发送
Hadoop的容错机制是什么
2024-03-11

hadoop集群的作用是什么

Hadoop集群是一个开源的分布式计算框架,用于存储和处理大规模数据集。其作用主要包括以下几个方面:存储大规模数据:Hadoop集群可以存储大规模的数据,将数据分散存储在不同的节点上,实现数据的分布式存储。处理大规模数据:Hadoop集群提
hadoop集群的作用是什么
2024-04-09

hadoop的数据结构是什么

Hadoop是一个开源的分布式存储和计算框架,其核心数据结构主要有以下几种:HDFS(Hadoop Distributed File System):Hadoop分布式文件系统,用于存储大规模数据集。HDFS采用主从架构,数据被划分为多个块
hadoop的数据结构是什么
2024-04-09

hadoop中hdfs优缺点是什么

这篇文章将为大家详细讲解有关hadoop中hdfs优缺点是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。// 下载FileSystem fs = FileSystem.get(new URI("hdf
2023-06-02

Hadoop中NameNode的作用是什么

Hadoop中的NameNode是HDFS(Hadoop分布式文件系统)的关键组件之一,它负责存储文件系统的命名空间(文件和目录结构)以及文件的元数据信息(如文件的大小、权限、所属用户等)。NameNode还负责管理数据块的复制和数据块与数
Hadoop中NameNode的作用是什么
2024-03-11

hadoop和hdfs的区别是什么

Hadoop是一个开源的分布式计算框架,可以实现对大规模数据的存储和处理,而HDFS(Hadoop Distributed File System)是Hadoop中的一部分,是用来存储数据的分布式文件系统。具体来说,Hadoop是一个包含
hadoop和hdfs的区别是什么
2024-03-14

hadoop和spark的区别是什么

这篇文章主要讲解了“hadoop和spark的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“hadoop和spark的区别是什么”吧!主要是从四个方面对Hadoop和spark进行
2023-06-02

Hadoop的生态系统是什么

这篇文章主要讲解了“Hadoop的生态系统是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hadoop的生态系统是什么”吧!hadoop生态系统,意思就是以hadoop为平台的各种应用框
2023-06-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录