hadoop 集群 分布式拷貝 distcp

image.png

數(shù)據(jù)遷移 往往 是數(shù)據(jù)運(yùn)維經(jīng)常會(huì)用到的事情粥烁,就像 pc重裝電腦,把C盤的文件轉(zhuǎn)移到E盤一樣蝇棉,不過 數(shù)據(jù)遷移 在生產(chǎn)環(huán)境當(dāng)中往往是 跨網(wǎng)絡(luò) 跨集群 傳輸 文件讨阻,要保證文件不丟失 不亂碼 不重復(fù) ,文件的完整統(tǒng)一篡殷。
【順便需要解決 一下 pid 的存儲(chǔ)路徑钝吮,不然集群長(zhǎng)時(shí)間 久了 突然停止,會(huì)停止不下來板辽,報(bào) 找不到 NameNode 和DataNode】
http://blog.csdn.net/gyqjn/article/details/50805472

hadoop 集群數(shù)據(jù) 的特點(diǎn)是 量大 分塊 有副本 奇瘦, 集群的穩(wěn)定性 和配置高可用 機(jī)器 硬件性能 和網(wǎng)絡(luò)帶寬 stream 流讀取等等都是考驗(yàn)。

hadoop 如果使用 get 把文件加載到本地劲弦,再通過scp 去傳耳标,不光步驟繁瑣 ,小文件量大邑跪,在加上編寫腳本容易出錯(cuò) 不易調(diào)試 次坡,集群不在同一內(nèi)網(wǎng),傳輸 速率和穩(wěn)定性都無法保證画畅。hadoop自然有一個(gè)自己的工具 :Distcp .砸琅。假如 沒有Distcp 想想 管理大數(shù)據(jù) 簡(jiǎn)直會(huì)是一個(gè)噩夢(mèng)。
Distcp 的強(qiáng)大在于 簡(jiǎn)潔 可配置 傳輸穩(wěn)定 原生支持 錯(cuò)誤可以排查 等等轴踱,可以說是數(shù)據(jù)算法 及數(shù)據(jù)運(yùn)維的福音症脂。
當(dāng)然 Distcp 很強(qiáng)大 ,也很傲嬌,稍微不留意就會(huì)出現(xiàn) 小脾氣和公主病摊腋,在倒騰 Distcp 的兩周內(nèi)沸版,我也算吃了不少苦頭嘁傀,各種報(bào)錯(cuò)兴蒸,簡(jiǎn)直不能忍,差一點(diǎn)就要放棄了细办,還是送我一片光陰 橙凳。嘗到小甜頭后,又繼續(xù)報(bào)錯(cuò) 被虐的體無完膚笑撞,在最后的堅(jiān)持下岛啸,提著頭 抱著再解決不了干脆就離職跑路吧。但還是 強(qiáng)給自己信心茴肥。告訴自己沒有踏不過坎都是紙老虎坚踩。

image.png

最終 克服重重困難 找到了 最終答案,回頭一看瓤狐,又氣又惱瞬铸,按道理是簡(jiǎn)單,可是找到寶藏 藏寶圖不止一張础锐,也只有不斷的嘗試后嗓节,才確認(rèn)了最后的結(jié)果的正確性。

好了皆警,言歸正傳拦宣,Distcp 支持 三種 協(xié)議 hdfs hftp webhdfs ,支持集群內(nèi)部 拷貝信姓,集群間拷貝 鸵隧,跨版本集群間拷貝。源和目標(biāo)可以是目錄 或者是文件 意推,支持 overwrite 和update豆瘫,Distcp 的執(zhí)行 其實(shí)是mapreduce。
在使用 Distcp 左痢,集群內(nèi)部 src 源文件路徑和dist 目標(biāo)路徑 都可以使用 hdfs 協(xié)議靡羡,例如
hadoop Distcp hdfs://master:9000/linkge/1020log.txt hdfs://master:9000/linkactive/1020log.txt

