HDFS分散式儲存
1. Hadoop歷史:
1.1建立者: Doug Cutting
1.2名字起源: Doug Cutting 的孩子的棕黃色大象玩具的名字
1.3三駕馬車:
谷歌的三駕馬車: GFS、MapReduce和BigTable
根據谷歌的三駕馬車得到了:HDFS、Hadoop、HBase
1.4hadoop生態圈:
HDFS:分散式儲存
Yarn:分散式資源管理器
Mapreduce:分散式計算框架
common:公共部分
2.HDFS儲存原理:
2.1各個角色及其作用:
NameNode:
1.接受客戶端的讀寫請求
2.管理後設資料:
2.1上傳檔案的許可權
2.2上傳檔案的屬主以及屬組
2.3上傳檔案的時間
2.4上傳檔案的block數以及ID號
2.5每一個Block的位置資訊是由DN在叢集啟動之時彙報的,不會持久化
2.6各個DN的位置資訊
3.管理DN
DataNode:
1.接受客戶端的讀請求
2.儲存block塊
3.向active NN彙報心跳
4.構建pipeline的管道
5.管理本機上的block後設資料
SNN:
SecondryNameNode 負責持久化,拉取NN節點上的edtis+fsimages檔案 合併
合併過程:
檔案拉取之時,在NN節點上會建立edits_new目的就是為了儲存在合併期間對HDFS的操作
1.基於拉來的edits檔案的重演,產生後設資料
2.將重演產生的後設資料合併到fsimages中
3.將合併後f’simages推送給NN
4.將edits.new檔案的字尾去掉
合併的觸發機制:
1.超過3600S就合併一次
2.edits檔案大小超過64M
ZKFC:
1.監控各自的NN,將監控的情況彙報給zk叢集
2.接受zk的選舉結果,確認一下另外一個NN是否真的掛了,將自己監控的NN提升為active
Journalone:
1.寫資料的時候,只需要保證半數以上的即誒但寫入成功就可以了
2.最終一致性/弱一致性
3.儲存的是edits
備用的NN:
1.監控journalone中資料變化,實時更新自己的記憶體資料
2.將記憶體中後設資料持久化到fsimages中,然後推送到NN
備份機制:
1.如果是叢集外操作們第一個block儲存在負載不高的節點上(預設128M dfs.blocksize 嚴格按照位元組切割,如果儲存的是中文,會出現亂碼問題)
2.如果叢集內操作,在本機
第二個block在其他機架隨機一臺伺服器上
第三個block在與第二個block同機架的其他節點上
HDFS的讀寫流程:
讀流程:
1.client訪問NameNode,查詢後設資料資訊,獲得這個檔案的資料塊位置列表,返回輸入流物件。
2.就近挑選一臺datanode伺服器,請求建立輸入流 。
3.DataNode向輸入流中中寫資料,以packet為單位來校驗。
4.關閉輸入流
寫流程:
1.client計算block的數量,切割大檔案成一個個block
2.使用者端client向NameNode彙報上傳檔案的許可權、資料塊block數和上傳時間,這些內容在此時被載入到NameNode的記憶體中。
3.請求一個id號和請求存放的block位置
4.NameNode將當前負載不高的DataNode的地址傳送給client
5.將block切割成一個個packet(64K),然後源源不斷地往Pipeline管道(多個備份和一份資料)中傳送,實現並行儲存。
6.DataNode儲存完一個塊後向NameNode彙報當前的儲存情況(block的位置),此時此資訊被載入到NameNode記憶體中。
搭建叢集的三種模式:
1.偽分散式,測試環境使用
2.完全分散式: hdfs-site.xml、core-site.xml、 slaves從節點hostname
3.高可用的完全分散式:
3.1 hdfs-site.xml、core-site.xml、 slaves從節點hostname、
3.2格式化、
3.3將本機的NN啟動、
3.4去備用的NN節點,同步後設資料、
3.5格式化ZKFC(先啟動zookeeper)、
3.6關閉所有節點、
3.7start-dfs.sh:
3.7.1安全模式1、NN會將fsimage與edits合併 2、檢查各個及誒點上的block塊以及副本是否符合要求,若不符合要求,指揮儲存資料丟失的DN做備份 3、檢查各個DN的健康狀況
3.7.2正常對外提供儲存服務
HDFS的優缺點:
1.優點:
1.1副本機制,所以資料更安全
1.2因為是分散式儲存,所以適合批處理
1.3高可用性
1.4後設資料持久化
1.5禁掉一些功能,使叢集更加完美(修改功能,檔案一旦上傳,就不能修改block的大小)
2.缺點:
1.無法毫秒級的讀寫資料:讀寫複雜需要找nn請求,形成管道,檔案切割block packet
2.不適合儲存大量的小檔案:容易造成後設資料過多,NN記憶體溢位,解決方法:1.將小檔案合併成打檔案、2.聯邦機制
3.不能併發寫入,但是可以併發的讀
JAVAAPI:
準備環境:
1.本機配置HADOOP_HOME
2.替換bin目錄
3.修改使用者名稱
4.匯入JAR
5.安裝外掛,方便在ecplise中操作叢集
相關文章
- 什麼是HDFS 分散式儲存分散式
- Hadoop HDFS 3.3.1分散式儲存搭建Hadoop分散式
- HDFS分散式儲存的意義及技術解析分散式
- 必須掌握的分散式檔案儲存系統—HDFS分散式
- HDFS分散式儲存中NameNode 和DataNode 有什麼區別?分散式
- 分散式檔案儲存hdfs簡介及常用命令分散式
- Hadoop 三劍客之 —— 分散式檔案儲存系統 HDFSHadoop分散式
- 分散式檔案系統HDFS,大資料儲存實戰(一)分散式大資料
- Redis 分散式儲存Redis分散式
- 分散式儲存概述分散式
- Hdfs儲存策略
- Hadoop 分散式儲存分散式計算Hadoop分散式
- DAOS 分散式非同步物件儲存|儲存模型分散式非同步物件模型
- 分散式儲存ceph 物件儲存配置zone同步分散式物件
- 分散式儲存轉崗記分散式
- 分散式儲存技術概念分散式
- Gartner:浪潮儲存進入分散式儲存前三分散式
- 哪些企業需要分散式式儲存?分散式
- 06、hdfs檔案儲存
- 分散式儲存高可用設計分散式
- FastDFS分散式儲存原理簡介AST分散式
- 搭建FastDFS分散式儲存環境AST分散式
- 分散式儲存glusterfs詳解【轉】分散式
- GlusterFS企業分散式儲存【轉】分散式
- CEPH分散式儲存搭建(物件、塊、檔案三大儲存)分散式物件
- HDFS分散式叢集搭建分散式
- Ceph分散式儲存技術解讀分散式
- python如何分散式儲存檔案?Python分散式
- 杉巖分散式儲存解決方案分散式
- Bayou複製分散式儲存系統分散式
- 分散式儲存ceph之快速安裝分散式
- GlusterFS分散式儲存學習筆記分散式筆記
- 【操作教程】SequoiaDB分散式儲存教程分散式
- 分散式儲存產業方陣:2022年分散式儲存發展白皮書(附下載)分散式產業
- HDFS分散式檔案系統分散式
- 分散式檔案系統-HDFS分散式
- 海量圖片儲存,杉巖分散式物件儲存輕鬆應對分散式物件
- ES 筆記三十二:文件分散式儲存筆記分散式