【大數據】HDFS

文章目錄

    • @[toc]
      • HDFS 1.0
        • NameNode
          • 維護文件系統命名空間
          • 存儲元數據
          • 解決NameNode單點問題
        • SecondaryNameNode
        • 機架感知
        • 數據完整性校驗
          • 校驗和
          • 數據塊檢測程序DataBlockScanner
        • HDFS寫流程
        • HDFS讀流程
        • HDFS與MapReduce本地模式
        • Block大小
      • HDFS 2.0
        • NameNode HA
        • NameNode Federation
        • HDFS Snapshot
        • 緩存
        • ACL
        • Block大小

因上努力

個人主頁:丷從心·

系列專欄:大數據

果上隨緣


HDFS 1.0

NameNode
維護文件系統命名空間
存儲元數據
  • 元數據存儲在內存中
  • 維護文件名 → B l o c k \rightarrow Block Block B l o c k → D a t a N o d e Block \rightarrow DataNode BlockDataNode的映射關系
  • 持久化元數據的文件是 f s i m a g e fsimage fsimage
  • 所有對元數據的操作都保存在內存中并被持久化到文件 e d i t l o g s edit \ logs edit?logs
  • e d i t l o g s edit \ logs edit?logs文件和 f s i m a g e fsimage fsimage文件會被 S e c o n d a r y N a m e N o d e SecondaryNameNode SecondaryNameNode周期性地合并
解決NameNode單點問題
  • H a d o o p Hadoop Hadoop元數據寫入到本地文件系統的同時再實時同步到一個遠程掛載的網絡文件系統( N F S NFS NFS)中
  • N a m e N o d e NameNode NameNode發生故障時 S e c o n d a r y N a m e N o d e SecondaryNameNode SecondaryNameNode會通過自己合并的命名空間鏡像 f s i m a g e fsimage fsimage副本來恢復 N a m e N o d e NameNode NameNode,但是 S e c o n d a r y N a m e N o d e SecondaryNameNode SecondaryNameNode保存的狀態總是滯后于 N a m e N o d e NameNode NameNode,難免會丟失部分數據
SecondaryNameNode

1

  • N a m e N o d e NameNode NameNode在下次重啟時會使用新的 f s i m a g e fsimage fsimage文件,從而減少重啟時間
機架感知
  • 機架感知是 B l o c k Block Block副本放置策略
  • 第一個副本放在客戶端節點,如果客戶端是集群外的一臺機器,就隨機選擇節點,但是會避免挑選太滿或者太忙的節點
  • 第二個副本放在不同機架的節點
  • 第三個副本放在與第二個副本同機架但是不同節點上
數據完整性校驗
校驗和
  • 在第一次進入系統時計算數據的校驗和,在通道傳輸后,如果新生成的校驗和不完全匹配原始的校驗和,那么數據就會被認為是損壞的
數據塊檢測程序DataBlockScanner
  • D a t a N o d e DataNode DataNode節點上開啟一個后臺線程,來定期驗證存儲在它上的所有塊,防止物理介質出現損減而造成的數據損壞
  • 一旦發現數據塊損壞, D a t a N o d e DataNode DataNode會接收到 N a m e N o d e NameNode NameNode發送的 B l o c k Block Block修復指令
HDFS寫流程

2

  • F S D a t a O u t p u t S t r e a m FSData \ OutputStream FSData?OutputStream將原始數據切分成數據塊并寫入一個隊列
  • 數據弱一致性:第一個副本寫入后就立刻返回 A C K ACK ACK
HDFS讀流程

3

HDFS與MapReduce本地模式
  • 數據不移動,代碼邏輯移動
Block大小
  • H D F S 1.0 HDFS \ 1.0 HDFS?1.0默認 B l o c k Block Block大小為 64 M B 64 MB 64MB

HDFS 2.0

NameNode HA

4

  • 運行 A c t i v e N a m e N o d e Active \ NameNode Active?NameNode S t a n d b y N a m e N o d e Standby \ NameNode Standby?NameNode的機器需要相同的硬件配置
  • J o u r n a l N o d e JournalNode JournalNode本質是共享的網絡文件系統,由奇數個節點組成,用于存儲 e d i t l o g s edit \ logs edit?logs
  • F a i l o v e r C o n t r o l l e r FailoverController FailoverController本質是 Z o o K e e p e r ZooKeeper ZooKeeper的客戶端,監控 N a m e N o d e NameNode NameNode狀態信息,實現故障轉移
NameNode Federation

