其實我們要知道大數據的實質特性:針對增量中海量的結構化,非結構化,半結構數據,在這種情況下,如何快速反復計算挖掘出高效益的市場數據?
帶著這個問題滲透到業務中去分析,就知道hadoop需要應用到什么業務場景了!!!如果關系型數據庫都能應付的工作還需要hadoop嗎?
比如
1.銀行的信用卡業務,當你正在刷卡完一筆消費的那一瞬間,假如在你當天消費基礎上再消費滿某個額度,你就可以免費獲得某種令你非常滿意的利益等等,你可能就會心動再去消費,這樣就可能提高銀行信用卡業務,那么這個消費額度是如何從海量的業務數據中以秒級的速度計算出該客戶的消費記錄,并及時反饋這個營銷信息到客戶手中呢?這時候關系型數據庫計算出這個額度或許就需要幾分鐘甚至更多時間,就需要hadoop了,這就是所謂的“秒級營銷”. 針對真正的海量數據,一般不主張多表關聯。
2. 在淘寶,當你瀏覽某個商品的時候,它會及時提示出你感興趣的同類商品的產品信息和實時銷售情況,這或許也需要用到hadoop.
3. 就是報表用到的年度報告或者年度環比數據報告的時候也會用到hadoop去計算.
4.搜索引擎分析的時候應該也會用到。一個網友說過,其實還是看big data能否帶來多大的效益!比如銀行在躺著都賺錢的情況下,big data不一定是銀行的項目. 況且hadoop是新興技術,銀行業對新技術還是相對保守的.
hadoop 主要用于大數據的并行計算 并行計算按計算特征分為:
數據密集型并行計算:數據量極大,但是計算相對簡單的并行處理
如:大規模Web信息搜索
計算密集型并行計算:數據量相對不是很大,但是計算較為復雜的并行計算
如:3-D建模與渲染,氣象預報,科學計算
數據密集與計算密集混合型的并行計算
如:3-D電影的渲染
hadoop比較擅長的是數據密集的并行計算。它主要是對不同的數據做相同的事情,最后再整合。
我知道以及曾經實驗過的hadoop的例子有
wordCount (相當于hadoop的HelloWorld的程序);
文檔倒排索引;
PageRank;
K-Means 算法;
這些程序都可以從網上找到相應的解決方案。
hadoop的是根據Google MapReduce 提出的開源版本。但是它的性能不是很好。
hadoop主要應用于數據量大的離線場景。特征為:
1、數據量大。一般真正線上用Hadoop的,集群規模都在上百臺到幾千臺的機器。這種情況下,T級別的數據也是很小的。Coursera上一門課了有句話覺得很不錯:Don’t use hadoop, your data isn’t that big
2、離線。Mapreduce框架下,很難處理實時計算,作業都以日志分析這樣的線下作業為主。另外,集群中一般都會有大量作業等待被調度,保證資源充分利用。
3、數據塊大。由于HDFS設計的特點,Hadoop適合處理文件塊大的文件。大量的小文件使用Hadoop來處理效率會很低。
舉個例子,百度每天都會有用戶對側邊欄廣告進行點擊。這些點擊都會被記入日志。然后在離線場景下,將大量的日志使用Hadoop進行處理,分析用戶習慣等信息。