Laxcus大資料管理系統2.0(13)- 總結

來源:互聯網
上載者:User

標籤:

總結

  以上從多個角度闡述了Laxcus主要組成部分和應用情況。所有設計都是基於現實環境下的評估、對比、測試和考量。設計的基本思路很明確,就是將各項功能分解、細化、歸類,形成一個個可以獨立、小的模組,每個模組承擔一項職能,再把這些模組組織起來,在一個松耦合架構管理下,協同合作,來完成大規模的資料存放區和計算工作。

  設計中的主要問題源自有限的基礎設施和變化中的應用需求之間的矛盾。如何在不損失處理效能的前提下,將有限的基礎設施資源使用率做到最大化,是設計考慮的重點。這也是一個和硬體密切相關的問題。

  在核定系統設計目標時,我們面臨多種選擇。大多數情況下,沒有魚和熊掌兼得的可能,只能二選一做出取捨。考慮到系統雖然經過很多簡化處理,但是為了滿足需求,仍然存在太多環節,加之這些環節之間各種關聯導致的複雜性,我們將穩定、可靠、“大”這三項指標放在首位,其它指標則做為次要需求放在後面。所以,從這一點來說,Laxcus雖然能夠管理百萬級的電腦節點,實現了EB級的資料存放區計算能力,也提供了基於記憶體的快速資料處理解決方案,但並不是一個為追求“快”而設計的大資料系統。

  現在再回過頭,根據我們的經曆,來看一個我們組織實施並投入運營的叢集基本配置情況:擁有從數百台到千台左右規模的電腦,採用X86架構的32/64位晶片,每台電腦配置2 - 8G的記憶體,2 - 4TB儲量的溫徹斯特硬碟。電腦被部署在多個機架上,採用千兆的光纖網路,通過多台交換器實現串連。不同的時段內,會有數百到數萬個使用者,每個使用者並發多個任務使用著這個叢集。

  可以看到,在這樣的網路環境中,每台電腦能夠分到的頻寬並不多,考慮到Laxcus是多使用者系統,每個使用者又並存執行多個任務,實際分配給每個任務的頻寬就更低。叢集在執行正常的資料處理業務之外,還有大量輔助業務也要通過網路傳輸資料,如果把全部資料用量統計起來,這樣的頻寬很容易發生超載現象,而叢集運行也嚴重依賴著網路通訊,這部分的頻寬資源是不能夠被擠占的。所以,如何節約資料處理過程中的各種儲存和計算開銷就變得非常關鍵。

  節約的一個辦法是杜絕冗餘資料。

  冗餘資料主要產生在資料產生階段,預防手段也很簡單:對資料進行精確的篩選和抓取。這就涉及到儲存方案的設計。

  為了適應不同業務需要,我們設計了行/列兩個儲存模型。儲存模型的最小儲存單位是列。在列這個層面上,資料可以隨意地組織、置換和計算,在保證靈活性的同時不失其精準性。與之相關的,把SQL融入分布描述語言,與分布環境結合具有一舉多得之效。比如藉助Where子句的多條件組合查詢能力,通過SELECT語句將其分散作用到資料存取層面後,以列為單位的檢索結果可以直接在電腦產生,從而避免了冗餘資料在網路上傳輸。這種資料處理方案,非常符合分布環境下在資料來源位置進行計算的原則。即以移動計算代替移動資料計算的原則。

  節約原則還體現在對資料格式的原始定義上。

  Laxcus設計規定,數值統一採用二進位格式表述。比如一個整型值,二進位格式固定為4個位元組,如果換作字串表述再加上符號位,最大將達到11個位元組。這就使得位元值無論是在磁碟和記憶體裡儲存,還是在網路上傳輸,資料量都比其它格式要少。而且因為數值的長度固定,當進入CPU層面進行處理時,不需要轉換資料類型,就能夠被CPU識別和計算,比如C語言就可以通過指標可以直接引用。這在執行資料密集的計算任務時,能夠顯著提高計算效率。

  FIXP協議也是體現二進位優勢的又一個例證。在網路通訊中,基於UDP傳輸的監控包佔了很大比例,因為二進位使得FIXP包的資料長度相對較小,通常都小於一個IP包的長度,也低於鏈路層對資料包的尺寸限制。這樣的結果使得FIXP包能夠被直接傳輸,避免了在網路兩端對資料包進行的分組和重組操作。這個小小的改進使得FIXP協議的丟包率大為減少,不可靠的UDP通訊成功率大為增加,獲得了更高的通訊穩定性。

  設計中另外著力考慮的是網路環境下資料計算面臨的諸多問題。

  資料區塊成為解決這些問題的關鍵。

  如第3章所述,資料區塊的基本特點是長度固定。只此一點,就避免了磁碟片段和減輕了資料維護的難度。也是因為這個原因,使得資料在網路間的傳播極為簡單,為網路環境下的資料備份和Server Load Balancer奠定了基礎。同時,把對磁碟影響最大的寫操作轉移到記憶體執行,以空間換時間的手法,將磁碟的寫操作延遲降到最低,使磁碟更專註於讀操作。更進一步,通過引入資料最佳化和資料構建,使得使用者更能夠按照自己的意願組織和檢索資料。表現在磁碟上,直接的反映就是減少了讀操作次數。這些都對改善磁碟處理效能、提高資料計算效率甚為重要。

  在資料區塊之外,最需要提及的當屬Diffuse/Converge演算法,這是整個網路計算的核心。演算法將網路計算過程分為兩個步驟:Diffuse向網路上尋找資料後進行分配,Converge在已經分配的資料的基礎上,對資料進行再組織和再分配,資料的每一次的輸出做為下一次的輸入,通過數次迭代得出計算結果。圍繞著Diffuse/Converge演算法,又進行了一系列的配套設計。通過將系統和使用者功能的分離,使用者實現網路計算介面可派生編程,系統實現熱發布、任務調度,模平均分配資料,任務命名,Conduct語句,使得這些模組在其中各司其職,運行時組織起來,形成從終端到資料存放區層面,一個完整的網路計算體系。在保持了簡單和易用性的同時,也實現了大規模資料並行計算的目的。

  冗災處理也納入了網路計算體系中。因為具有弱中心化管理和故障主動判斷的能力,系統能夠在很短時間內感知到故障的存在,並主動迴避故障源。對於故障節點,系統一旦確定就會將其隔離,不會再出現在叢集裡,同時採用資料冗餘和再恢複的辦法,保護正常的資料處理業務。

  另外,在許多技術細節上,也進行了最佳化處理。比如在執行底層計算時,針對資料密集的這個特點,加入X86架構的SSE指令後,能夠使計算效率取得成倍的增長。或者在計算中使用更多的加、減、移位指令,取代乘、除指令,也能夠達到減少指令計算周期、提高計算效率的目的。還有一個更直接的手段是採用64位的CPU,根據測試統計,經過LINUX GCC64位編譯器編譯的C/C++語言代碼,在執行密集型資料計算時,效率比32位代碼普遍提高15%-20%。

  對於未來,應該根據叢集和資料處理業務的具體特點,選擇合適的軟硬體組合。如文章開篇所言,叢集計算不在意個體計算單元效能的強弱,它是把眾多且分散的計算單元通過網路組織起來,以協同工作的方式,取代那些單一但效能強大的集中計算。這種以多勝強特點,為實現低成本的計算業務帶來福音。這種情況,在資料中心表現尤其明顯。在現在的資料中心內部,電腦和維持電腦啟動並執行製冷裝置,它們消耗的電量非常龐大。如果採用移動架構的硬體裝置,不單電腦能耗會顯著下降,電腦體積縮小,單位空間內的電腦布署數量增加,製冷的需求也會大幅降低。這樣的基礎設施被部署到資料中心後,將直接降低資料的運營成本。其所產生的影響,正如PC架構取代了當年的小型機一樣,現在移動架構取代PC架構已經露出崢嶸之勢。在強調總體擁有成本(TCO)的今天,配合大資料的到來,將掀起一場新的資料計算革命。

  這可能不是一個太漫長的過程,這裡面還有許多工作要做。

  現在只是剛剛開始。

Laxcus大資料管理系統2.0(13)- 總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.