揭陽(yáng)建設(shè)網(wǎng)站北京網(wǎng)站建設(shè)運(yùn)營(yíng)
HDFS中數(shù)據(jù)遷移的使用場(chǎng)景和考量因素
- 數(shù)據(jù)遷移使用場(chǎng)景
- 數(shù)據(jù)遷移要素考量
- HDFS分布式拷貝工具-DistCp
- distcp的優(yōu)勢(shì)性能
- 命令
數(shù)據(jù)遷移使用場(chǎng)景
- 冷熱集群數(shù)據(jù)同步、分類存儲(chǔ)
- 集群數(shù)據(jù)整體搬遷
- 當(dāng)公司業(yè)務(wù)迅速的發(fā)展,導(dǎo)致的當(dāng)前的服務(wù)器數(shù)量資源出現(xiàn)臨時(shí)緊張的時(shí)候,為了更高效的利用資源,會(huì)將A機(jī)房數(shù)據(jù)整體遷移到B機(jī)房的,原因可能是B機(jī)房機(jī)器多,而且B機(jī)房本身開銷較A機(jī)房低些等
- 數(shù)據(jù)的準(zhǔn)實(shí)時(shí)同步
- 數(shù)據(jù)準(zhǔn)實(shí)時(shí)同步的media在于數(shù)據(jù)的雙倍份可用,比如某天A集群突然宣告不允許再使用了,此時(shí)可以將線上使用集群直接切向B的同步集群,因?yàn)锽集群實(shí)時(shí)同步A集群數(shù)據(jù),擁有完全一致的真實(shí)數(shù)據(jù)和元數(shù)據(jù)信息,所以對(duì)于業(yè)務(wù)方使用而言是不會(huì)收到任何影響的。
數(shù)據(jù)遷移要素考量
- Bandwidth-帶寬
- 帶寬用的多了,會(huì)影響到線上業(yè)務(wù)的任務(wù)運(yùn)行,帶寬用的少了又會(huì)導(dǎo)致數(shù)據(jù)同步滿的問(wèn)題。
- performance-性能
- 是采用簡(jiǎn)單的單機(jī)程序?還是多線程的性能更佳的分布式程序?
- data-increment-增量同步
- 當(dāng)TB,PB級(jí)別的數(shù)據(jù)需要同步的時(shí)候,如果每次以全量的方式去同步數(shù)據(jù),結(jié)果一定是非常糟糕。如果僅針對(duì)變化的增量數(shù)據(jù)進(jìn)行同步將會(huì)是不錯(cuò)的選擇。可以陪著HDFS快照等技術(shù)實(shí)現(xiàn)增量數(shù)據(jù)同步。
- syncable-數(shù)據(jù)遷移的同步性
- 數(shù)據(jù)遷移的過(guò)程中需要保證周期內(nèi)數(shù)據(jù)是一定能夠同步完的,不能差距太大。比如A集群7天內(nèi)的增量數(shù)據(jù),我只要花半天就可以完全同步到B集群,然后我有可以等到下周再次進(jìn)行同步,最可怕的事情在于A集群的7天內(nèi)的數(shù)據(jù),我的程序花了7天還同步不完,然后下一個(gè)周期又來(lái)了,這樣就無(wú)法做到準(zhǔn)實(shí)時(shí)的一致性,其實(shí)7天還是一個(gè)比較大的時(shí)間,最好是能達(dá)到按天同步。
HDFS分布式拷貝工具-DistCp
- DistCp是Hadoop中的一種工具,在hadoop-tools工程下,作為獨(dú)立子工程存在。
- 定位用于數(shù)據(jù)遷移,定期在集群之間和集群內(nèi)部備份數(shù)據(jù)
- 在備份過(guò)程中,每次運(yùn)行distcp都成為一個(gè)備份周期。盡管性能相對(duì)較慢,但他的普及程度已經(jīng)越來(lái)越高
- distcp底層使用MapReduce在集群之間或并行在同一集群內(nèi)復(fù)制文件。執(zhí)行復(fù)制的MapReduce只有mapper階段
distcp的優(yōu)勢(shì)性能
- 帶寬限流
- distcp可以通過(guò)命令參數(shù)bandwidth來(lái)為程序進(jìn)行帶寬限流
- 增量數(shù)據(jù)同步
- 在distcp中可以通過(guò)updata,append和diff這三個(gè)參數(shù)實(shí)現(xiàn)增量同步
- updata 只拷貝不存在的文件或者目錄
- append 最佳目標(biāo)路徑下已存在的文件
- diff 通過(guò)快照的diff對(duì)比信息來(lái)同步源端路徑與目標(biāo)路徑
updata解決了新增文件、目錄的同步。append解決已存在的增量更新同步。diff解決刪除或重命名類型文件的同步
- 高效的性能:分布式特性
- distcp底層使用MapReduce執(zhí)行數(shù)據(jù)同步,MapReduce本身是一類分布式程序
命令
- 其中source_path,target_path需要帶上地址前綴以區(qū)分不同的集群
hadoop distcp hdfs://src_cluster:8020/user/data hdfs://dest_cluster:8020/user/data_backup
這個(gè)命令告訴distcp工具將hdfs://src_cluster:8020/user/data目錄下的數(shù)據(jù)復(fù)制到hdfs://dest_cluster:8020/user/data_backup目錄下。