search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

Netflix首次完整披露大數據分析基礎架構

Netflix資深軟體工程師Tom Gianos和Netflix大數據計算工程經理Dan Weeks在2016年度QCon舊金山活動中介紹了Netflix的大數據策略和分析基礎架構,此外還概括介紹了他們的數據規模、S3數據倉庫,以及他們的大數據大數據聯合編排系統(Federated orchestration system)Genie。

為了介紹具體的需求,Weeks解釋稱,「規模」是Netflix在大數據領域面臨的最大挑戰。該公司在全球範圍內有超過8600萬會員,每天通過流播的方式播放總時長超過1.25億小時的內容。這樣的規模導致他們的數據倉庫容量已經超過60PB。

儘管很多人可能覺得視頻流播數據是Netflix數據分析工作的主要數據源,但Weeks解釋說,他們分析的主要是其他類型的數據,例如公司內部各種微服務和營銷活動產生的事件,尤其是Weeks專門提到:

Netflix是一家徹頭徹尾的數據驅動型公司。我們喜歡根據真憑實據作出不同的決策。對於整個平台的某些變更,如果無法切實證明有助於改善用戶體驗,我們寧願不進行這樣的變更。

Weeks列舉了一個此類數據類型的用例:A/B測試。數據科學家可以分析用戶的交互,進而決定向用戶永久推送哪些類型的功能。

Weeks還概括介紹了Netflix的數據流程架構。他們共使用了兩個數據流,一個用於事件數據,一個用於維度數據。

事件數據通過他們的Kafka數據管道傳遞,維度數據則使用開源工具Aegisthus從他們的Cassandra群集拉取。最終,所有類型的數據匯總至S3。

雖然傳統數據倉庫可以使用HDFS,但Weeks提到使用S3可以獲得其他一些優勢。例如99.99%可用性、版本控制,以及將計算負載從存儲系統中剝離的能力。最後一點非常關鍵,儘管數據未能本地保存會導致延遲增高,但通過這樣的剝離可以很輕鬆地在無須移動數據的前提下對計算群集進行縮放或執行升級任務。

在數據倉庫方面,為了獲得所需數據,Weeks介紹說他們使用了一種名為Metacat的元數據系統。具體來說,該系統提供了有關確定如何處理數據所需的信息,此外還可以從中了解數據具體是什麼,保存在哪裡。由於這是一種聯合(Federated)系統,因此可在Hive、RDS、S3等存儲的基礎之上運行的技術。

Weeks還介紹說,數據本身存儲為Parquet文件格式。這是一種列式存儲格式,藉此可獲得更高壓縮率。Parquet文件還可以存儲額外的元數據,例如有關列最大/最小長度及其體積的信息。這樣諸如計數或跳過之類的操作就可以非常快速地執行完畢。

在Weeks從底層介紹他們的大數據環境后,Gianos從較高層面進行了介紹。他介紹的內容主要圍繞Genie,這是一種聯合編排引擎,可用於管理諸如Hadoop、Pig、Hive等不同類型的大數據作業。

為了介紹他們針對Genie的具體需求,Gianos用一個簡單的用例作為例子:少量用戶同時訪問同一個群集。雖然這種情況非常易於管理,但隨著組織規模的增大,可能會面臨不同的情況,導致對客戶端資源和集群資源的需求激增,進而導致部署變得愈加複雜。這就導致了導致數據科學家經常遇到的問題,例如作業速度變慢,數據處理庫過時等,這也使得系統管理員難以輕鬆地對這些問題作出響應。

按照Gianos的介紹,Genie可以幫助系統管理員執行集群的啟動和管理、庫文件的安裝等任務,這一切都不會影響到最終用戶。從用戶的角度來看,用戶可以通過這樣的抽象直接訪問集群,而無須考慮如何連接到集群,也不需要了解集群上到底運行了什麼。

在集群的更新方面,Gianos介紹說,只要成功通過測試,只需要添加對應的標籤即可順利遷移至新集群。Genie可以對所有工作進行編排,並讓原本的作業繼續在老集群上運行,同時新提交的作業可以在新集群上運行。這樣即可實現不停機更新。

Genios還介紹說,Genie的標籤機制可以應用於負載均衡,為此只需跨集群對標籤進行複製即可拆分負載。從客戶端的角度來看,這一過程是完全透明的。

另外Genios也介紹了Genie的二進位更新機制。新的二進位文件可以移動到一個集中的下載位置,隨後在下一次調用時自動替換老的文件。

Genios從數據科學家的角度演示了Genie的完整工作流。基本上,他們只需要將作業提交至Genie,其中可包含集群標籤等元數據,以及自己希望使用的大數據處理引擎。

隨後Genie可以查找最適合運行該作業的集群。Genie的界面會通過用戶反饋告訴用戶作業的運行進度。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