當前位置:首頁 » 存儲配置 » 海量數據的分布式存儲

海量數據的分布式存儲

發布時間: 2024-09-24 21:00:31

① 在大數量級的數據存儲上,比較靠譜的分布式文件存儲有哪些

一、 Ceph

Ceph最早起源於Sage就讀博士期間的工作、成果於2004年發表,並隨後貢獻給開源社區。經過多年的發展之後,已得到眾多雲計算和存儲廠商的支持,成為應用最廣泛的開源分布式存儲平台。
二、 GFS

GFS是google的分布式文件存儲系統,是專為存儲海量搜索數據而設計的,2003年提出,是閉源的分布式文件系統。適用於大量的順序讀取和順序追加,如大文件的讀寫。注重大文件的持續穩定帶寬,而不是單次讀寫的延遲。
三、 HDFS

HDFS(Hadoop Distributed File System),是一個適合運行在通用硬體(commodity hardware)上的分布式文件系統,是Hadoop的核心子項目,是基於流數據模式訪問和處理超大文件的需求而開發的。該系統仿效了谷歌文件系統(GFS),是GFS的一個簡化和開源版本。

② 澶ф暟鎹鐨勫瓨鍌ㄥ拰綆$悊涓昏佸寘鎷鍝鍑犳柟闈㈢殑鍏抽敭鎶鏈錛

澶ф暟鎹鍦ㄥ瓨鍌ㄥ拰綆$悊鏃剁敤鍒扮殑鍏抽敭鎶鏈涓昏佸寘鎷錛



  • 鍒嗗竷寮忓瓨鍌ㄦ妧鏈錛氬侶adoop鐨凥DFS錛岃兘澶熷皢鏁版嵁鍒嗘暎鍦板瓨鍌ㄥ湪澶氫釜鑺傜偣涓婏紝浠庤屽疄鐜板規搗閲忔暟鎹鐨勫勭悊銆

  • 鍒嗗竷寮忚$畻妗嗘灦錛氬侶adoop鐨凪apRece錛岃兘澶熷湪澶ч噺璁$畻鏈洪泦緹や笂騫惰屽湴澶勭悊澶ф暟鎹錛屽疄鐜板ぇ鏁版嵁鐨勫揩閫熷垎鏋愩

  • 鏁版嵁鎸栨帢鍜屾満鍣ㄥ︿範綆楁硶錛氬ぇ鏁版嵁鐨勬寲鎺樺拰鍒嗘瀽闇瑕佷緷璧栦簬楂樻晥鐨勬暟鎹鎸栨帢鍜屾満鍣ㄥ︿範綆楁硶錛屽係cikit-learn銆乀ensorFlow絳夈

  • 鏁版嵁鍘嬬緝鎶鏈錛氬ぇ鏁版嵁鐨勫瓨鍌ㄥ拰綆$悊闇瑕佹秷鑰楀ぇ閲忕殑瀛樺偍絀洪棿鍜岃$畻璧勬簮錛屽洜姝ら渶瑕佷嬌鐢ㄦ暟鎹鍘嬬緝鎶鏈鏉ュ噺灝忔暟鎹鐨勫ぇ灝忥紝鎻愰珮鏁版嵁瀛樺偍鍜屽勭悊鐨勬晥鐜囥


浠ヤ笂榪欎簺鍏抽敭鎶鏈鏋勬垚浜嗗ぇ鏁版嵁瀛樺偍鍜岀$悊鐨勫熀紜錛岄氳繃榪欎簺鎶鏈鐨勭粨鍚堝簲鐢錛屽彲浠ュ疄鐜版搗閲忔暟鎹鐨勫勭悊鍜屽垎鏋愶紝涓虹幇浠d俊鎮鍖栫ぞ浼氭彁渚涘己澶х殑鎶鏈鏀鎸併

③ 海量分布式存儲系統Doris原理概述

