天天看點

用通俗易懂的話說下hadoop是什麼,能做什麼

hadoop是什麼?

(1)Hadoop是一個開源的架構,可編寫和運作分布式應用處理大規模資料,是專為離線和大規模資料分析而設計的,并不适合那種對幾個記錄随機讀寫的線上事務處理模式。Hadoop=HDFS(檔案系統,資料存儲技術相關)+ Mapreduce(資料處理),Hadoop的資料來源可以是任何形式,在處理半結構化和非結構化資料上與關系型資料庫相比有更好的性能,具有更靈活的處理能力,不管任何資料形式最終會轉化為key/value,key/value是基本資料單元。用函數式變成Mapreduce代替SQL,SQL是查詢語句,而Mapreduce則是使用腳本和代碼,而對于适用于關系型資料庫,習慣SQL的Hadoop有開源工具hive代替。

(2)Hadoop就是一個分布式計算的解決方案.

hadoop能做什麼?

 hadoop擅長日志分析,facebook就用Hive來進行日志分析,2009年時facebook就有非程式設計人員的30%的人使用HiveQL進行資料分析;淘寶搜尋中    的 自定義篩選也使用的Hive;利用Pig還可以做進階的資料處理,包括Twitter、LinkedIn 上用于發現您可能認識的人,可以實作類似Amazon.com的協同過濾的推薦效果。淘寶的商品推薦也是!在Yahoo!的40%的Hadoop作業是用pig運作的,包括垃圾郵件的識别和過濾,還有使用者特征模組化。(2012年8月25新更新,天貓的推薦系統是hive,少量嘗試mahout!)

     下面舉例說明:

      設想一下這樣的應用場景. 我有一個100M 的資料庫備份的sql 檔案.我現在想在不導入到資料庫的情況下直接用grep操作通過正則過濾出我想要的内容。例如:某個表中 含有相同關鍵字的記錄那麼有幾種方式,一種是直接用linux的指令 grep 還有一種就是通過程式設計來讀取檔案,然後對每行資料進行正則比對得到結果好了 現在是100M 的資料庫備份.上述兩種方法都可以輕松應對.

那麼如果是1G , 1T 甚至 1PB 的資料呢 ,上面2種方法還能行得通嗎? 答案是不能.畢竟單台伺服器的性能總有其上限.那麼對于這種 超大資料檔案怎麼得到我們想要的結果呢?

有種方法 就是分布式計算, 分布式計算的核心就在于 利用分布式算法 把運作在單台機器上的程式擴充到多台機器上并行運作.進而使資料處理能力成倍增加.但是這種分布式計算一般對程式設計人員要求很高,而且對伺服器也有要求.導緻了成本變得非常高.

Haddop 就是為了解決這個問題誕生的.Haddop 可以很輕易的把 很多linux的廉價pc 組成 分布式結點,然後程式設計人員也不需要知道分布式算法之類,隻需要根據mapreduce的規則定義好接口方法,剩下的就交給Haddop. 它會自動把相關的計算分布到各個結點上去,然後得出結果.

例如上述的例子 : Hadoop 要做的事 首先把 1PB的資料檔案導入到 HDFS中, 然後程式設計人員定義好 map和reduce, 也就是把檔案的行定義為key,每行的内容定義為value , 然後進行正則比對,比對成功則把結果 通過reduce聚合起來傳回.Hadoop 就會把這個程式分布到N 個結點去并行的操作.

那麼原本可能需要計算好幾天,在有了足夠多的結點之後就可以把時間縮小到幾小時之内.

這也就是所謂的 大資料 雲計算了.如果還是不懂的話再舉個簡單的例子

比如  1億個  1 相加 得出計算結果, 我們很輕易知道結果是 1億.但是計算機不知道.那麼單台計算機處理的方式做一個一億次的循環每次結果+1

那麼分布式的處理方式則變成 我用 1萬台 計算機,每個計算機隻需要計算 1萬個 1 相加 然後再有一台計算機把 1萬台計算機得到的結果再相加

進而得到最後的結果.

理論上講, 計算速度就提高了 1萬倍. 當然上面可能是一個不恰當的例子.但所謂分布式,大資料,雲計算 大抵也就是這麼回事了.

hadoop能為我司做什麼?

零資料基礎,零資料平台,一切起點都是0。

  • 日志處理
  • 使用者細分特征模組化
  • 個性化廣告推薦
  • 智能儀器推薦
  •    一切以增加企業的商業價值為核心目的、最終目的

怎麼用hadoop

  • hadoop的應用的在我司還屬于研發型項目,拟用日志的分析來走通一次流程,因為此階段目前來說還不需要資料挖掘的專業人員,在資料分析階段即可,而系統有資料庫工程師,Mapreduce有java開發工程師,而分析由我本人介入,而可視化暫時可由前端JS實作,本來我的調研方案,針對大資料的解決方案是hadoop+R的,但是對于R我們是完全不懂,在公司還沒有大量投入人員的情況下,隻有日志分析目前看來是最容易出成果的,也是可以通過較少人員能出一定成果的,是以選取了這個方向作為試點。

繼續閱讀