日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Distcp 分布式拷贝

發布時間:2025/3/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Distcp 分布式拷贝 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(1)discp原理

????DistCp(Distributed Copy)是用于大規模集群內部或者集群之間的高性能拷貝工具,和在linux上執行cp,scp實現效果是一致的,不同的是,cp是將本機的文件和目錄拷貝到本機的其它地方,scp則可以將A機器的文件或者目錄拷貝到B機器,而Distcp則可以實現的是A(hdfs)集群的數據拷貝到B(hdfs)集群,而分布式使得數據拷貝時,可以實現A級群的DN節點同時向B集群的DN節點發送數據,突破了單機拷貝的網卡速率限制,拷貝效率更高。

????同時Distcp它使用Map/Reduce任務實現文件分發,錯誤處理和恢復,以及報告生成。 它把文件和目錄的列表作為map任務的輸入,每個任務會完成源列表中部分文件的拷貝。(實際上Distcp只用到了map,沒用用到reduce)。


(2)使用場景

? ? 1:數據異地災備。

????2:機房下線,數據遷移。

? ? 3:數據準實時同步。


(3)discp優勢

? ? 1:支持帶寬限流,可以使用bandwidth參數對distcp的每個map任務限流,同時控制map并發數量即可控制整個拷貝任務的帶寬,防止拷貝任務將帶寬打滿,影響其它業務。


????2:支持overwrite(覆蓋寫),update(增量寫),delete(刪除寫)等多種源和目的校驗的拷貝方式,大量數據的拷貝必然要做到數據拷貝過程中的校驗,來保證源和目的數據的一致性。

????

(4)discp命令

  • 命令格式

hadoop?distcp?\ -Dmapred.jobtracker.maxtasks.per.job=1800000?\???#任務最大map數(數據分成多map任務) -Dmapred.job.max.map.running=4000?\??????????????#最大map并發 -Ddistcp.bandwidth=150000000?\???????????????????#帶寬 -Ddfs.replication=2?\????????????????????????????#復制因子,兩副本 -Ddistcp.skip.dir=$skipPath?\????????????????????#過濾的目錄(不拷貝的目錄) -Dmapred.map.max.attempts=9?\????????????????????#每個task最大嘗試次數 -Dmapred.fairscheduler.pool=distcp?\?????????????#指定任務運行的pool -pugp?\??????????????????????????????????????????#保留屬性(用戶,組,權限) -i?\?????????????????????????????????????????????#忽略失敗的task -skipcrccheck?\??????????????????????????????????#忽略CRC校驗(防止源,目標集群hdfs版本不一致導致任務失敗。) hdfs://clusterA:9000/AAA/data??\?????????????????#源地址 hdfs://clusterB:9000/BBB/data????????????????????#目標地址


(5)執行輸出

[work@hq?distcp]$?hadoop?distcp?\ -Dmapred.jobtracker.maxtasks.per.job=1800000?\ -Dmapred.job.max.map.running=4000?\ -Ddistcp.bandwidth=150000000?\ -Ddfs.replication=2?\ -Dmapred.map.max.attempts=9?\ -Dmapred.fairscheduler.pool=distcp?\ -pugp?-i?-skipcrccheck?\ hdfs://clusterA:9000/AAA/data?\ hdfs://clusterB:9000/BBB/data17/06/03?17:06:38?INFO?tools.DistCp:?srcPaths=[hdfs://clusterA:9000/AAA/data?] 17/06/03?17:06:38?INFO?tools.DistCp:?destPath=hdfs://clusterB:9000/BBB/data 17/06/03?17:06:39?INFO?tools.DistCp:?config?no?skip?dir 17/06/03?17:06:40?INFO?tools.DistCp:?sourcePathsCount=241 17/06/03?17:06:40?INFO?tools.DistCp:?filesToCopyCount=240 17/06/03?17:06:40?INFO?tools.DistCp:?bytesToCopyCount=0.0 17/06/03?17:06:40?INFO?tools.DistCp:?mapTasks:?1 17/06/03?17:06:40?INFO?corona.SessionDriver:?My?serverSocketPort?36822 17/06/03?17:06:40?INFO?corona.SessionDriver:?My?Address?10.160.115.122:36822 17/06/03?17:06:40?INFO?corona.SessionDriver:?Connecting?to?cluster?manager?at?jobtracker:8021 17/06/03?17:06:40?INFO?corona.SessionDriver:?HeartbeatInterval=15000 17/06/03?17:06:40?INFO?corona.SessionDriver:?Got?session?ID?job_201706031706_267270 17/06/03?17:06:40?INFO?tools.DistCp:?targetsize=268435456 17/06/03?17:06:40?INFO?tools.DistCp:?targetfiles=500 17/06/03?17:06:40?INFO?corona.SessionDriver:?Started?session?job_201706031706_267270 17/06/03?17:06:45?INFO?mapred.JobClient:??map?0%?reduce?0% 17/06/03?17:06:59?INFO?mapred.JobClient:??map?3%?reduce?0% 17/06/03?17:07:01?INFO?mapred.JobClient:??map?5%?reduce?0% 17/06/03?17:07:05?INFO?mapred.JobClient:??map?6%?reduce?0% ..... 17/06/03?17:11:15?INFO?mapred.JobClient:??map?97%?reduce?0% 17/06/03?17:11:17?INFO?mapred.JobClient:??map?100%?reduce?0% 17/06/03?17:11:25?INFO?corona.SessionDriver:?Stopping?session?driver



