Hadoop深入研究一

Distcp

  • 用于在兩個多個集群之間進行數(shù)據(jù)的遷移,復(fù)制文件

hadoop distcp hdfs://namenode:9000/user hdfs://namenode:9000/hadoop

1.看了distcp的執(zhí)行結(jié)果你會發(fā)現(xiàn),他其實是個mapreduce任務(wù),但是只有map沒有reduce

  • distcp會把文件平均分給map去執(zhí)行,每個文件一個maop 任務(wù),首先會按照文件大小分配,如果大小小于256m糾紛給一個map任務(wù),但是如果大于256m就會平均分配給不同的map任務(wù),一般情況下每個節(jié)點的個數(shù)不會超過20map任務(wù)
  • 你可以通過-m手動設(shè)置,如果為了hdfs的均衡,最好是將maps設(shè)的多一些,將block分攤開來。
  • 如果兩個集群間的版本不一致,那么使用hdfs可能就會產(chǎn)生錯誤,因為rpc系統(tǒng)不兼容
    1.推薦用hftp的替代協(xié)議webhdfs,源地址和目標地址都可以使用webhdfs,可以完全兼容

hadoop distcp webhdfs://namenode:50070/user/hadoop/input webhdfs://namenode:50070/user/hadoop/input1

Archive

  • hdfs并不擅長存儲小文件,因為每個文件最少一個block,每個block的元數(shù)據(jù)都會在namenode節(jié)點占用內(nèi)存,如果存在這樣大量的小文件,它們會吃掉namenode節(jié)點的大量內(nèi)存
  • hadoop Archives可以使用archive工具創(chuàng)建,同上講的distcp一樣,archive也是一個mapreduce任務(wù)

hadoop archive -archiveName input.har -p /user/hadoop/ input har
archiveName指定archive的文件名,-p代表父目錄,可以把多個目錄文件放到archive里,我們來看下創(chuàng)建好的har文件,input輸入路徑,har輸出路徑
in(/user/hadoop/input/),out(/user/hadoop/har)

  • 如果用har uri去訪問的話,這些文件就會隱藏起來,只顯示原文件

hadoop fs -lsr har:///user/hadoop/har/input.har
這個是他的訪問模式

限制

  • 創(chuàng)建archive文件要消耗和原文件一樣多的硬盤空間
  • archive文件不支持壓縮,盡管archive文件看起來象已經(jīng)被壓縮過了。
  • archive文件一旦創(chuàng)建就無法改變,這就意味這你要改一些東西的話,你需要創(chuàng)新創(chuàng)建archive文件
  • 雖然解決了namenode的內(nèi)存空間問題,但是在執(zhí)行mapreduce時,會把多個小文件交給同一個mapreduce去split,這樣明顯是低效的解決namenode內(nèi)存的問題可以參照之前的文章中的hdfs federation。(當達到一定閥值時才會去split)

壓縮

  • 文件壓縮有兩個好處
    1.減少存儲文件所暫用的空間
    2.可以提高數(shù)據(jù)的傳輸速度
  • 壓縮算法是"空間"和"時間"的轉(zhuǎn)換
  • 壓縮格式是否可以被分割,也就是說是否可以支持隨機讀(不用從頭掃描,浪費時間)

壓縮格式是否可以被分割是非常關(guān)鍵的(考慮到他的并發(fā)性)

例子

舉個例子,一個未壓縮的文件有1GB大小,hdfs默認的block大小是64MB,那么這個文件就會被分為16個block作為mapreduce的輸入,每一個單獨使用一個map任務(wù)。如果這個文件是已經(jīng)使用gzip壓縮的呢,如果分成16個塊,每個塊做成一個輸入,顯然是不合適的,因為gzip壓縮流的隨即讀是不可能的。實際上,當mapreduce處理壓縮格式的文件的時候它會認識到這是一個gzip的壓縮文件,而gzip又不支持隨即讀,它就會把16個塊分給一個map去處理,這里就會有很多非本地處理的map任務(wù),整個過程耗費的時間就會相當長。

  • 支持分割的格式: bzip2,lzo
    1.lzo解壓縮的速度值最快的,但是他的壓縮率是一般的
    2.gzip壓縮率是比較高的,各種都比較適中
    3.bzip2的壓縮率是最高的,適用于對壓縮速度要求不會是很高
    但是對壓縮率要求比較高的時候
    4.gzip適用于日志輸入格式
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 首先,我們在使用前先看看HDFS是什麼?這將有助于我們是以后的運維使用和故障排除思路的獲得。 HDFS采用mast...
    W_Bousquet閱讀 4,471評論 0 2
  • 之前的有點忘記了,這里在云筆記拿出來再玩玩.看不懂的可以留言 大家可以嘗試下Ambari來配置Hadoop的相關(guān)環(huán)...
    HT_Jonson閱讀 3,207評論 0 50
  • 1 目的將hadoop 2.7.1 安裝到 166、167、168 三臺機器上2 提供環(huán)境練習環(huán)境192.168....
    灼灼2015閱讀 3,639評論 4 40
  • 目的這篇教程從用戶的角度出發(fā),全面地介紹了Hadoop Map/Reduce框架的各個方面。先決條件請先確認Had...
    SeanC52111閱讀 1,839評論 0 1
  • 摘自:http://staticor.io/post/hadoop/2016-01-23hadoop-defini...
    wangliang938閱讀 692評論 0 1

友情鏈接更多精彩內(nèi)容