hadoop使用場景


    • 大數據量存儲:分布式存儲
    • 日志處理: Hadoop擅長這個
    • 海量計算: 並行計算
    • ETL:數據抽取到oracle、mysql、DB2、mongdb及主流數據庫
    • 使用HBase做數據分析: 用擴展性應對大量的寫操作—Facebook構建了基於HBase的實時數據分析系統
    • 機器學習: 比如Apache Mahout項目
    • 搜索引擎:hadoop + lucene實現
    • 數據挖掘:目前比較流行的廣告推薦
    • 大量地從文件中順序讀。HDFS對順序讀進行了優化,代價是對於隨機的訪問負載較高。
    • 數據支持一次寫入,多次讀取。對於已經形成的數據的更新不支持。
    • 數據不進行本地緩存(文件很大,且順序讀沒有局部性)
    • 任何一台服務器都有可能失效,需要通過大量的數據復制使得性能不會受到大的影響。
    • 用戶細分特征建模
    • 個性化廣告推薦
    • 智能儀器推薦
    • 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我們是完全不懂,在公司還沒有大量投入人員的情況下,只有日志分析目前看來是最容易出成果的,也是可以通過較少人員能出一定成果的,所以選取了這個方向作為試點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM