中國數據創新琅琊榜之Laxcus:構建全棧和通用的大數據管理系統
古之「琅琊榜」讓最優秀的青年才俊聞名天下,而「中國數據創新琅琊榜」正是為積極鼓勵那些在各自領域不斷創新,不斷突破的企業,從行業角度出發,對以數據創新驅動業務發展的公司進行案例推廣、梳理和排名,讓優秀的數據創新企業得到更多的展示和關注,讓更多擁有新型服務模式和自我創新能力的數據型公司,成為未來大數據產業發展新生力量的同時,威震江湖,名聞天下!
業務平台介紹
Laxcus大數據管理系統源自這樣一個思考:能不能在一套產品里集成大數據所有功能,向上支持大數據應用業務,向下整合各種軟硬體基礎設施,為用戶提供完整、通用一站式的大數據解決方案,從而擺脫積木式模塊框架的功能分散重疊、兼容不足、安全性差、效率低下、組織部署困難、開發維護使用成本高昂的困擾。
截止目前,Laxcus大數據管理系統持續進行了八年的設計開發工作,經歷過數個版本迭代,達到了當初的產品設計目標,已經是一個全棧和通用,適合全行業、全球用戶使用的大數據管理系統。
Laxcus大數據管理系統架構
成功案例分享
(1)總體目標和思路
Laxcus大數據管理系統的設計目標是在一套產品里,針對不同的軟硬體,集成大數據的所有功能,保證系統的通用性,適合全行業、全球用戶使用。為了達到這個目標,系統的產品技術設計,除了採用架構/功能一體化設計、增加內聚、減少調用層次、改進人機界面、提高分布效率等基本要素外,還包括以下方面:
1.硬體基礎設備定位於PC、移動架構平台,來減少用戶採購、運營費用。
2.系統總體設計成松耦合架構,在此框架下實現多集群、多用戶、多任務,和數據業務的可定製、可擴展。
3.網路通信採用二進位協議,來提高數據傳輸和處理效率。
4.引入自適應機制,使集群具備自組織管理和容錯處理能力,降低維護人員工作壓力。
5.依託多集群並行和弱中心管理的特點,實現超大規模、可伸縮的數據存儲和計算。
6.底層數據採用混合存儲方案,支持OLTP和OLAP業務兩種業務模式,實現數據即時存取。
7.數據處理融入SQL思想,兼容資料庫,滿足高並發和高可靠性兩種需求。
8.索引矩陣融合分區、動態關係、圖論、鍵值技術,實現網路數據的精準定位和快速查詢。
9.全新設計的分布演算法,保證數據處理簡捷高效。
10.組件化編程,結合容器管理,來減少數據業務的開發和維護難度。
11.體系化安全策略,將安全管理納入系統每一個環節。
12.使用類自然語句命令操縱集群,覆蓋全部數據處理和管理工作。
13.支持全球所有字符集,滿足不同國家地區的用戶語言使用習慣。
目前Laxcus大數據管理系統運行在Linux/Windows系統上,硬體平台支持X86、ARM、POWERPC、NVIDIA。同時提供了豐富多樣的API介面,供用戶開發、運行、維護使用。
(2)綜合解決方案
Laxcus大數據管理系統涉及大數據處理所有環節。為了保證系統的穩定可靠、安全、易操作、易開發、易維護的特點,大部分功能都做了內置處理,不允許用戶調用,如網路通信、數據存取、分布資源的管理等;有些功能以命令或者配置文件方式允許集群管理者和用戶有限使用,如分布鎖、安全管理、節點資源的設置等;有些功能以API介面方式的開放出來,供開發者使用,如大數據應用層/系統層開發部分;有些功能是針對用戶需求的創新設計,如多用戶資源共享和去中心化的數據處理等。鑒於Laxcus大數據管理系統體系龐大,本篇無法全部闡述,以下將甄選部分重要內容簡單說明。更多詳細內容請見:《LAXCUS大數據管理系統-白皮書》和《LAXCUS大數據管理系統-產品簡介》的介紹。
2.1節點
節點是Laxcus大數據管理系統的基本運行單元。相較於物理性質的計算機,在這裡的節點是一個邏輯單位,它具有雙重身份,即是客戶端又是伺服器。當它做為伺服器使用時,接受其它節點的命令請求和執行數據處理;當處於客戶機狀態時,又可以向其它節點發送命令。軟體層面上,節點實質是操作系統下的一個進程,在後台運行,通過網路與外界保持聯繫。目前Laxcus大數據管理系統共有6類11種節點。6類節點包括:管理節點、網關節點、工作節點、資源節點、監視節點、用戶節點。其中TOP/HOME屬於管理節點,DATA/WORK/BUILD/LOG屬於工作節點,AID屬於網關節點,CALL兼具工作節點和網關節點的雙重特點,ARCHIVE是資源節點,WATCH是集群監視節點,FRONT屬於用戶節點。運行過程中,這些節點提供一種或者幾種功能,多種節點協同合作,完成大數據處理和管理工作。其中網關節點把網路分成彼此隔絕的兩個部分,它處於「邊界」位置。對外,它接受來自用戶節點的任務請求;對內,它將用戶節點的任務請求轉發給網路內部的節點處理,同時對外部網部屏蔽內部拓撲結構,起著「反向代理伺服器和防火牆」的安全作用。工作節點承接網關節點的任務請求,負責組織和實施具體的數據處理工作。當數據處理工作完成後,將結果返回給網關節點。管理節點在集群里是一個「維護者」的角色,起到管理和監視集群其它節點的作用。在Laxcus大數據管理系統里,用戶節點的部署和維護由是用戶來實施,沒有特別明確的要求。其它節點由管理員負責組織實施,需要遵守節點部署規定。
Laxcus大數據管理系統節點拓撲結構
2.2集群
集群由不同類型的節點組成。在Laxcus大數據管理系統的語義里,「域」是一個計算機集群的單位,其中管理節點處於核心地位,負責監督、維護整個集群的運行,它的作用非常重要。管理節點實質也是一台計算機,也受到自身CPU、內存、網路介面等硬體性能的限制,隨著集群內計算機數量的增加,它的管理負荷也在隨之升高。因為這個限制,在實際部署時,一個集群內的計算機數量是不可能無限增加的。據我們測試顯示,當一個集群內的節點數量達到3000至8000這個範圍時,會出現管理峰值,超過這個範圍,穩定性會大打折扣。但是在實際使用中,用戶對數據存儲和計算需求總是在持續增加的,這樣就產生一個矛盾:如何在保證集群穩定運行的情況下,仍然能夠滿足用戶更大規模存儲數據和計算數據需要?多域並行集群就成為這樣的一個選擇。
多域並行集群是對現有單域集群的升級和改進。通過把原來多個孤立運行的集群連接起來,在這些集群之上,建立更高一層的管理模型,形成一個兩級的管理架構。這個兩級架構的集群被稱為「主域集群」,它下屬的集群被稱為「子域集群」。子域集群接受主域集群的管理,實時向主域集群彙報自己的運行狀態。按照規定,子域集群必須集中在一個物理環境里,主域集群允許跨地域分散存在。就是說,如果A子域集群的機房在北京,B子域集群的機房在廣州,天津機房是C主域集群,只要它們之間能夠通過網路進行通信,就可以在天津的C主域集群管理下協同工作。在Laxcus大數據管理系統里,TOP集群是主域集群,HOME集群是子域集群。
2.3松耦合架構
Laxcus大數據管理系統被設計成松耦合架構,與松耦合相對的是緊耦合。Laxcus大數據管理系統的松耦合架構是從緊耦合架構改進而來。本處的松耦合架構可以理解成:為適應複雜分布網路環境,被臨時組織起來的工作模型。在這個架構下,所有硬體的設備和軟體的模塊,以及其上運行的數據處理工作,都被視為服務。它們在獲得授權的情況下,可以自由的加入和退出,以離散、獨立、弱依賴的形態存在。其中少量故障不影響系統的整體運行和用戶使用,從而使系統具備極強的穩定性、可靠性、可伸縮、冗餘容錯的能力。
Laxcus松耦合架構是一個客戶機、代理、伺服器的三層管理模型(CSA),與之配套是實現了架構/功能一體化的Invoke/Produce任務調度模型,它們協同配合,共同完成各種數據處理和管理工作。實際使用也顯示,改進後的松耦合架構的各項性能指標,要遠超過當初的緊耦合架構。
緊耦合/松耦合性能對比
松耦合架構
2.4網路通信
Laxcus大數據管理系統的網路通信建立在TCP/IP網路之上,目前支持IPv4和IPv6兩種網路地址。網路通信是Laxcus體系里最基礎和最重要的一環,為了最大限度利用有限的網路資源,我們在TCP/IP協議基礎上,設計了一套專屬的二進位網路通信協議:FIXP協議。它採用小頭編碼(LittleEndian),具有平台獨立、上下文無關、結構簡單、數據尺寸小等特點。
FIXP協議結構由三部分組成:命令、消息、數據實體。命令分為兩種:請求和應答,命令的作用是說明本次通信的基本屬性。每次通信由發起方發送請求命令,受理方返回應答命令。消息在命令之後出現,消息在一次通信協議中允許出現任意多個,消息中攜帶本次通信需要的多類附屬信息。消息之間是銜接的,彼此無分隔標記,通過消息頭中的標記長度加以區別。在最後面是數據實體部分,數據實體包含本次通信所要傳遞的內容。內容是任意格式的,如音頻、圖像、資料庫數據、各種元數據等。數據實體是一個可選部分,是否存在會在消息中註明。
在FIXP協議基礎上,還提供了四種通信方案。這些方案包括:TCP方案、UDP方案、KEEPUDP方案、RCP方案。Laxcus大數據管理系統將根據運行環境條件和不同任務需求,選擇合適的通信方案,實現有區別的網路通信,以達到節約網路流量,降低運行負載,提高計算效率的目的。另外,通信方案也可以由系統管理員在配置文件中指定。
FIXP協議結構
2.5數據存取
數據存取是最底層的一個子系統。它執行磁碟文件存取工作,這個磁碟文件被稱為數據塊。數據塊有CACHE和CHUNK兩種模式,CACHE塊執行添加、刪除、查詢操作,CHUNK塊執行查詢和刪除操作。每個數據塊都有一個64位無符號整數,做為它唯一標識。這個標識由系統分配,不會重複。
數據塊支持兩種存儲模式:行存儲模型(NSM)和列存儲模型(DSM)。NSM以「行」為單位存儲,DSM以「列」為單位存儲。NSM模型主要針對OLTP業務,DSM更適合OLAP業務。為防止讀寫競用,系統在磁碟層面提供細粒度的「行級鎖」保護。
除此之外,數據存取子系統還提供了元數據、內存計算、完整性檢查、快照、備份、主塊衝突檢查,負載檢測等功能來完善、優化、保護數據讀寫工作。
行存儲模型和列存儲模型
2.6數據組織
數據組織設計與關係資料庫一致,嚴格遵循數據和數據描述分離的原則,繼續沿襲用戶模型、邏輯模型、存儲模型的三層結構,和兼容SQL。它的基本核心是以關係代數的理念去處理數據,以及類自然語言風格的數據描述。索引矩陣的設計,表象上是關係查詢,但是隱性融合了動態關係、圖論、鍵值對技術。所以用戶的使用體驗,與關係資料庫相比,並不會感覺到有太多的差異。
為了支持分布處理環境,保證大規模數據存取和計算的性能效率,數據組織子系統採用了大量新的數據處理技術,如取消關係資料庫中的視圖(VIEW),引入全局資料庫概念,支持跨資料庫操作,允許用戶壓縮和加密行列數據。另外也增加了一些創新性設計,如:可調CAP策略、去中心化的數據處理,跨用戶的數據操作等。
2.7分布演算法
Laxcus大數據管理系統提供兩套分布演算法:Diffuse/Converge、Scan/Sift,其中Diffuse/Converge用於分布計算工作,Scan/Sift用於分布數據構建工作。
Diffuse/Converge演算法基於這樣的理念:傳統的集中計算模型,數據處理可以分解為"產生、計算"兩個階段,如果把它擴大到網路環境,可以進一步分解為分散和聚合。它們的區別在於:前者是直接產生數據,然後對數據進行計算,輸出計算結果;後者是通過網路收集數據,經過組織整理後,再分配給多台計算機去執行計算,最後輸出計算結果。
Scan/Sift是針對大規模數據重組構建的演算法。它的特點是在即有數據基礎上,經過重新組織加工,產生新的數據,面向ETL業務。起到數據處理加速器的作用,為數據計算工作提前準備一個快速處理通道。
這兩種演算法都可以進行了抽象化處理,以「分布任務組件」形式,向開發者提供了API介面,供用戶結合自己的數據業務進行開發,然後發布到Laxcus大數據管理系統運行使用。
2.8應用開發
Laxcus大數據管理系統的應用開發分為兩種:管理者應用開發,用戶應用開發。前者遵循Invoke/Product任務調用模型,面向集群所有者或者雲計算運營商,提供系統層面個性化的數據管理和處理業務,操作者是集群管理員。後者面向普通的應用開發者,它以API介面發布出來,以組件編程的方式,由開發者編程,供註冊用戶使用。
在運行過程中,用戶層應用被置於容器中運行,接受沙箱的監管控制。系統層應用與系統嵌合在一起,沒有沙箱管理,直接運行。它們都支持冷發布和熱發布兩種模式。系統層應用發布由管理員通過命令實施。用戶層應用通常是管理員發布,但是在獲得管理員授權後,也可以由用戶自己發布。
管理員通過Watch節點發布分布任務組件
註冊用戶在獲得授權後,通過Front節點發布分布任務組件
2.9冗餘容錯
由於Laxcus大數據管理系統建立在低成本硬體基礎之上,以及硬體品質的參差不齊,和計算機集群龐大的組織體系和複雜結構的特點,使得集群在運行過程中發生的錯誤概率,遠高於單一且性能穩定的小型機伺服器,並且集群在運行過程中幾乎是不允許停止的,這就更需要提供比單機環境複雜得多的錯誤管理方案。系統的冗餘容錯依據松耦合架構和自適應感知機制,遵循這樣一個整體思路來解決:首先由軟體感知來發現和定位故障點,然後進行判斷,如果屬於軟體可以解決的故障,且有足夠的冗餘備份,那麼啟動軟體自修復機制來完成,否則,這個錯誤就提交給集群管理員人工處理。在這個思路基礎上,各種錯誤處理分別融入到它們的模塊中,並與這些模塊嵌合,形成一個完整的冗餘容錯管理機制。對硬體的容錯管理包括網路故障、計算機故障、硬碟故障。軟體的故障包括各類節點故障、數據錯誤、應用程序錯誤等。其中管理員的職責也是必不可少的。
2.10安全
安全是Laxcus大數據管理系統最重要的一環,管理工作貫穿Laxcus大數據管理系統所有層面,採用「網路->節點->用戶->業務」的四層管理架構。首先是RSA+SHA,這是所有安全管理的基礎。在FIXP網路里,要求所有業務都使用RSA加密,所有數據都經過SHA驗證。此後,分別是對稱加密、資源安全策略、簽名管理、用戶安全策略、業務安全策略一系列安全管理措施。這些措施都是圍繞著兩個目標進行:防竊取和防篡改。同時我們也考慮到安全管理對數據業務的影響(比如頻繁的RSA計算會大量佔用CPU),所以在某些層面,安全管理被設置為可選項,由集群管理者或者用戶,通過配置文件或者命令自主決定。目前Laxcus大數據管理系統的安全管理工作已經達到行業領先水平。
Laxcus安全管理模型
(3)實際效果
Laxcus做為全棧和通用的大數據管理系統,以及最底層的基礎支持平台,集群規模達到1,000,000+物理節點,數據規模達到EB量級(1EB=1,073,741,824GB)可存儲計算數據、響應規模達到100,000,000+次/秒,適用於互聯網、物聯網、公有雲、私有雲、商業大數據、工業大數據、VR/AR、人工智慧、超級計算機、區塊鏈等行業。現在Laxcus大數據管理系統採用開源+原廠服務的模式,在一些行業落地使用。
大數據應用延伸領域
企業介紹
Laxcus大數據技術實驗室成立於2013年,從事大數據基礎技術和產品,以及相關技術和產品的設計、研發工作。團隊早期成員來自Lexst搜索引擎,此後陸續吸收了國內外多家互聯網、IT企業的技術產品研發人員加盟,擁有豐富的軟硬體基礎技術和產品設計研發經驗。Laxcus大數據管理系統是實驗室第一個成熟和商業化產品,目前以Laxcus大數據管理系統為基礎,引入區塊鏈和人工智慧技術研究,並與多家企業開展了大數據的合作、研發工作。
Lexst搜索引擎首頁
數據創新思考
回顧歷史,自計算機誕生之後的七十多年裡,已經發生數次IT革命,每一次IT革命的成果,無不帶來更低的價格、更廣闊的市場、更完善的功能、更友好的使用體驗。
大數據已經經歷10年發展,身處行業之中,我們清楚地感受到,現在已經到了一個重要的分水嶺階段:通用性和兼容能力正在成為大數據行業發展的潮流,運行的穩定性和可靠性,以及使用的便捷性、易開發、易維護能力成為產品發展的驅動力。而這些卻是Hadoop/Spark這類積木式模塊框架無法滿足的。
正如同當年小型機取代大型機,PC戰勝小型機,現在移動設備大行其道一樣,放眼今天數據市場,在社會信息化加速和各種產業需求的帶動下,傳統的數據處理軟體已經越來越無法滿足日益龐大、複雜的數據存儲和計算需要,各種數據處理業務正在快速向大數據遷移。現在的大數據和大數據應用,已經在許多人們看不到的地方,越來越深入到人們的日常生活。它日益成為一個隱形的大腦和心臟,為整個社會提供著各種決策和幫助。這要求新型的大數據處理軟體具備足夠優秀的用戶體驗、穩定性、通用性、簡單、處理能力和效率才能承擔起這樣的工作。
這個壓力和動力促使我們研發一款大數據系統級產品。在產品設計過程中,我們選擇學習而不是抄襲,借鑒而不是篡改,堅持從0開始,從最底層做起,跳出積木式模塊框架思維,另闢蹊徑,瞄準用戶需求,有針對性地進行大數據基礎研發。在實踐中,我們強調把大數據核心技術掌握在自己手裡,而不是被別人掌握。要求系統的各種問題由產品和技術本身來化解和消弭,而不是把責任推給用戶。技術上以松耦合架構為基點,引入架構/功能一體化設計,通過系統內聚、減少冗餘、優化結構、兼容、語句化交互等手段,不僅使Laxcus大數據管理系統的運行更穩定,調用更緊湊,效率更高,界面更友好,部署開發維護更簡單更靈活,軟體的編程量也大幅減少。經過這樣多年不斷的技術探索和嘗試,一步步走來,最終形成一套完整的自有的大數據技術體系。
未來,我們希望以Laxcus大數據管理系統為契機,聯合更多技術研發團隊,整合上下游產業資源,與合作夥伴一起,為建立大數據生態體系,形成中國標準,擁有數據世界的話語權,提供一份力量。
創新是一條漫長的路,沒有盡頭!
「中國數據創新琅琊榜」活動,面向各行業進行數據應用創新的企業,廣徵案例,擇優推廣。無論是數據初創企業,還是開展數字化轉型的傳統企業;無論是大數據行業,還是金融、教育、醫療等垂直行業,均可報名參加評選。
《大數據周刊》希望通過此次活動,讓企業數據創新項目實現網狀覆蓋的最大化傳播效果,用媒體聲量推動大數據創新發展,並通過領袖意見及經典案例引發深思,進一步引爆數據正在噴薄而出的無窮力量!
※區塊鏈+物聯網,這個組合很完美!
※密碼規則:ICO規則在全球範圍內的差異!
TAG:大數據周刊 |