5

  • N a m e N o d e F e d e r a t i o n NameNode \ Federation NameNode?Federation本質是命名空間的分離,解決了 N a m e N o d e NameNode NameNode內存資源不足的問題
  • 一個 N a m e s p a c e Namespace Namespace對應一個 B l o c k P o o l Block \ Pool Block?Pool,即一個 N a m e s p a c e Namespace Namespace下的所有 B l o c k Block Block的集合
  • 通過視圖文件系統 V i e w F S ViewFS ViewFS管理全局 N a m e s p a c e Namespace Namespace
HDFS Snapshot
  • S n a p s h o t Snapshot Snapshot常用來作為數據備份
  • S n a p s h o t Snapshot Snapshot只記錄了文件系統元數據信息,并沒有進行數據的拷貝
緩存
  • H D F S 2.0 HDFS \ 2.0 HDFS?2.0支持集中式緩存,可以明確指定要緩存數據
  • 支持對非遞歸目錄和文件的緩存
ACL
  • H D F S 2.0 HDFS \ 2.0 HDFS?2.0支持 A C L ACL ACL管理
Block大小
  • H D F S 2.0 HDFS \ 2.0 HDFS?2.0默認 B l o c k Block Block大小為 128 M B 128 MB 128MB

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10694.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10694.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10694.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用注解的方式進行配置RabbitMQ

引入依賴&#xff1a; <dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-rabbit-test</artifactId><scope>test</scope></dependency> 配置application.yml server:port: 8082 spring:rabbitmq…

pyqt5報錯:AttributeError: ‘mywindow‘ object has no attribute ‘setCentralWidget‘

第一種解決方法是&#xff1a;AttributeError: ‘mywindow‘ object has no attribute ‘setCentralWidget‘_attributeerror: mywindow object has no attribute-CSDN博客 第二種解決方法是&#xff08;推薦&#xff09;&#xff1a; 直接把這段代碼復制在 ui轉 py文件的后面…

什么是JVM中的程序計數器

在計算機的體系結構中&#xff1a; 程序計數器&#xff08;Program Counter&#xff09;&#xff0c;通常縮寫為 PC&#xff0c;是計算機體系結構中的一個寄存器&#xff0c;用于存儲下一條指令的地址。程序計數器是控制單元的一部分&#xff0c;它的作用是確保程序能夠按正確…

用 Python 和 AkShare 進行個股數據清洗:簡易多功能方法

標題:用 Python 和 AkShare 進行個股數據清洗:簡易多功能方法 簡介: 本文介紹了如何使用 Python 和 AkShare 庫對個股數據進行清洗和處理。個股數據經常需要進行清洗以用于分析、建模或可視化。我們將介紹一些簡單但功能強大的方法,包括數據加載、缺失值處理、重復值檢測和…

心理應用工具包 psychtoolbox 繪制小球走迷宮

psychtoolbox 是 MATLAB 中的一個工具包&#xff0c;對于科研人員設計實驗范式來說是不二之選&#xff0c;因為它可以操作計算機的底層硬件&#xff0c;精度可以達到幀的級別。 文章目錄 一、實驗目的二、psychtoolbox 的下載安裝三、Psychtoolbox 的基本使用四、完整代碼 一、…

不同數據類型的內部秘密----編程內幕(2)

Q&#xff1a; char類型是如何被當成int處理的&#xff1f; A: 我們可以看看char類型變量在何時才會被當做int處理. #include <stdio.h>int main() {char ch;ch a;printf("%c\n", ch);return 0; } 匯編代碼如下&#xff1a; hellomain:0x100000f60 <0&…

修改了環境變量~/.bashrc后 報錯 命令 “dirname” 可在以下位置找到 * /bin/dirname * /usr/bin/dirname

問題如下&#xff1a; 修改了~/.bashrc后加入了環境變量之后報錯&#xff0c;如下所示 (base) jiedell:~/桌面$ source ~/.bashrc 命令 “dirname” 可在以下位置找到 * /bin/dirname * /usr/bin/dirname 由于 /usr/bin:/bin 不在 PATH 環境變量中&#xff0c;故無法找到該…

在Linux上安裝并啟動Redis

目錄 安裝gcc環境 上傳redis文件方法一&#xff1a;sftp 上傳redis文件方法二&#xff1a;wget 啟動redis-server ctrlc關閉redis-server 參考文章&#xff1a;Linux 安裝 Redis 及踩坑 - 敲代碼的阿磊 - 博客園 (cnblogs.com) 準備&#xff1a;打開VMware Workstation&am…

pair對組創建

