hadoopdistcp是什么

這篇文章主要講解了“hadoop distcp是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“hadoop distcp是什么”吧!

成都創(chuàng)新互聯(lián)專注于焉耆企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開(kāi)發(fā),商城開(kāi)發(fā)。焉耆網(wǎng)站建設(shè)公司,為焉耆等地區(qū)提供建站服務(wù)。全流程按需制作網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

概述

distcp(分布式拷貝)是用于大規(guī)模集群內(nèi)部和集群之間拷貝的工具。 它使用Map/Reduce實(shí)現(xiàn)文件分發(fā),錯(cuò)誤處理和恢復(fù),以及報(bào)告生成。 它把文件和目錄的列表作為map任務(wù)的輸入,每個(gè)任務(wù)會(huì)完成源列表中部分文件的拷貝。 由于使用了Map/Reduce方法,這個(gè)工具在語(yǔ)義和執(zhí)行上都會(huì)有特殊的地方。 這篇文檔會(huì)為常用distcp操作提供指南并闡述它的工作模型。

標(biāo)識(shí) 描述 備注
Preserve
  r: replication number
  b: block size
  u: user
  g: group
  p: permission
修改次數(shù)不會(huì)被保留。并且當(dāng)指定  忽略失敗 就像在 附錄中提到的,這個(gè)選項(xiàng)會(huì)比默認(rèn)情況提供關(guān)于拷貝的更精確的統(tǒng)計(jì), 同時(shí)它還將保留失敗拷貝操作的日志,這些日志信息可以用于調(diào)試。最后,如果一個(gè)map失敗了,但并沒(méi)完成所有分塊任務(wù)的嘗試,這不會(huì)導(dǎo)致整個(gè)作業(yè)的失敗。
記錄日志到 <logdir> DistCp為每個(gè)文件的每次嘗試拷貝操作都記錄日志,并把日志作為map的輸出。 如果一個(gè)map失敗了,當(dāng)重新執(zhí)行時(shí)這個(gè)日志不會(huì)被保留。
同時(shí)拷貝的最大數(shù)目 指定了拷貝數(shù)據(jù)時(shí)map的數(shù)目。請(qǐng)注意并不是map數(shù)越多吞吐量越大。
覆蓋目標(biāo) 如果一個(gè)map失敗并且沒(méi)有使用 如果源和目標(biāo)的大小不一樣則進(jìn)行覆蓋 像之前提到的,這不是"同步"操作。 執(zhí)行覆蓋的唯一標(biāo)準(zhǔn)是源文件和目標(biāo)文件大小是否相同;如果不同,則源文件替換目標(biāo)文件。 像 下面提到的,它也改變生成目標(biāo)路徑的語(yǔ)義, 用戶使用要小心。
使用<urilist_uri> 作為源文件列表 這等價(jià)于把所有文件名列在命令行中。 urilist_uri 列表應(yīng)該是完整合法的URI。
更新和覆蓋

這里給出一些 -update和 -overwrite的例子。 考慮一個(gè)從/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

如果沒(méi)設(shè)置-update或 -overwrite選項(xiàng), 那么兩個(gè)源都會(huì)映射到目標(biāo)端的 /bar/foo/ab。 如果設(shè)置了這兩個(gè)選項(xiàng),每個(gè)源目錄的內(nèi)容都會(huì)和目標(biāo)目錄的 內(nèi)容 做比較。distcp碰到這類(lèi)沖突的情況會(huì)終止操作并退出。

默認(rèn)情況下,/bar/foo/a 和 /bar/foo/b 目錄都會(huì)被創(chuàng)建,所以并不會(huì)有沖突。

現(xiàn)在考慮一個(gè)使用-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

會(huì)產(chǎn)生:

    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文件沒(méi)有被覆蓋。如果指定了 -overwrite選項(xiàng),所有文件都會(huì)被覆蓋。

附錄

Map數(shù)目

distcp會(huì)嘗試著均分需要拷貝的內(nèi)容,這樣每個(gè)map拷貝差不多相等大小的內(nèi)容。 但因?yàn)槲募亲钚〉目截惲6龋耘渲迷黾油瑫r(shí)拷貝(如map)的數(shù)目不一定會(huì)增加實(shí)際同時(shí)拷貝的數(shù)目以及總吞吐量。

如果沒(méi)使用-m選項(xiàng),distcp會(huì)嘗試在調(diào)度工作時(shí)指定map的數(shù)目 為 min (total_bytes / bytes.per.map, 20 * num_task_trackers), 其中bytes.per.map默認(rèn)是256MB。

建議對(duì)于長(zhǎng)時(shí)間運(yùn)行或定期運(yùn)行的作業(yè),根據(jù)源和目標(biāo)集群大小、拷貝數(shù)量大小以及帶寬調(diào)整map的數(shù)目。

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版本間的拷貝

對(duì)于不同Hadoop版本間的拷貝,用戶應(yīng)該使用HftpFileSystem。 這是一個(gè)只讀文件系統(tǒng),所以distcp必須運(yùn)行在目標(biāo)端集群上(更確切的說(shuō)是在能夠?qū)懭肽繕?biāo)集群的TaskTracker上)。 源的格式是 hftp://<dfs.http.address>/<path> (默認(rèn)情況dfs.http.address是 <namenode>:50070)。

Map/Reduce和副效應(yīng)

像前面提到的,map拷貝輸入文件失敗時(shí),會(huì)帶來(lái)一些副效應(yīng)。

  • 除非使用了-i,任務(wù)產(chǎn)生的日志會(huì)被新的嘗試替換掉。

  • 除非使用了-overwrite,文件被之前的map成功拷貝后當(dāng)又一次執(zhí)行拷貝時(shí)會(huì)被標(biāo)記為 "被忽略"。

  • 如果map失敗了mapred.map.max.attempts次,剩下的map任務(wù)會(huì)被終止(除非使用了-i)。

  • 如果mapred.speculative.execution被設(shè)置為 final和true,則拷貝的結(jié)果是未定義的。

感謝各位的閱讀,以上就是“hadoop distcp是什么”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)hadoop distcp是什么這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)站標(biāo)題:hadoopdistcp是什么
本文地址:http://muchs.cn/article42/jpshhc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)靜態(tài)網(wǎng)站、定制網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)