Doris( https://github.com/itisaid/Doris )是一個海量分布式 KV 存儲系統,其設計目 標是支持中等規模高可用可伸縮的 KV 存儲集群。
Doris可以實現海量存儲,線性伸縮、平滑擴容,自動容錯、故障轉移,高並發,且運維成本低。部署規模,建議部署4-100+台伺服器。

Doris採用兩層架構,Client 和 DataServer+Store。
有四個核心組件,Client、DataServer、Store、Administration。
應用程序通過Client SDK進行Doris的訪問,
每台伺服器上部署一個Data Sever做伺服器的管理,每台伺服器上有自己的存儲Store,整個集群的數據存儲,每台機器獨立部署。數據通過路由選擇寫入到不同的機器中。
Administration為管理中心,提供配置、管理和監控。
config指,應用程序啟動一個Data Server,在啟動時要配置管理中心的ip地址,通關管理中心。管理中心會修改配置項感知到集群中加了新機器,對新機器管理,擴容等。待機器處於可用狀態,將該機器的配置項通知給KV Client。從而KV Client進行新的路由選擇。
擴容、下線機器等的控制台界面通過Management管理。
Monitor監控機器是否正常。

client寫數據,綁定產品的namespace(邏輯隔離),構成新key,路由到具體機器上讀寫。

路由解析演算法是設計的一個關鍵點,決定集群的管理方式,也決定了集群擴容的復雜性和難度。
Doris的演算法類似redis,有桶的概念,key映射到1w個虛擬節點,虛擬節點在映射到物理節點。
由於Doris設計時,用於4-100+規模的集群。因此,Doris分了1w個虛擬節點,當伺服器超過100會導致負載不均衡,1000會更差,相當於每一個集群上有10個虛擬節點,虛擬節點會有10%的影響。
擴容時,需要調節虛擬節點指向新的位置。具體過程為,暴利輪詢新節點添加後,一個伺服器上應該承載的虛擬節點個數,將超出的虛擬節點遷移到新機器即可。如上圖左圖有2個物理節點,擴容後,有3個物理節點,變為右圖。

為了保證高可用。doris所有服務分成2個組,兩組伺服器對等。兩個group是可以有不同數量的伺服器。
寫操作時,client的路由演算法在兩個group分別選2個伺服器,分別(同時)寫入,兩個伺服器全部返回後,再繼續向下進行。讀操作時,從兩個伺服器隨機選一個讀。這樣,提高可用性,數據持久性,不會丟失。

集群管理的重要角色Config Server,有一個功能是負責發現故障伺服器。
發現故障的方式有2種:

節點失效分為:瞬間失效、臨時失效、永久失效
應用伺服器向伺服器寫,如果寫失敗,為 瞬間失效 。接著應用伺服器進行3次重試。3次都失敗,通知管理伺服器,進行服務的失效判斷。
管理伺服器再寫一次,如果寫成功,認為是客戶端自己通信通信問題。如果寫入失敗,判斷為 臨時失效 ,通知所有client,伺服器失效,不要寫,也不讀。
如果2小時恢復,則節點為臨時失效。如果2小時沒有恢復,認為是 永久失效

如圖,如果節點2失效,進入臨時失效階段。

如圖,節點2臨時失效2個小時還未恢復,判定為永久失效。進入永久失效的恢復。

設計中,有臨時日誌節點(備份節點),有空白節點。實際使用中沒有節點3空白節點。原因:1 自動遷移有風險,還是需要手動遷移。2 幾年宕機1台,一直有一個空白節點standby浪費。一般晚上報警失效也沒有事情,第二天,找機器擴容即可。認為24小時之內,同樣編號的2台機器連續down掉,概率很低。

物理節點分成2個group,寫的時候,向2個group同時寫。當其中一個group擴容機器時,該group上的所有節點進入臨時失效狀態。停止讀寫,將數據遷移到新的伺服器上。
由於是虛擬節點的映射在調整,所以遷移是按照虛擬節點調整。為了遷移方便,虛擬節點物理化,一個虛擬節點對應一個文件。遷移時其實就是拷貝文件。這時,如果group1有節點失效也會出現不一致,但是,通常擴容的過程很快,因為,是scp拷貝文件,瓶頸為網路帶寬,通常幾十T數據,幾分鍾遷移完成,十來分鍾進行數據恢復。

④ Hadoop到底是什麼玩意

Hadoop到底是個啥?
答:Hadoop是基於廉價設備利用集群的威力對海量數據進行安全存儲和高效計算的分布式存儲和分析框架,Hadoop本身是一個龐大的項目家族,其核心 家族或者底層是HDFS和MapRece,HDFS和MapRece分別用來實現對海量數據的存儲和分析,其它的項目,例如Hive、HBase 等都是基於HDFS和MapRece,是為了解決特定類型的大數據處理問題而提出的子項目,使用Hive、HBase等子項目可以在更高的抽象的基礎上更簡單的編寫分布式大數據處理程序。Hadoop的其它子項目還包括Common, Avro, Pig, ZooKeeper, Sqoop, Oozie 等,隨著時間的推移一些新的子項目會被加入進來,一些關注度不高的項目會被移除Hadoop家族,所以Hadoop是一個充滿活力的系統。
Apache Hadoop: 是Apache開源組織的一個分布式計算開源框架,提供了一個分布式文件系統子項目(HDFS)和支持MapRece分布式計算的軟體架構。
Apache Hive: 是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張資料庫表,通過類SQL語句快速實現簡單的MapRece統計,不必開發專門的MapRece應用,十分適合數據倉庫的統計分析。
ApachePig: 是一個基於Hadoop的大規模數據分析工具,它提供的SQL-LIKE語言叫Pig Latin,該語言的編譯器會把類SQL的數據分析請求轉換為一系列經過優化處理的MapRece運算。
ApacheHBase: 是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。
Apache Sqoop: 是一個用來將Hadoop和關系型資料庫中的數據相互轉移的工具,可以將一個關系型資料庫(MySQL ,Oracle ,Postgres等)中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關系型資料庫中。
Apache Zookeeper: 是一個為分布式應用所設計的分布的、開源的協調服務,它主要是用來解決分布式應用中經常遇到的一些數據管理問題,簡化分布式應用協調及其管理的難度,提供高性能的分布式服務 ApacheMahout:是基於Hadoop的機器學習和數據挖掘的一個分布式框架。Mahout用MapRece實現了部分數據挖掘演算法,解決了並行挖掘的問題。
ApacheCassandra:是一套開源分布式NoSQL資料庫系統。它最初由Facebook開發,用於儲存簡單格式數據,集Google BigTable的數據模型與AmazonDynamo的完全分布式的架構於一身 Apache Avro: 是一個數據序列化系統,設計用於支持數據密集型,大批量數據交換的應用。Avro是新的數據序列化格式與傳輸工具,將逐步取代Hadoop原有的IPC機制 ApacheAmbari: 是一種基於Web的工具,支持Hadoop集群的供應、管理和監控。
ApacheChukwa: 是一個開源的用於監控大型分布式系統的數據收集系統,它可以將各種各樣類型的數據收集成適合 Hadoop 處理的文件保存在 HDFS 中供Hadoop 進行各種 MapRece 操作。
ApacheHama: 是一個基於HDFS的BSP(Bulk Synchronous Parallel)並行計算框架, Hama可用於包括圖、矩陣和網路演算法在內的大規模、大數據計算。
ApacheFlume: 是一個分布的、可靠的、高可用的海量日誌聚合的系統,可用於日誌數據收集,日誌數據處理,日誌數據傳輸。
ApacheGiraph: 是一個可伸縮的分布式迭代圖處理系統, 基於Hadoop平台,靈感來自 BSP (bulk synchronous parallel) 和Google 的 Pregel。
ApacheOozie: 是一個工作流引擎伺服器, 用於管理和協調運行在Hadoop平台上(HDFS、Pig和MapRece)的任務。
ApacheCrunch: 是基於Google的FlumeJava庫編寫的Java庫,用於創建MapRece程序。與Hive,Pig類似,Crunch提供了用於實現如連接數據、執行聚合和排序記錄等常見任務的模式庫 ApacheWhirr: 是一套運行於雲服務的類庫(包括Hadoop),可提供高度的互補性。Whirr學支持Amazon EC2和Rackspace的服務。
ApacheBigtop: 是一個對Hadoop及其周邊生態進行打包,分發和測試的工具。
ApacheHCatalog: 是基於Hadoop的數據表和存儲管理,實現中央的元數據和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供關系視圖。
ClouderaHue: 是一個基於WEB的監控和管理系統,實現對HDFS,MapRece/YARN, HBase, Hive, Pig的web化操作和管理。

熱點內容
避孕套存儲箱 發布:2024-11-24 16:25:09 瀏覽:734
如何自己搭建雲伺服器干貨 發布:2024-11-24 16:22:08 瀏覽:370
安卓怎麼返回出廠系統 發布:2024-11-24 16:20:32 瀏覽:446
求生之路sp源碼 發布:2024-11-24 16:06:05 瀏覽:372
javaurl的正則表達式 發布:2024-11-24 15:53:45 瀏覽:245
c語言只可以執行編譯文件 發布:2024-11-24 15:53:33 瀏覽:756
126郵件伺服器地址 發布:2024-11-24 15:52:46 瀏覽:214
微信80安卓什麼時候更新動態 發布:2024-11-24 15:40:54 瀏覽:480
破天窩窩腳本 發布:2024-11-24 15:40:53 瀏覽:112
王者榮耀蘋果轉安卓怎麼轉的 發布:2024-11-24 15:40:49 瀏覽:677