大資料元件-Hive部署基於MySQL作為後設資料儲存
在講解內部實現前,我們再回顧下dn持久化檔案幾個重要的點:
dn可以配置多個目錄進行資料塊的儲存
每個這樣的目錄中,都會有一個或多個BP目錄(BlockPool,後面均簡稱為BP)
每個BP下存放各自正在寫的,已經寫完的block檔案,以及block的meta檔案
block資料塊在nn(namenode)中稱為block,在dn中稱為replica,叫法不同而已。
在dn的實現中,磁碟目錄用卷(volume)的概念進行描述,與之對應的是FsVolumeSpi介面和FsVolumeImpl實現類。也就是說配置檔案中每個指定的目錄,都有一個對應的FsVolumeImpl例項物件。
FsVolume中包含一個BlockPoolSlice的字典,記錄該目錄下的所有BP資訊,即一個BlockPoolSlice對應於一個BP。在BlockPoolSlice中,又以不同的欄位分別記錄了current、tmp、rbw、finalized等目錄的位置。
所有的FsVolumeImpl組成一個列表,封裝在FsVolumeList中。FsVolumeList內部還會根據磁碟目錄的是否可用分別存放在不同的列表中。
到這裡,所有的磁碟目錄資訊都已經串聯起來了,那麼關鍵的block資訊存放在哪了呢?
所有replica的資訊均由ReplicaMap進行維護,這裡封裝了一個map,以BlockPoolID為Key,儲存該BlockPool下的所有replica資料,map表中的value也是一個map表,以BlockID為key,記錄replica的詳細資訊。
另外,ReplicaInfo本身是一個抽象父類,不同的子類分別對應正在寫的、已經寫完的replica資訊,這樣就完整的記錄了所有的block資訊。
FsVolumeList與ReplicaMap封裝在FsDataset中,這樣就構成了DataNode中所有檔案系統資料集的抽象。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70016760/viewspace-2887463/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Hive -------- 使用mysql儲存hive後設資料,Mysql的安裝以及配置步驟HiveMySql
- 掌握Hive資料儲存模型Hive模型
- 基於Hive進行數倉建設的資源後設資料資訊統計:Hive篇Hive
- 基於python的大資料分析-pandas資料儲存(程式碼實戰)Python大資料
- 爬蟲資料儲存--基於MonogoDB爬蟲MonoGo
- 基於Hive的大資料分析系統Hive大資料
- 資料倉儲元件:Hive環境搭建和基礎用法元件Hive
- 重新學習Mysql資料庫3:Mysql儲存引擎與資料儲存原理MySql資料庫儲存引擎
- 好程式設計師大資料學習路線之hive儲存格式程式設計師大資料Hive
- 好程式設計師大資料培訓分享之hive儲存過程程式設計師大資料Hive儲存過程
- hive(4)——後設資料概述Hive
- 關於Mysql資料儲存,你瞭解多少?MySql
- MySQL 更改資料庫資料儲存目錄MySql資料庫
- 好程式設計師大資料培訓分享MySQL資料庫儲存引擎簡介程式設計師大資料MySql資料庫儲存引擎
- python儲存超大資料excel表格——大於65532Python大資料Excel
- 基於Hive進行數倉建設的資源後設資料資訊統計:Spark篇HiveSpark
- MySQL資料庫操作、儲存引擎MySql資料庫儲存引擎
- MySQL儲存毫秒資料的方法MySql
- MySql資料庫——儲存過程MySql資料庫儲存過程
- 成為MySQL DBA後,再看ORACLE資料庫(六、邏輯儲存結構)MySqlOracle資料庫
- 大資料4.2 -- hive資料庫大資料Hive資料庫
- Ubuntu 上更改 MySQL 資料庫資料儲存目錄UbuntuMySql資料庫
- #第9篇分享:python資料儲存-MySQL資料庫PythonMySql資料庫
- Elasticsearch 基於物件儲存使用快照資料遷移Elasticsearch物件
- 基於OneData的資料倉儲建設
- MySQL資料庫儲存引擎簡介MySql資料庫儲存引擎
- 爬蟲系列:使用 MySQL 儲存資料爬蟲MySql
- 基於Docker部署Oracle、MySQL等資料庫的資料檔案持久化DockerOracleMySql資料庫持久化
- 關於InnoDB表資料和索引資料的儲存索引
- 分散式資料恢復-hbase+hive分散式儲存資料恢復方案分散式資料恢復Hive
- 資料儲存(1):從資料儲存看人類文明-資料儲存器發展歷程
- 使用Hazelcast作為Spring資料儲存庫的開源案例ASTSpring
- 資料儲存--檔案儲存
- (十二)SparkSQL Catalog訪問Hive後設資料資訊SparkSQLHive
- 《MySQL 基礎篇》十二:InnoDB 儲存引擎的資料結構MySql儲存引擎資料結構
- [MySQL]為什麼非聚簇索引不儲存資料位置MySql索引
- 大資料分散式儲存的部署模式:分離式or超融合大資料分散式模式
- 雲資料建模:為資料倉儲設計資料庫資料庫