1. 程式人生 > >用通俗易懂的話說下hadoop是什麼,能做什麼

用通俗易懂的話說下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是什麼,什麼

hadoop是什麼?(1)Hadoop是一個開源的框架,可編寫和執行分散式應用處理大規模資料,是專為離線和大規模資料分析而設計的,並不適合那種對幾個記錄隨機讀寫的線上事務處理模式。Hadoop=HDFS(檔案系統,資料儲存技術相關)+ Mapreduce(資料處理),Hado

【轉】通俗易懂的話說hadoop是什麼,什麼

轉自http://blog.csdn.net/houbin0912/article/details/72967178hadoop是什麼?(1)Hadoop是一個開源的框架,可編寫和執行分散式應用處理大規模資料,是專為離線和大規模資料分析而設計的,並不適合那種對幾個記錄隨機讀寫

什麼是Spring IOC、通俗易懂的舉例講講Spring IOC、面試被問爛的 Spring IOC

在平時面試過程中,大家被問到Spring框架時,都會被問到Spring IOC 和 AOP,讓你說說他們的原理、流程、舉例說明等,今天就用通俗易懂的方式給大家講講Spring IOC。   資料來源: 作者:莫那·魯道 連結:http://thinkinjava.cn &n

通俗地講,Netty 什麼?

作為一個學Java的,如果沒有研究過Netty,那麼你對Java語言的使用和理解僅僅停留在表面水平,會點SSH,寫幾個MVC,訪問資料庫和快取,這些只是初等Java程式設計師乾的事。如果你要進階,想了解Java伺服器的深層高階知識,Netty絕對是一個必須要過的門檻。 有了Netty,你可以實現

通俗易懂的大白話講解Map/Reduce原理

Hadoop簡介 Hadoop就是一個實現了Google雲端計算系統的開源系統,包括平行計算模型Map/Reduce,分散式檔案系統HDFS,以及分散式資料庫Hbase,同時Hadoop的相關專案也很豐富,包括ZooKeeper,Pig,Chukwa,Hive,Hbase,

通俗易懂:如何設計支撐百萬並發的數據庫架構?

ash 不用 簡單使用 讀取 check jpg 我們 con cloc 1、引言 相信看到這個標題,很多人的第一反應就是:對數據庫進行分庫分表啊!但是實際上,數據庫層面的分庫分表到底是用來幹什麽的,其不同的作用如何應對不同的場景,我覺得很多同學可能都沒搞清楚。 本篇文

多執行緒問題,三個執行緒輪流進行,每個執行緒進行n次操作,共執行n*n*3次操作。本程式碼三軍攻擊演示,通俗易懂