在集群間 數(shù)據(jù)遷移 ,單個(gè) 文件 俊性,需要在目標(biāo)集群上操作略步,src源需要使用hftp 協(xié)議 默認(rèn)端口 50070 ,dist 目標(biāo)使用hdfs 協(xié)議 默認(rèn)端口 9000 或者8020定页,
例如
hadoop distcp hftp://52.83.67.242:50070/linkpage/201707/01/01/biz.log.22.snappy hdfs://linkhadoop-master:9000/linkpage/201707/01/01/biz.log.22.snappy

單個(gè)目錄也可以使用 此方式
hadoop distcp hftp://52.80.67.242:50070/linkpage/201707/01 hdfs://linkhadoop-master:9000/linkpage/201707/01

不過 對(duì)于擁有多個(gè)大文件的單個(gè)目錄來說趟薄,使用hftp 協(xié)議傳輸 會(huì)報(bào)一些錯(cuò)誤 ,好像是hadoop 2.x 自帶的老bug
這些錯(cuò)誤包括socket read time out 和 文件 讀寫和文件大小不統(tǒng)一
`
Caused by: org.apache.hadoop.tools.mapred.RetriableFileCopyCommand$CopyReadException: java.net.SocketTimeoutException: Read timed out

Caused by: java.net.SocketTimeoutException: Read timed out

Caused by: org.apache.hadoop.tools.mapred.RetriableFileCopyCommand$CopyReadException: java.io.IOException: Got EOF but currentPos = 1900544 < filelength = 3461794346
at org.apache.hadoop.tools.mapred.RetriableFileCopyCommand.readBytes(RetriableFileCopyCommand.java:290)
at org.apache.hadoop.tools.mapred.RetriableFileCopyCommand.copyBytes(RetriableFileCopyCommand.java:258)
at org.apache.hadoop.tools.mapred.RetriableFileCopyCommand.copyToFile(RetriableFileCopyCommand.java:183)
at org.apache.hadoop.tools.mapred.RetriableFileCopyCommand.doCopy(RetriableFileCopyCommand.java:123)
at org.apache.hadoop.tools.mapred.RetriableFileCopyCommand.doExecute(RetriableFileCopyCommand.java:99)
at org.apache.hadoop.tools.util.RetriableCommand.execute(RetriableCommand.java:87)
`

這些錯(cuò)其實(shí)并不能說明是src 集群 文件是有問題的典徊,所以 經(jīng)過多次 嘗試 仍然無法解決杭煎,多個(gè)文件傳輸 仍有 70%的文件傳輸失敗恩够。
這個(gè)問題 最終在 Google一個(gè)非常難查到的網(wǎng)頁找到了微弱的聲音,當(dāng)看到頁面 有一個(gè) solved 羡铲,真是百感交集蜂桶。
https://community.cloudera.com/t5/Storage-Random-Access-HDFS/Handling-Distcp-of-large-files-between-2-clusters/td-p/42470
有人 跟帖告訴大家使用 webhdfs 協(xié)議可以幾乎完美的解決這個(gè)問題,數(shù)據(jù)總算是可以愉快的傳輸了也切。

例如
hadoop distcp webhdfs://52.82.67.242:50070/linkpage/201708 hdfs://linkhadoop-master:9000/linkpage/201708

剛才說的 這些 是在使用的Distcp 終極答案扑媚。其中在使用Distcp 中途還遇到了 其他的攔路鬼,
比如報(bào) 在 src 集群 的DataNode無法找到相應(yīng)的文件雷恃,
這個(gè) 一般來說src 集群本身的問題疆股, 比如說 集群 中各個(gè)節(jié)點(diǎn)有沒有設(shè)置 主機(jī)名,每個(gè)DataNode 節(jié)點(diǎn) 是否 在/etc/hosts 配置了 所有src DataNode NameNode的 節(jié)點(diǎn) 的私有ip 與主機(jī)名及dist 目標(biāo)集群 的DataNode NameNode 節(jié)點(diǎn)的公有ip 和主機(jī)名倒槐,而且 dist 目標(biāo)集群也要 做類似配置旬痹。要配置 ssh免登陸,NameNode ssh免登陸到DataNode上讨越,配置一下 hadoop 各個(gè)節(jié)點(diǎn) 守護(hù)進(jìn)程 的pid 目錄两残,配置 hadoop 用戶 下的 ~/.bashrc 文件中的環(huán)境變量,重啟集群試試

