揭秘Sponge:统一Hadoop、Spark、SDS、Swift的大数据操作系统
揭秘Sponge:統一Hadoop、Spark、SDS、Swift的大數據操作系統
使用對象存儲、高性能存儲、Hadoop、Spark、Storm……等技術來存儲、處理和分析大數據很流行,然而海綿數據科技有限公司(以下簡稱“海綿數據”)說,這些技術各自為政,存在性能、管理、開發、成本等多方面的問題。
5月20日,海綿數據宣布推出其第二代大數據操作系統產品Sponge。海綿數據CEO朱曉明、VP崔斌、CTO李東及COO劉棟接受了CSDN記者的采訪,全面解析了Sponge的研發初衷、技術特點、適用場景、部署模式以及市場戰略等一系列的問題。
總體來說,Sponge是一個簡單多層,兼容完全POSIX兼容的分布式NFS、Hadoop,支持對象存儲、云存儲、SDS(軟件定義存儲)、容器機制,集成Spark為計算引擎,基于內存計算技術的分布式系統,將大數據的存儲、管理和計算有機融合,具有實時一致性,易于兼容現有系統,相比10年前誕生的第一代產品Hadoop更加簡單易用,易于擴展。
三位高管表示,僅僅有作為計算平臺的Spark不足以應對大數據的挑戰,整合后的Sponge技術框架,能夠同時支持大數據、云存儲、結構化、半結構化和非結構化數據的處理,代表了大數據的發展方向。
需求&理念
Sponge的誕生源于三個理由。首先是大數據市場的剛需。今天已經沒有人再懷疑大數據的價值,云計算、移動互聯、物聯網、機器學習、無人機等前沿技術的普及與大數據的發展相得益彰,不論在美國還是中國,大數據已經在很多的IT企業和傳統企業開始落地,譬如互聯網金融公司的反欺詐流程,電信運營商的客戶服務分析,都貫穿著大數據和機器學習技術的應用,這也刺激著初創企業在這個領域尋找新的商業機會。
目前普遍被采用來應對大數據的是開源軟件與廉價的x86服務器的組合,這些開源產品包括Hadoop、Spark、Storm、NoSQL等。傳統存儲和數據庫當然也針對大數據的需求升級,用來存儲價值密度低的大量非結構化數據卻不現實。這些原本被Google、Facebook、Yahoo等大公司驗證在某些場景很成功的開源項目,也存在問題:不同功能模塊對應多個相互獨立的開源項目,為不同的目的而設計,其關系很復雜,缺乏通用性,系統部署和使用復雜而低效,二次開發困難,并且難以統一管理和監控,維護成本高,所以,需要有一個統一的平臺。當前風頭正盛的Spark,被其粉絲認為是通用的大數據處理平臺,但李東認為,Spark只是一個計算平臺,并未涉及到如文件系統等底層的大數據核心技術,不能算是我們需要的大數據操作系統。
李東認為,第二代大數據操作系統和第一代產品的最本質區別在于設計理念的不同,由此架構和實現方法也不一樣。第一代的系統即使再打補丁,因為架構的原因也存在無法添加的功能。海綿數據相信,隨著社交媒體、智能設備的普及,Hadoop在其誕生環境下自然采用的傳統批處理的方式,已經跟不上現在的交互式處理、實時處理的需求,現在我們需要多樣化的處理方式,如果部署Hadoop就可能需要并行的兩套系統來提供兩種處理模式。另一方面,Hadoop版本眾多,現在就有1.0、1.1、2.0,生態系統項目的使用也不是一件簡單的事情。
此外,自主知識產權的需求同樣作用于大數據技術領域。朱曉明稱,大數據操作系統的準入門檻高,如文件系統這樣的核心技術,即便是在美國,具有相關開發能力的團隊也不多,而海綿數據具有硅谷的研發團隊,其中不乏在硅谷20多年的專家,具有這個技術儲備。
簡單、高效、可靠、經濟,這四個詞,是海綿數據對第二代大數據操作系統的價值的追求,以及Sponge產品設計的理念。
技術&產品
Sponge集成了現有開源技術的思想或者組件,但并不僅僅是一個簡單的打包,而是一套擁有20多項專利技術的技術。我們先來看它的架構。Sponge追求簡單易用,并能夠整合多層,提供一個高性能的平臺,滿足不同層面的需求,技術架構如下圖所示。
Sponge整體技術架構
其設計要點如下:
- 存儲層整合高性能存儲、結構和半結構化數據處理、云對象存儲和軟件定義存儲層,采用統一的核心,各層都實現在同一個核心之上,實現高可擴展和整合多層。
- 分析層集成Spark作為計算引擎,包括核心API和其他附加庫如Streaming、Spark?SQL、GraphX、MLlib等。
- 分布式NFS完全POSIX兼容,易于集成現有的系統、應用和腳本。
- 實現Hadoop文件系統的接口,能夠兼容Hadoop生態系統(使用任何Hadoop版本都可以進行數據遷移)。
- 底層存儲架構支持細粒度數據塊和CDR(持續數據復制)。
- 采用Masterless集群拓撲架構,解決單點故障和小文件數據的限制。
這里要說一下Masterless,也就是Sponge只有一種節點類型,沒有Hadoop那樣的Master和Slave之分,客戶端可以直接和Sponge節點通信,無需經過Master。
Masterless結構
這就帶來如下的優勢:
- 所有的文件系統的metadata平均分配在每個節點,所以沒有單點故障和文件數據的限制,可以處理更多小文件。
- 節點之間沒有依賴關系,所有的服務都在單個節點,不需要其他獨立的集群協助。
- 沒有NameNode的限制,處理大并發性能更好。
此外,Sponge還是模塊化架構,這不限于分布式系統拓撲結構,單個實例也是由多個組件和多個服務組成的。
Sponge與Hadoop的對比
下面再展示一些具體的重要特性。
Sponge文件系統(SpongeFS)
不同于以往以磁盤計算技術為核心的文件系統,SpongeFS將集群內存管理提升成為文件系統的重要組成部分,以滿足大量文件數據讀寫IO的高需求。SpongeFS基于分布式設計,上文說的Masterless結構,以及模塊化架構,正是由SpongeFS來操盤的。
SpongeFS主要由集群管理層、文件管理層和存儲層構成(詳見架構圖)。當數據進入SpongeFS,就被分成一個個數據塊,每個數據塊通過文件管理層先存入緩存層,被加入集群間復制隊列,一擊加入到持久隊列等待存入持久層,CDR則把持久層數據塊復制到目標集群(目標群數據塊也優先存到緩存層)。
文件管理層的基本管理單位是Volume,每個Volume可以有不同的管理設置,如容錯性、安全性、物理資源的使用等。
緩存層提供高性能服務的關鍵。SpongeFS的緩存層由整個集群所有節點的緩存組成,共同協作完成IO操作,緩存層提供自動預加載功能,并通過Ejection內存管理技術,以Low和High為界限保證緩存空間快速、安全地重新分配。
SpongeFS緩存層
最后要說的是,SpongeFS的持久層使用“容器”提供文件數據管理服務。容器是虛擬的文件數據容器。一個容器就是SpongeFS集群里的一個邏輯組物理資源,它可以被 集群里的文件管理層使用。容器提供安全的機制來組織、管理、分析數據存儲資源,每個容器由一定數量的虛擬容器構成平均分配在集群每個節點上(詳見Masterless結構圖)。?
SpongeFS采用容器提供高可用、動態重配置、分布式的數據存儲,在集群的節點發生故障時,允許集群自我修復并繼續提供服務。容器的主要的功能特性如下:
文件系統實時一致性
Sponge FSCK是Sponge的文件系統實時一致性檢查技術,通過在后臺運行的FSCK Deamon完成一致性檢查,任何對SpongeFS的修改,都會從各個節點通過一個輕量級的MapReduce引擎實時傳輸給FSCK Deamon匯總和及時檢測,支持完全和增量檢查,以提高性能,降低系統開銷。
CDR數據同步技術
CDR流程前文已經說過,圖示如下。
CDR技術
與Hadoop的distcp(批處理過程)不同,CDR支持集群或數據中心之間接近實時的復制,并支持文件、文件夾、文件卷等不同的篩選規則,以及增量復制、斷點恢復、單向和雙向復制、內存間復制等。
分布式NFS技術
SpongeFS支持實時隨機讀寫操作,所以Sponge的NFS是完全POSIX兼容的:
分布式NFS技術
- 每個節點都實現完全無狀態的Sponge文件系統NFS服務器,都可以被NFS客戶端mount。
- 每個NFS服務器運行在CNode上,作為CNode的一個服務,客戶端的NFS請求通過CNode解釋稱對在存儲層的文件操作。
- 任何一個Sponge文件系統NFS服務器都可以和所有的節點通訊。
- Sponge文件系統NFS服務器實現了NFSv3。
數據分析引擎
考慮到Java或Python的支持、shell中的交互式查詢、SQL查詢、流數據、圖表數據處理和機器學習等,Sponge選擇了Spark作為分析引擎,Spark在這些領域表現出色,同時架構和Sponge的底層存儲架構也非常相似。這里只說Sponge對Spark的“加持”作用:
數據分析引擎
軟件定義存儲
Sponge的集群管理層是和存儲層分離的,而存儲層是由集群管理層進行管理。在存儲層,Sponge采用Kinetic存儲技術來實況SDS。
軟件定義存儲
Sponge SDS做了以下工作:
支持對象存儲協議Swift
支持對象存儲協議Swift是Sponge后續版本的功能。Sponge在存儲層把云存儲和大數據存儲結合,不需要多余的ETL,存儲空間、網絡帶寬,通過Sponge對象存儲存入到Sponge的數據,可以直接用來做各種工作。
Sponge在CNode內部實現Swift接口,數據通過swift存入到Sponge文件系統可以以NFS的方式獲取,反之亦然。
由以上介紹可以看到,Sponge是一套簡單多層的系統,同時提供豐富的功能和擴展性,并兼容現有的技術,李東在答記者問的時候明確表示,Sponge的各個組件是松耦合的,也就是說,這些功能可以有單獨提供的可能性,以滿足用戶的個性化需求。
根據海綿數據的介紹,Sponge對部署環境沒有特別的需求,而集群拓撲結構還使得需要的節點數據更少,這意味著更少的投資門檻。
此外,Sponge不需要另起爐灶推出一套自己的編程框架,這樣的好處是開發人員不需要再掌握另外的編程技術。
戰略&生態
海綿數據對自身的定位是一個技術驅動的公司,只專注于大數據操作系統,上層的開發有合作伙伴來提供。未來,Sponge還會支持和更多公有云的集成。
海綿數據強調了Sponge的路線:開放,但不開源。朱曉明表示,開源是技術而不是產品,開源社區的規范管理旨在推動技術發展而不是技術產品化,但企業真正需要的是產品。所以,Sponge會開放API提供給二次開發者,讓他們做各類行業的數據挖掘、數據分析等應用。
此外,海綿數據已經注銷了美國公司,未來將全身心投入中國的大數據市場
總結
以上是生活随笔為你收集整理的揭秘Sponge:统一Hadoop、Spark、SDS、Swift的大数据操作系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习 vs. 大数据:神经网络权值的
- 下一篇: 华为将操作系统“装入”海尔