package com.yyj.zxy; public class SanJunFight { /** * 三隻部隊輪流上戰場,每隻部隊在戰場上每一輪只能進行n次攻擊; * 合計攻擊300次則停止攻擊; */ private static int coun

通俗易懂,什麼是.NET Core,.NET Core什麼

作者:依樂祝 原文地址:https://www.cnblogs.com/yilezhu/p/10880884.html 我們都知道.NET Core是一個可以用來構建現代、可伸縮和高效能的跨平臺軟體應用程式的通用開發框架。可用於為Windows、Linux和MacOS構建軟體應用程式。與其他軟體框架不同,

nodejs把目錄所有用px單位的css文件轉化為rem單位的css文件

file tmp 同一行 有用 row 星期 項目 nodejs 改變 20171105 1211/星期日 公司為了更好適配手機端,以前用px做單位的css文件,全部需要轉化為用rem做單位,目前是1rem=37.5px;開發新項目時,還是用習慣的px寫樣式代碼,完成UI稿

Gulp教程之:Gulp什麽,前端裝逼為何要

基本上 什麽 質量 ctrl+ article 方法 靜態 情況下 了解 我們先說說 平時web開發遇到的一些場景 和 苦惱無奈的情況:JavaScript和CSS的版本問題我們都知道 JavaScript和CSS屬於靜態文件,如果地址不變,瀏覽器會緩存這些文件,那就意味著

通俗易懂的機器學習名詞解釋

  train? valid? or test? 機器學習最明顯的一個特點是需要大量的資料。特別對監督學習來說,就是需要大量的帶標籤資料(labeled data)。 很多入門的朋友很快就會遇見模型訓練和測試這兩個階段,進而也就瞭解到帶標籤資料是要被劃分成兩個部分的:訓練集(t

Gulp教程之:Gulp什麼,前端裝逼為何要

我們先說說 平時web開發遇到的一些場景 和 苦惱無奈的情況: JavaScript和CSS的版本問題 我們都知道 JavaScript和CSS屬於靜態檔案,如果地址不變,瀏覽器會快取這些檔案,那就意味著當我們需要改JavaScript或者CSS檔案的時候,即使我們後端改了,那麼客戶端也是看

兩句解決sublime text在ubuntu輸入中文的問題

Welcome To My Blog sublime text 3 內沒法輸入中文,查閱資料後發現兩句話就能解決,轉自 解決sublime text在ubuntu下不能輸入中文的問題 # 將專案克隆到本地,比如HOME資料夾下 git clone https://github.c

Hadoop是什麼,什麼

1.hadoop是什麼? Hadoop是一個開源的框架,可編寫和執行分散式應用,處理大規模資料,是專為離線和大規模資料分析而設計的,並不適合那種對幾個記錄隨機讀寫的線上事務處理模式。Hadoop=HDFS(檔案系統,資料儲存技術相關)+ Mapreduce(資料處理),Hadoop的資料來

圖片通俗易懂帶你理解數字簽名是什麼?

讀到一篇好文章。它用圖片通俗易懂地解釋了,"數字簽名"(digital signature)和"數字證書"(digital certificate)到底是什麼。 我對這些問題的理解,一直是模模糊糊的,很多細節搞不清楚。讀完這篇文章後,發現思路一下子就理清了。為了加深記憶,我把文字和圖片都翻

hadoophadoop為企業什麼?

hadoop是什麼? Hadoop是一個開源的框架,可編寫和執行分不是應用處理大規模資料,是專為離線和大規模資料分析而設計的,並不適合那種對幾個記錄隨機讀寫的線上事務處理模式。Hadoop=HDFS(檔案系統,資料儲存技術相關)+ Mapreduce(資料處理),Hadoop的資料來源可以是任何形式,在處理

如何理解Linux的動態庫概念,和靜態庫概念,通俗易懂的解釋如下:

動態庫和靜態庫都是一組函式集合,打包在一起供應用程式呼叫,區別是: 靜態庫名稱一般為xxx.a,在編譯時和應用程式連結在一起,這樣的應用程式佔用空間較大。 動態庫名稱一般為xxx.so,對於動態庫即可以在編譯時連結,也可以使用dlopen()/dlsy

通俗易懂的Redux瞭解

Redux真的讓我腦仁疼,感覺有點搞不定他,因為對我而言太抽象了。所以我用通俗易懂地方法去思考Redux,感覺能夠理解了。 本文要點: action 配置行為 store.dispatch(action) reducer 純函式 返回新的state createStore(reducer) stor

關於“鎖”的問題,專案比較大的情況直接隨便的加樂觀鎖,不想麻煩改資料庫,不想lock排隊等

    private static Dictionary<int, object> lockObj = new Dictionary<int, object>();         private object getObj(int bedId)  

Python爬蟲有什麼,網友紛紛給出自己的答案,爬蟲的還是很多的

爬蟲可以從網站某一個頁面(通常是首頁)開始,讀取網頁的內容,找到在網頁中的其它連結地址,然後通過這些連結地址尋找下一個網頁,這樣一直迴圈下去,直到把這個網站所有的網頁都抓取完為止。 難道爬蟲真的只是這樣麼? 小編特地詢問很多網友Python有什麼用,大家給出答案也是五花八門。 @冰藍