還有其他的 socket 連接 時(shí)間超時(shí)谎痢,懷疑可能是 網(wǎng)絡(luò)帶寬磕昼,還有讀大文件的異常,很有可能是 內(nèi)存小 硬盤性能問題等等节猿。如果可以做配置更改也是很不錯(cuò)的票从。

另外 我們要有能力定位問題 ,查找問題 滨嘱,搜索答案 峰鄙,解決問題。驗(yàn)證問題 驗(yàn)證解決方案太雨。

比如我們?cè)谑褂?Distcp 傳輸?shù)臅r(shí)候時(shí)吟榴,先小數(shù)據(jù)集 驗(yàn)證,
比如定位到一個(gè)文件 囊扳,多次傳輸 吩翻,觀察 傳輸?shù)姆€(wěn)定性,和傳輸后的文件大小和行數(shù)锥咸,
再 單目錄 傳輸狭瞎,觀察 目錄文件的數(shù)量是否一致,文件的大小是否一致搏予,量多的話熊锭,選擇抽查 部分文件 查看行數(shù)是否一致。也可以通過 head tail命令查看 前后十行文件內(nèi)容是否一致
源集群 抽查 部分文件行數(shù)


image.png

目標(biāo)集群抽查相同的部分文件行數(shù)

image.png

通過抽查驗(yàn)證,發(fā)現(xiàn) 完全一致碗殷,所以可以應(yīng)用到真實(shí)的生產(chǎn)環(huán)境實(shí)施了精绎。
我們通過嘗試 從亞馬遜 AWS EC2的hadoop 集群到 阿里云的 linux 集群,傳輸 一天日志 壓縮后80G锌妻,使用Distcp 耗時(shí) 20分鐘代乃,
然后我們生產(chǎn)環(huán)境中單月傳輸,估算大概需要7小時(shí)到-10小時(shí)从祝,襟己,所以需要轉(zhuǎn)后臺(tái)進(jìn)程 執(zhí)行 add &&&&
hadoop distcp webhdfs://52.82.67.242:50070/linkpage/201708 hdfs://linkhadoop-master:9000/linkpage/201708 &
本來還想為阿里云的DataNode 節(jié)點(diǎn)增加寬帶 帶寬,想加快速度牍陌,但是在阿里云的控制臺(tái) 監(jiān)控 竟然公網(wǎng)的使用時(shí)400kb,太詭異员咽,真不曉得這數(shù)據(jù)是如何如此快速傳輸過來的毒涧。
20分鐘 傳一天 80Gb,按道理來說還是可以的贝室,索性就放棄了增加寬帶契讲。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市滑频,隨后出現(xiàn)的幾起案子捡偏,更是在濱河造成了極大的恐慌,老刑警劉巖峡迷,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件银伟,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡绘搞,警方通過查閱死者的電腦和手機(jī)彤避,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來夯辖,“玉大人琉预,你說我怎么就攤上這事≥锕樱” “怎么了圆米?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)啄栓。 經(jīng)常有香客問我娄帖,道長(zhǎng),這世上最難降的妖魔是什么谴供? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任块茁,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘数焊。我一直安慰自己永淌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布佩耳。 她就那樣靜靜地躺著遂蛀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪干厚。 梳的紋絲不亂的頭發(fā)上李滴,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音蛮瞄,去河邊找鬼所坯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛挂捅,可吹牛的內(nèi)容都是我干的芹助。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼闲先,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼状土!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起伺糠,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤蒙谓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后训桶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體累驮,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年渊迁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了慰照。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡琉朽,死狀恐怖毒租,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情箱叁,我是刑警寧澤墅垮,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站耕漱,受9級(jí)特大地震影響算色,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜螟够,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一灾梦、第九天 我趴在偏房一處隱蔽的房頂上張望峡钓。 院中可真熱鬧,春花似錦若河、人聲如沸能岩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拉鹃。三九已至,卻和暖如春鲫忍,著一層夾襖步出監(jiān)牢的瞬間膏燕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來泰國打工悟民, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留坝辫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓逾雄,卻偏偏與公主長(zhǎng)得像阀溶,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鸦泳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容