hadoop的工作原理

hadoop是一種分佈式系統的平臺,通過它可以很輕鬆的搭建一個高效、高質量的分佈系統,而且它還有許多其它的相關子項目,也就是對它的功能的極大擴充,包括Zookeeper,Hive,Hbase等。

    MapReduce是hadoop的核心組件之一,hadoop要分佈式包括兩部分,一是分佈式文件系統hdfs,一部是分佈式計算框,就是mapreduce,缺一不可,也就是說,可以通過mapreduce很容易在hadoop平臺上進行分佈式的計算編程。

首先是hdfs,也就是hadoop的存儲系統,首先hdfs是掛載在集羣多個節點上,由各個集羣分攤而來的,如果想要訪問hdfs,可以直接使用client提供的命令,如果需要和本地文件一樣則需要首先掛載到hdfs上,hadoop的client提供這個功能,執行腳本safe_mount_vfs.sh即可在client上掛載vfs。當掛載完畢之後,可以像操作本地文件一樣操作hdfs上的文件了。當然,還存在網速和機房的問題。

然後看看hadoop的任務的核心,mapreduce,其實就是兩個階段,map和reduce階段。map階段會由hadoop平臺切分輸入數據,具體的切分規則可以自行制定或者編程實現,切分之後輸入將會是key-value的格式,這樣的格式會由標準輸入讀入到map程序中,各個map程序處理完之後會先將結果shuffle,也就是一個排序,排序之後按照reduce的分桶規則分配到各個reduce階段上歸併。對於一個單機而已,過程就像一個管道,如同map|sort|reduce,而對於總體而言,map之後的輸入由系統自動sort,減少了外排或者歸併排序的煩惱,直接得到分桶好的key和value進行操作,比單機省事多了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章