Hadoop 一般用在哪些業務場景?

具體點的,最好是公司正在使用的場景,以及使用Hadoop處理這種場景的原因和優缺點,問的有點多,大家耐心說說啊


其實我們要知道大數據的實質特性:針對增量中海量的結構化,非結構化,半結構數據,在這種情況下,如何快速反覆計算挖掘出高效益的市場數據??帶著這
個問題滲透到業務中去分析,就知道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 提出的開源版本。但是它的性能不是很好。

目前的有其他學者提出了大數據處理的系統Apache Spark,它號稱計算速度是hadoop的100倍

具體怎樣沒有研究過。。。


簡單說說Hadoop能幹什麼
需要從Hadoop生態4層架構說起:

底層:存儲層,文件系統HDFS,NoSQL Hbase

中間層:資源及數據管理層,YARN以及Sentry等

上層:MapReduce、Impala、Spark等計算引擎

頂層:基於MapReduce、Spark等計算引擎的高級封裝及工具,如Hive、Pig、Mahout


所以,hadoop可以作為分散式存儲框架存儲大規模數據,數據的價值越來越被企業重視,被稱為是21世紀的石油;

存儲了大規模的數據,我們要幹什麼呢,當然是分析數據中的價值,Hadoop+MR用於離線大數據的分析挖掘,比如:電商數據的分析挖掘、社交數據的分析挖掘,企業客戶關係的分析挖掘,最終的目標就是BI了,提高企業運作效率,實現精準營銷,各個垂直領域的推薦系統,發現潛在客戶等等。在這個數據化時代,每件事都會留下電子檔案,分析挖掘日積月累的數據檔案,我們就能理解這個世界和我們自己更多。


MR編寫代碼複雜度高,由於磁碟IO,分析結果周期長,現實世界中我們對數據分析的實時性要求越來越高,基於內存計算的spark來了。Hadoop+spark正在替代Hadoop+MR成為大數據領域的明星,Cloudera正在積極推動Spark成為Hadoop的默認數據處理引擎。

更上層應用,如:機器學習、只是發現、預測分析等在都必須基於大規模的數據,沒有足夠的數據一切扯淡,數據量足夠大,就必須分散式存儲,依賴大規模的廉價PC構建hadoop集群。


Cloudera的首席科學家、Hadoop的創始人Doug Cutting所說:「我們在本世紀取得的大部分進展將來自於對所產生的數據的理解的增加。」


hadoop主要應用於數據量大的離線場景。特徵為:

1、數據量大。一般真正線上用Hadoop的,集群規模都在上百台到幾千台的機器。這種情況下,T級別的數據也是很小的。
Coursera上一門課了有句話覺得很不錯:Don"t use hadoop, your data isn"t that big

2、離線。Mapreduce框架下,很難處理實時計算,作業都以日誌分析這樣的線下作業為主。另外,集群中一般都會有大量作業等待被調度,保證資源充分利用。

3、數據塊大。由於HDFS設計的特點,Hadoop適合處理文件塊大的文件。大量的小文件使用Hadoop來處理效率會很低。

舉個例子,百度每天都會有用戶對側邊欄廣告進行點擊。這些點擊都會被記入日誌。然後在離線場景下,將大量的日誌使用Hadoop進行處理,分析用戶習慣等信息。


1)現在主要使用hadoop平台的mapred計算框架,作為ETL一部分。reduce端提供的排序/分組兩個特性,可以解決,計算指標過程中,去重與分組結果輸出的需求。
2)使用排序和分組時,應該擴展writable數據結構,靈活支持從輸入key中,指定個別field組合作為排序/分組的依據
3)使用場景,可以見http://www.csdn.net/article/2012-09-03/2809491-12-ways-companies-are-using-hadoop , http://www.csdn.net/article/2012-10-31/2811302


閱讀此文:高負載低延遲的動態演算法
http://www.jinjason.com/nosql_hadoops/
摘要:本文由Datasalt(一家專註於大數據的公司)的創始人Ivan de Prado和Pere Ferrera提供,文章通過BBVA信用卡支付的例子詳解了雲計算中的低延時方案。在該解決方案中,Datasalt通過使用AWS、Hadoop和Voldemort搭載的架構,每月僅需花費幾千美元就可以實現了低延時的雲服務要求。這篇文章由Datasalt的創始人Ivan de Prado和Pere Ferrera提供,Datasalt是一家專註於大數據的公司,推出了Pangool和Spoilt SQL Big Data等開源項目。在這篇文章中,通過BBVA信用卡支付的例子詳解了雲計算中的低延時方案。


出報表


主要還是統計吧,因為HADOOP的框架本身是更加適合完全無狀態的業務,比如對於文本文件每次傳到MAP函數中都是其中的一行,你也不知道文本什麼時候結束。

個人寫下來感覺可能最適合的還是統計類的應用,因為此類應用只需要疊加就可以了,更加適合做分散式。

其他業務不是不可以,但是在HADOOP的框架中都需要一些特殊處理。所以也有了很多基於HADOOP或者HDFS進行其他業務的開源軟體/項目


大數據了 比如雙十一的淘寶就是採用了該架構


推薦閱讀:

TAG:分散式計算 | 分散式存儲 | Hadoop | 分散式系統 | 分散式 | 分散式伺服器 | 大數據 |