第一章:Hadoop簡介

簡介

Hadoop是java開發的快速處理海量非結構化數據的框架。他的前身是Nutch----一個開源的web搜索引擎。Doug Cutting(hadoop之父)團隊將Nutch中負責分佈式計算的模塊剝離了出來,起名爲Hadoop(DC兒子的玩具名稱-_-)。
從2006年面世以來,Hadoop發展迅猛,生態圈也日益擴大。從最初僅有的HDFS和MapReduce兩個組件,發展成爲如今包含60多個子項目的龐大生態。覆蓋了從數據存儲、執行引擎數據訪問框架等各個層面。

爲什麼我們要使用Hadoop

hadoop有以下幾個核心理念

  • 分而治之
  • 並行計算
  • 計算向數據移動
  • 數據本地化讀取

我理解下來主要突出了兩點:1)並行計算;2)數據本地化
並行計算很好理解:一泳池的水,一根管道放水,放完需要2個小時;加一根同樣的管道,放完需要1小時(忽略邊際量)。所以理論上同樣的數據,併發數越高,處理越快。當然,實際應用的時候沒那麼簡單,隨便想想就會有諸如數據切分問題、計算結果同步彙總問題等。Hadoop針對於這問題都給出和合適的解決方案;
數據本地化也是Hadoop的一大亮點:首先要明確一個觀點-----在cpu、gps和存儲高速發展的今天,真正的性能瓶頸在於IO,包括網絡IO和文件IO。一般15000轉的機械硬盤讀取單個大文件的讀取速度在200~400 M/s,網絡io就更慢了。在處理以TB、PB爲單位的文件時,io就會成爲瓶頸。這也是hdfs數據優先本地節點讀寫的原因。

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