新疆喜乐彩开奖公告查询:Hadoop應用案例分析:在Yahoo的應用

2019年05月24日 14:41:05 拜倫建站 89次

喜乐彩2019085 www.dfjjdv.com.cn   【IT168 案例】關于Hadoop技術的研究和應用,Yahoo!始終處于領先地位,它將Hadoop應用于自己的各種產品中,包括數據分析、內容優化、反垃圾郵件系統、廣告的優化選擇、大數據處理和ETL等;同樣,在用戶興趣預測、搜索排名、廣告定位等方面得到了充分的應用。

  在Yahoo!主頁個性化方面,實時服務系統通過Apache從數據庫中讀取user到interest的映射,并且每隔5分鐘生產環境中的Hadoop集群就會基于最新數據重新排列內容,每隔7分鐘則在頁面上更新內容。

  在郵箱方面,Yahoo!利用Hadoop集群根據垃圾郵件模式為郵件計分,并且每隔幾個小時就在集群上改進反垃圾郵件模型,集群系統每天還可以推動50億次的郵件投遞。

  目前Hadoop最大的生產應用是Yahoo!的Search Webmap應用,它運行在超過10 000臺機器的Linux系統集群里,Yahoo!的網頁搜索查詢使用的就是它產生的數據。Webmap的構建步驟如下:首先進行網頁的爬取,同時產生包含所有已知網頁和互聯網站點的數據庫,以及一個關于所有頁面及站點的海量數據組;然后將這些數據傳輸給Yahoo!搜索中心執行排序算法。在整個過程中,索引中頁面間的鏈接數量將會達到1TB,經過壓縮的數據產出量會達到300TB,運行一個MapReduce任務就需使用超過10 000的內核,而在生產環境中使用數據的存儲量超過5PB。

  Yahoo!在Hadoop中同時使用了Hive和Pig,在許多人看來,Hive和Pig大體上相似而且Pig Latin與SQL也十分相似。那么Yahoo!為什么要同時使用這些技術呢?主要是因為Yahoo!的研究人員在查看了它們的工作負載并分析了應用案例后認為不同的情況下需要使用不同的工具。

  先了解一下大規模數據的使用和處理背景。大規模的數據處理經常分為三個不同的任務:數據收集、數據準備和數據表示,這里并不打算介紹數據收集階段,因為Pig和Hive主要用于數據準備和數據表示階段。

  數據準備階段通常被認為是提取、轉換和加載(Extract Transform Load,ETL)數據的階段,或者認為這個階段是數據工廠。這里的數據工廠只是一個類比,在現實生活中的工廠接收原材料后會生產出客戶所需的產品,而數據工廠與之相似,它在接收原始數據后,可以輸出供客戶使用的數據集。這個階段需要裝載和清洗原始數據,并讓它遵守特定的數據模型,還要盡可能地讓它與其他數據源結合等。這一階段的客戶一般都是程序員、數據專家或研究者。

  數據表示階段一般指的都是數據倉庫,數據倉庫存儲了客戶所需要的產品,客戶會根據需要選取合適的產品。這一階段的客戶可能是系統的數據工程師、分析師或決策者。

  根據每個階段負載和用戶情況的不同,Yahoo!在不同的階段使用不同的工具。結合了諸如Oozie等工作流系統的Pig特別適合于數據工廠,而Hive則適合于數據倉庫。下面將分別介紹數據工廠和數據倉庫。

  Yahoo!的數據工廠存在三種不同的工作用途:流水線、迭代處理和科學研究。

  經典的數據流水線包括數據反饋、清洗和轉換。一個常見例子是Yahoo!的網絡服務器日志,這些日志需要進行清洗以去除不必要的信息,數據轉換則是要找到點擊之后所轉到的頁面。Pig 是分析大規模數據集的平臺,它建立在Hadoop之上并提供了良好的編程環境、優化條件和可擴展的性能。Pig Latin是關系型數據流語言,并且是Pig核心的一部分,基于以下的原因,Pig Latin相比于SQL而言,更適合構建數據流。首先,Pig Latin是面向過程的,并且Pig Latin允許流水線開發者自定義流水線中檢查點的位置;其次,Pig Latin允許開發者直接選擇特定的操作實現方式而不是依賴于優化器;最后,Pig Latin支持流水線的分支,并且Pig Latin允許流水線開發者在數據流水線的任何地方插入自己的代碼。Pig和諸如Oozie等的工作流工具一起使用來創建流水線,一天可以運行數以萬計的Pig作業。

  迭代處理也是需要Pig的,在這種情況下通常需要維護一個大規模的數據集。數據集上的典型處理包括加入一小片數據后就會改變大規模數據集的狀態。如考慮這樣一個數據集,它存儲了Yahoo!新聞中現有的所有新聞。我們可以把它想象成一幅巨大的圖,每個新聞就是一個節點,新聞節點若有邊相連則說明這些新聞指的是同一個事件。每隔幾分鐘就會有新的新聞加入進來,這些工具需要將這些新聞節點加到圖中,并找到相似的新聞節點用邊連接起來,還要刪除被新節點覆蓋的舊節點。這和標準流水線不同的是它不斷有小變化,這就需要使用增長處理模型在合理的時間范圍內處理這些數據了。例如,所有的新節點加入圖中后,又有一批新的新聞節點到達,在整個圖上重新執行連接操作是不現實的,這也許會花費數個小時。相反,在新增加的節點上執行連接操作并使用全連接(full join)的結果是可行的,而且這個過程只需要花費幾分鐘時間。標準的數據庫操作可以使用Pig Latin通過上述方式實現,這時Pig就會得到很好的應用。

上一篇:2017雅虎YAHOO跨境峰會在北京圓滿結束
下一篇:微軟卷入雅虎收購:原來是想拔掉搜索合作眼中釘梅耶爾

聲明:本頁內容由好推網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶參考;本站不擁有所有權,也不承認相關法律責任。如您認為本網頁中有涉嫌抄寫的內容,請及時與我們聯系進行舉報,并提供相關證據,工作人員會在5個工作日內聯系您,一經查實,本站將立刻刪除涉嫌侵權內容。

相關資訊 Releva ntnews
  1. 我們的承諾
  2. 我們的實力
  3. 我們的未來

站點地圖

Copyright © 2002-2019 拜倫建站 www.dfjjdv.com.cn 版權所有