創建方式1: pair<type,type> p(value1,value2); pair<string, int> p("Tom", 20); cout << "name:" << p.first << "age:" << p.second << endl; 創建方式2: pair<type,type> pmake_pair(v…

mysql權限分類

USAGE --無權限,只有登錄數據庫,只可以使用test或test_*數據庫 ALL --所有權限 select/update/delete/super/slave/reload --指定的權限 with grant option --允許把自己的權限授予其它用戶(此用戶擁有建立賬號的權限) 權限級別&#xff1a; 1、. &#xff0d;&#xff0d;全…

C語法:for循環執行順序

今天下編寫代碼時遇到了如下情況&#xff1a;期望是輸出 i1,j2 i1,j3 i1,j4 i2,j3 int main(void) {int i,j;for(i1;i<3;i){for(j1;j!i&&j<4;j){printf("i%d,j%d\n",i,j);}}return 0; }實際輸出結果&#xff1a; i2,j1 分析上述代碼&#xff1a…

商務分析方法與工具(九):Python的趣味快捷-Pandas處理公司財務數據集思路

Tips&#xff1a;"分享是快樂的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不僅有知識的海洋&#x1f30a;&#xff0c;還有滿滿的正能量加持&#x1f4aa;&#xff0c;快來和我一起分享這份快樂吧&#x1f60a;&#xff01; 喜歡我的博客的話&#xff0c;記得…

LangChain:大模型框架的深度解析與應用探索

在數字化的時代浪潮中&#xff0c;人工智能技術正以前所未有的速度蓬勃發展&#xff0c;而大模型作為其中的翹楚&#xff0c;以生成式對話技術逐漸成為推動行業乃至整個社會進步的核心力量。再往近一點來說&#xff0c;在公司&#xff0c;不少產品都戴上了人工智能的帽子&#…

初識C語言——第十八天

循環while/do while while 語法結構 while(表達式) 循環語句; break:在while循環中&#xff0c;break用于永久的終止循環 continue:在while循環中&#xff0c;continue的作用是跳過本次循環continue后面的代碼 直接去判斷部分&#xff0c;看是否進行下一次循環。 注意事項…

Logstash詳解

Logstash詳解&#xff1a;構建強大日志收集與處理管道的利器 一、引言 在大數據和云計算的時代&#xff0c;日志數據作為企業運營和故障排查的重要依據&#xff0c;其收集、處理和分析能力顯得尤為重要。Logstash&#xff0c;作為一款強大的日志收集、處理和轉發工具&#xf…

[AI OpenAI-doc] 安全最佳實踐

使用我們的免費 Moderation API OpenAI 的 Moderation API 是免費使用的&#xff0c;可以幫助減少您完成中不安全內容的頻率。或者&#xff0c;您可能希望開發自己的內容過濾系統&#xff0c;以適應您的使用情況。 對抗性測試 我們建議對您的應用進行“紅隊測試”&#xff0…

即插即用篇 | YOLOv8引入軸向注意力 Axial Attention | 多維變換器中的軸向注意力

本改進已集成到 YOLOv8-Magic 框架。 我們提出了Axial Transformers,這是一個基于自注意力的自回歸模型,用于圖像和其他組織為高維張量的數據。現有的自回歸模型要么因高維數據的計算資源需求過大而受到限制,要么為了減少資源需求而在分布表達性或實現的便捷性上做出妥協。相…

解決wangEditor使用keep-alive緩存后,調用editor.cmd.do()失敗

前提&#xff1a;wangeditor版本&#xff1a;4.7.11 vue版本&#xff1a;vue2 問題&#xff1a;在使用wangeditor富文本編輯器時&#xff0c;需求需要通過點擊一個按鈕&#xff0c;手動插入定義好的內容&#xff0c;所以使用了 editor.cmd.do(insertHTML, ....) 方法新增…

青少年軟件編程(Python)等級考試試卷(二級)2024年3月

2024.03電子學會青少年軟件編程 Python二級 等級考試試卷 一、單選題 1.期末考試結束了&#xff0c;全班的語文成績都儲存在列表score 中&#xff0c;班主任老師請小明找到全班最高分&#xff0c;小明準備用Python 來完成&#xff0c;以下哪個選項&#xff0c;可以獲取最高分…

較難題 鏈表的回文結構

本題來自鏈表的回文結構_牛客題霸_牛客網 (nowcoder.com) 234. 回文鏈表 - 力扣&#xff08;LeetCode&#xff09; 題面&#xff1a; 對于一個鏈表&#xff0c;請設計一個時間復雜度為O(n),額外空間復雜度為O(1)的算法&#xff0c;判斷其是否為回文結構。 給定一個鏈表的頭…