iT邦幫忙

0

Big Data: Beyond the storage, what's else?

對於大數據,我們通常太過於專注在儲存與查詢,而忽略其他部份的重要性,尤其是「Data Pipeline 資料傳遞途徑」以及「Cluster Service 叢集服務」。
「技術因為問題而存在」
大數據一直都有,在大數據產生問題之後,才會出現相關的處理技術。那麼什麼是大數據的問題?
當「資料的『收集』、『儲存』、『管理』和『處理程序』,超出可接受的時間」,講白話的意思就是「因為『系統應接不暇』而產生問題」。

首先,大數據的問題可以分成「技術問題」與「實質問題」。實質問題屬於商業經營管理的範疇,不在本文討論範圍,技術問題屬於各類資訊人員的職責,需思考應該如何提出滿足資料存儲、計算、容錯能力的機制。「技術問題」可以再細分成「資料管理」以及「資料科學」,接下來討論的範圍,將僅限於「資料管理」。

對於大數據的資料管理,我們通常太過於專注在儲存與查詢,而忽略其他部份的重要性,尤其是「Data Pipeline 資料傳遞途徑」以及「Cluster Service 叢集服務」。

<Data Pipeline 資料傳遞途徑>

每一個企業所適合的 Data Pipeline 可能不盡相同,Nathan Marz 於 2013 年發表「λ 數據處理架構」,提出具備「可擴展性」且「容錯能力」的一般化分散式資料處理架構,同時考量「精準查詢」與「及時趨勢」的分析需求。

Nathan Marz 十分善於行銷自己的概念,除了將他所開發的社交媒體搜尋引擎系統,開放成為 Apache STORM 專案,並且出書提倡 λ 架構。

為什麼稱為「λ數據處理架構」,從下面這一張圖可見一般。資料來源應具備 3 項特性,「高吞吐量」、「平衡資料延遲」、「擁有容錯能力」,能夠同時解決海量資料「批次」與「串流」的處理能力。
批次處理代表性系統是 HBase 以及 Hadoop,以「全面」和「準確」的觀點,進行資料「精準查詢」。
串流處理代表性系統是 STORM 以及 Spark,以「即時數據」的觀點,進行資料「趨勢分析」。

<Cluster Service 叢集服務>
使用多台伺服器執提供同一種服務,就是叢集服務嗎?當然不是!
為何叢集服務這麼重要?這裡使用「飲水機排隊取水」的例子簡單說明:

由兩台飲水機組合而成的供水服務,取水的人排成一列,「Round-robin Scheduling
循環分派」到這兩台飲水機。當發生以下幾種情況之一,供水服務資源就不是處於最佳分配:

  1. 飲水機故障減量供水
  2. 某人拿了一個大茶壺取水
  3. 某人運體動後特別口渴

在電腦系統裡的對應關係:
飲水機 >> 伺服器,
取水 >> 執行排程工作,
減量供水 >> 伺服器資源不足,
提茶壺取水 >> 耗用大量資源的排程工作,例如 CPU Bound 或是 Time Consuming 的 Job
特別口渴 >> 重要的排程工作

該如何建立供水叢集服務?

  1. 所有飲水機都向叢集服務註冊,提供飲水機資訊,包含「服務時間」,「可供水量」。
  2. 所有取水的人都向叢集服務提出「口渴程度」、「需求水量」,叢集服務再依此決定分派取水順序,以及該使用那一台飲水機。
  3. 最後,飲水機定時向叢集服務回報目前的供水況狀。

為了解決「叢集系統」「分散式一致性」的問題,相關的理論中最著名的莫過於「Paxos演算法」。

「Paxos 演算法」是由一位很有個性的天才,Leslie Lamport 於 1990 年提出,經過百般波折後,在1998年首次公開發表於「美國計算機學會電腦系統會刊」

目前,依據 Paxos 演算法的實作系統中,較為著名的有「Apache ZooKeeper」以及「Google Chubby Lock」

另外,有一個名為「Raft 共識演算法」,提供等同於 Paxos 演算法的設計, 並且以視覺化說明「如何選舉 Leader」以及「一致性訊息派送」, 相當值得參考!

-- References --
How to beat the CAP Theorem
http://nathanmarz.com/blog/how-to-beat-the-cap-theorem.html

Lambda(λ) Architecture
https://en.wikipedia.org/wiki/Lambda\_architecture
http://lambda-architecture.net/

Big Data, Principles and best practices of scalable real-time data systems
https://www.manning.com/books/big-data

Leslie Lamport
http://www.lamport.org/
http://research.microsoft.com/en-us/um/people/lamport/pubs/pubs.html

Apache Zookeeper
https://zookeeper.apache.org/

Google Chubby Lock
http://research.google.com/archive/chubby.html
http://research.google.com/archive/chubby-osdi06.pdf

The Raft Consensus Algorithm
https://raft.github.io/
https://github.com/benbjohnson/thesecretlivesofdata


尚未有邦友留言

立即登入留言