(6)主要參數

Hadoop 1版本


distcp [OPTIONS] <srcurl> * <desturl>

選項:

-p [rbugp] ? ? ? ? ? ? 狀態

???????????????????????r:復制數

???????????????????????b:塊大小

? ? ? ? ? ? ? ? ? ? ? ?u:用戶

???????????????????????g:組

???????????????????????p:權限

???????????????????????t:修改和訪問時間

???????????????????????-p單獨相當于-prbugpt

-i ? ? ? ? ? ? ? ? ? ? 忽略失敗

-basedir <basedir>?????從<srcurl>復制文件時,使用<basedir>作為基本目錄

-log <logdir> ? ? ? ? ?將日志寫入<logdir>

-m <num_maps> ? ? ?????最大并發副本數

-overwrite ? ? ? ? ? ? 覆蓋目的地

-update ? ? ? ? ? ? ?? 如果src大小與dst大小不同,則覆蓋

-skipcrccheck ? ? ?????不要使用CRC檢查來確定src是否是 不同于dest。

-copybychunk ? ? ? ? ? 剁碎和復制的文件

-f <urilist_uri> ? ? ? 將<urilist_uri>中的列表用作src列表

-filelimit <n> ? ? ? ? 將文件的總數限制為<= n

-filelimitpermap <n> ? 每個地圖要復制的最大文件數

-sizelimit <n> ? ? ? ? 將總大小限制為<= n個字節

-sizelimitpermap <n> ? 每個映射要復制的最大字節數

-delete ? ? ? ? ? ? ?? 刪除dst中存在的文件,但不在src中

-mapredSslConf <f>?????映射器任務的SSL配置文件名

-usefastcopy ? ? ? ? ? 使用FastCopy(僅適用于DFS)


注1:如果設置了-overwrite或-update,則每個源URI和目標URI保持同級一致。

例如:

hadoop distcp -p -update hdfs://A:9000//home/aa ?hdfs://B:9000//home/bb


支持的通用選項是

-conf <configuration file>指定應用程序配置文件

-D <property = value>給定屬性的使用值

-fs <local | namenode:port>指定一個namenode

-jt <local | jobtracker:port>指定jobtracker在corona上

-jtold <local | jobtracker:port>指定jobtracker在mapreduce上

-files <逗號分隔的文件列表>指定要復制到map reduce cluster的逗號分隔文件

-libjars <逗號分隔的jars列表> 指定要包含在類路徑中的逗號分隔的jar文件。

-archives <逗號分隔的歸檔列表> 指定要在計算機上取消歸檔的逗號分隔的歸檔。



Hadoop 2版本


用法:distcp OPTIONS [source_path ...] <target_path>

??????????????OPTIONS

?-append ? ? ? ? ? ? ? ?????重新使用目標文件中的現有數據并追加新的如果可能,給他們的數據

?-async ? ? ? ? ? ? ? ? ? ? 應該是distcp執行阻塞

?-atomic ? ? ? ? ? ? ? ?????提交所有更改或無

?-bandwidth <arg> ? ? ? ? ? 以MB為單位指定每個map的帶寬

?-delete ? ? ? ? ? ? ? ?????從目標中刪除,源文件丟失

?-diff <arg> ? ? ? ? ? ? ? ?使用snapshot diff報告來標識源和目標之間的差異

?-f <arg> ? ? ? ? ? ? ? ? ? 需要復制的文件列表

?-filelimit <arg> ? ? ?????(已棄用!)限制復制到<= n的文件數

?-i ? ? ? ? ? ? ? ? ?? ?????在復制期間忽略故障

?-log <arg> ? ? ? ? ? ? ? ? DFS上的distcp執行日志文件夾保存

?-m <arg> ? ? ? ? ? ? ? ? ? 要用于副本的最大并發map數

?-mapredSslConf <arg> ? ? ? 配置ssl配置文件,用于hftps://

?-overwrite ? ? ? ? ? ? ? ? 選擇無條件覆蓋目標文件,即使它們存在。

?-p <arg> ? ? ? ? ? ? ? ? ? 保留源文件狀態(rbugpcaxt)

? ? ? ? ? ? ? ? ? ? ? ? ? ? (復制,塊大小,用戶,組,權限,校驗和類型,ACL,XATTR,時間戳)

? ? ? ? ? ? ? ? ? ? ? ? ? ? 如果-p是指定為no <arg>,然后保留復制,塊大小,用戶,組,權限,校驗和類型和時間戳。

? ? ? ? ? ? ? ? ? ? ? ? ? ? 原始的* xattrs是源和目的地都保留路徑位于/.reserved/raw層次結構中(HDF只要)。原始* ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? xattrpreservation是獨立的-p標志。請參閱DistCp文檔更多細節。

?-sizelimit <arg> ? ? ?????(已棄用!)限制復制到<= n的文件數字節

?-skipcrccheck ? ? ? ? ? ?? 是否跳過源和源之間的CRC檢查目標路徑。

?-strategy <arg> ? ? ? ? ?? 復制策略使用。默認是分工基于文件大小

?-tmp <arg> ? ? ? ? ? ? ? ? 要用于原子的中間工作路徑承諾

?-update ? ? ? ? ? ? ? ?????更新目標,僅復制missingfiles或目錄


轉載于:https://blog.51cto.com/heqin/1959693

總結

以上是生活随笔為你收集整理的Distcp 分布式拷贝的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。