大資料初學習之分布式儲存HDFS理論概述

2021-08-28 21:09:19 字數 2649 閱讀 2643

寫流程讀流程

備份機制

為什麼稱稱node01為namenode:

持久化:因為記憶體不穩定,可以將資料持久化到磁碟上

持久化的詳細過程

什麼是大資料?

短時間內快速的產生海量的多種多樣的有價值的資料

多台伺服器平行計算(分布式計算)

1、分布式的批處理

攢一段時間的資料,在未來的某乙個時間來處理這批資料

2、分布式的流處理

資料不需要攢,每產生一條資料,立馬對這條資料進行處理,將結果推送前端頁面儲存到資料庫中形成報表給老闆(看到的時候都是有誤差的,報表才是精準值)

機器學習 包含深度學習(神經網路)

機器學習是一門新興技術,凡是**類的工作需要用到機器學習

hdfs

client客戶端

根據預設大小或者使用者自定義的大小切分blovk 預設block大小:128m。 以位元組的方式讀,到128m了以後對namenode做匯報 整個檔案大小/128m=block塊

node01–namenode

datanode

對namenode做匯報:匯報當前節點的儲存情況

寫流程讀流程

1、由於namenode掌管著每個block塊的位置資訊,所以client向namenode請求讀取的時候可以拿到block的位置資訊。

2、client拿著需要檔案的block塊的位置找datanode去讀

讀資料的流程圖

備份機制

集群外提交:利用客戶端去提交

1、第乙個block儲存在負載不是很高的一台伺服器上

2、第乙個備份的block儲存在與第乙個block不同機架的隨機乙個伺服器上

3、第2個備份的block儲存在與第乙個備份相同的機架的隨機伺服器上

4、其他備份隨機存

集群內提交:datanode節點作為客戶端進行提交(不提倡,有網路io問題)

第乙個block存放在當前節點上,其它與集群外提交相同

為什麼稱稱node01為namenode:

角色在集群中都是由程序來表現的(乙個節點可以有多個角色(程序))

因為在node01節點上啟動了乙個namenode程序

持久化:因為記憶體不穩定,可以將資料持久化到磁碟上

namenode負載太高:集群不可用,所以將持久化的工作給secondarynamenode(namenode助理)做

持久化的詳細過程

1、namenode啟動的時候建立出來兩個檔案:edit(日誌檔案)和fsimage隨著集群執行,將edit和fsimage拉到secondnamenode中,其將會根據edit裡的操作進行重演(產生相同元資料)

2、重演之後將元資料寫在fsimage中,產生fsimageckpt推給namnode

防止持久化的資料丟失:在重演過程中對edit檔案的改變寫到edit.new中

合併觸發機制:

並不是所有的元資料都會持久化

除了block的位置資訊,其他的元資料都會持久化(變動頻率高變動大,id號不統一。這樣的話,當hdfs集群重啟,namenode中的元資料就會有所缺失無法對外提供服務)

解決:hdfs啟動的時候,所有的dn都會向nn匯報當前節點的block資訊

datanode也叫從節點

rack:機架 一般來說每個機架有10臺伺服器

機架上的伺服器節點也叫datanode

集群成功執行之後才會有心跳資訊
許可權:依據linux系統的使用者系統預設許可權(防止好人做壞事,不能防壞人做壞事)

安全模式:用乙個命令啟動hdfs集群,這個hdfs在一段時間是不可用的,這段時間叫做安全模式

1、載入fsimage,把資料載入到記憶體中

2、如果edits檔案不為空,那麼namenode自己來合併

namenode做不做合併?做,而且只做一次

3、檢查datenode的健康情況

4、如果有dn掛掉了,指揮做備份

處於安全模式的過程中能不能讀檔案內容?
如果fsimage已經載入到記憶體中,可以檢視檔案目錄,但是無法讀取

適合批處理:計算找資料(避免大量的磁碟io)

搭建集群

角色–與程序對應

搭建集群的模式有三種:

1、偽分布式:在一台伺服器上啟動多個程序,分別表示各個角色

2、完全分布式:在多台伺服器上,每台伺服器啟動不同角色的程序,使用多台伺服器組成hdfs集群

node01:namenode

node02:secondarynamenode datanode

node03:datanode

node04:datanode

block的副本數加自己本身(預設三個)<=datanode節點數

3、高可用的完全分布式

node03也可作為namenode

架構設計之分布式資料訪問

1 前言 看到這個題目也許有的朋友會問對資料訪問層擴充套件為分布式有沒有意義,因為不管怎樣到最後都是對資料庫進行訪問,瓶頸在資料庫上。對於這個問題我的答案是 我們提供分布式的查詢能力然後和快取結合讓資料庫中的資料快取起來 解決這個問題後我們來進入正題,如何對資料訪問層進行封裝。其實資料訪問層的方法我...

Spark系列之分布式資料集 DataFrame

目錄 1 df的建立 2 臨時表 3 sql查詢 4 rdd到df的轉換 5 df的api 簡介dataframe是一種不可變的分布式資料集,資料被組織成指定的列。和資料庫中的表類似。以下的spark變數均由sparksession建立。1 dataframe的建立 jsondf spark.rea...

分布式儲存學習入門(二)

雙活,災備最強保護 rto recovery time object,恢復時間目標 資訊系統從災難狀態恢復到可執行狀態所需的時間 用來衡量容災系統的業務恢復能力 數小時至一天。rpo recovery point time,恢復點目標 業務系統所允許在災難過程中的最大資料丟失量 衡量容災系統的資料冗...