【Hadoop】大數據技術之 HDFS

目錄

一、HDFS 概述

1.1?HDFS 產出背景及定義

1.2?HDFS 優缺點

1.3?HDFS 組成架構

1.4?HDFS 文件塊大小

二、HDFS 的Shell 操作

三、HDFS 的讀寫流程(面試重點)

3.1?HDFS 寫數據流程

3.2?HDFS 讀數據流程

四、DataNode

4.1 DataNode 的工作機制

4.2?數據完整性


一、HDFS 概述

1.1?HDFS 產出背景及定義

隨著數據量越來越大,在一個操作系統存不下所有的數據,那么就分配到更多的操作系統管理的盤中,但是不方便管理和維護,迫切需要一種系統來管理多臺機器上的文件,這就是分布式文件管理系統。HDFS 只是分布式文件管理系統中的一種。

HDFS(Hadoop Distributed File System):它是一個文件系統,用于存儲文件,通過目錄樹來定位文件;其次,它是分布式的,由很多服務器聯合起來實現其功能,集群中的服務器有各自的角色。

HDFS 的使用場景:適合一次寫入,多次讀出的場景。一個文件經過創建、寫入和關閉
之后就不需要改變。

1.2?HDFS 優缺點

優點分析:

1.?高容錯性:數據自動保存多個副本。它通過增加副本的形式,提高容錯性。某一個副本丟失以后,它可以自動恢復。

2.?適合處理大數據:能夠處理數據規模達到GB、TB、甚至PB級別的數據;文件規模:能夠處理百萬規模以上的文件數量,數量相當之大。

3.?可構建在廉價機器上,通過多副本機制,提高可靠性。

缺點分析:

1.?不適合低延時數據訪問,比如毫秒級的存儲數據,是做不到的。

2. 無法高效的對大量小文件進行存儲。存儲大量小文件的話,它會占用NameNode大量的內存來存儲文件目錄和塊信息。這樣是不可取的,因為NameNode的內存總是有限的;

3.?不支持并發寫入、文件隨機修改。一個文件只能有一個寫,不允許多個線程同時寫;

1.3?HDFS 組成架構

NameNode(nn):就是Master,它是一個主管、管理者。
(1)管理HDFS的名稱空間;
(2)配置副本策略;
(3)管理數據塊(Block)映射信息;
(4)處理客戶端讀寫請求。

DataNode:就是Slave。NameNode下達命令,DataNode執行實際的操作。
(1)存儲實際的數據塊;
(2)執行數據塊的讀/寫操作。

Client:就是客戶端。

(1)文件切分。文件上傳HDFS的時候,Client將文件切分成一個一個的Block,然后進行上傳;
(2)與NameNode交互,獲取文件的位置信息;
(3)與DataNode交互,讀取或者寫入數據;
(4)Client提供一些命令來管理HDFS,比如NameNode格式化;
(5)Client可以通過一些命令來訪問HDFS,比如對HDFS增刪查改操作;

Secondary NameNode:并非NameNode的熱備。當NameNode掛掉的時候,它并不能馬上替換NameNode并提供服務。
(1)輔助NameNode,分擔其工作量,比如定期合并Fsimage和Edits,并推送給NameNode ;
(2)在緊急情況下,可輔助恢復NameNode。

1.4?HDFS 文件塊大小

HDFS中的文件在物理上是分塊存儲(Block ) , 塊的大小可以通過配置參數( dfs.blocksize)來規定,默認大小在Hadoop2.x/3.x版本中是128M,1.x版本中是64M。

HDFS塊的大小設置主要取決于磁盤傳輸速率。

二、HDFS 的Shell 操作

hadoop fs 具體命令 OR hdfs dfs 具體命令:

1. -ls: 顯示目錄信息

hadoop fs -ls / sanguo
命令作用示例
hadoop fs -ls <路徑>列出目錄內容hadoop fs -ls /user/hadoop
hadoop fs -mkdir <路徑>創建目錄hadoop fs -mkdir /data
hadoop fs -put <本地路徑> <HDFS路徑>上傳文件hadoop fs -put file.txt /data/
hadoop fs -get <HDFS路徑> <本地路徑>下載文件hadoop fs -get /data/file.txt ./
hadoop fs -cat <文件路徑>查看文件內容hadoop fs -cat /data/file.txt
hadoop fs -rm <文件路徑>刪除文件hadoop fs -rm /data/file.txt
hadoop fs -rm -r <目錄路徑>遞歸刪除目錄hadoop fs -rm -r /data/old
命令作用示例
hadoop fs -mv <源路徑> <目標路徑>移動/重命名文件hadoop fs -mv /data/file.txt /data/newname.txt
hadoop fs -cp <源路徑> <目標路徑>復制文件hadoop fs -cp /data/file.txt /backup/
hadoop fs -du -h <路徑>查看文件/目錄大小hadoop fs -du -h /data
hadoop fs -tail <文件路徑>查看文件末尾內容hadoop fs -tail /data/log.txt
命令作用示例
hadoop fs -chmod <權限> <路徑>修改權限hadoop fs -chmod 755 /data/file.txt
hadoop fs -chown <用戶:組> <路徑>修改所有者hadoop fs -chown hadoop:hadoop /data
hadoop fs -stat <格式> <路徑>查看文件狀態hadoop fs -stat "%F %u %g" /data/file.txt

三、HDFS 的讀寫流程(面試重點)

3.1?HDFS 寫數據流程

(1)客戶端通過Distributed FileSystem 模塊向NameNode 請求上傳文件,NameNode 檢查目標文件是否已存在,父目錄是否存在。

(2)NameNode 返回是否可以上傳。

(3)客戶端請求第一個 Block 上傳到哪幾個DataNode 服務器上。

(4)NameNode 返回3 個DataNode 節點,分別為dn1、dn2、dn3。

(5)客戶端通過FSDataOutputStream 模塊請求dn1 上傳數據,dn1 收到請求會繼續調用dn2,然后dn2 調用dn3,將這個通信管道建立完成。

(6)dn1、dn2、dn3 逐級應答客戶端。

(7)客戶端開始往dn1 上傳第一個Block(先從磁盤讀取數據放到一個本地內存緩存),以Packet 為單位,dn1 收到一個Packet 就會傳給dn2,dn2 傳給dn3;dn1 每傳一個packet會放入一個應答隊列等待應答。

(8)當一個Block 傳輸完成之后,客戶端再次請求NameNode 上傳第二個Block 的服務器。(重復執行3-7 步)。

3.2?HDFS 讀數據流程

(1)客戶端通過DistributedFileSystem 向NameNode 請求下載文件,NameNode 通過查詢元數據,找到文件塊所在的DataNode 地址。

(2)挑選一臺DataNode(就近原則,然后隨機)服務器,請求讀取數據。

(3)DataNode 開始傳輸數據給客戶端(從磁盤里面讀取數據輸入流,以Packet 為單位來做校驗)。

(4)客戶端以Packet 為單位接收,先在本地緩存,然后寫入目標文件。

四、DataNode

4.1 DataNode 的工作機制

(1)一個數據塊在DataNode 上以文件形式存儲在磁盤上,包括兩個文件,一個是數據本身,一個是元數據包括數據塊的長度,塊數據的校驗和,以及時間戳。

(2)DataNode 啟動后向NameNode 注冊,通過后,周期性(6 小時)的向NameNode 上報所有的塊信息。

(3)心跳是每3 秒一次,心跳返回結果帶有NameNode 給該DataNode 的命令如復制塊數據到另一臺機器,或刪除某個數據塊。如果超過10 分鐘沒有收到某個DataNode 的心跳,則認為該節點不可用。

(4)集群運行中可以安全加入和退出一些機器。

4.2?數據完整性

DataNode 節點上的數據損壞了,卻沒有發現,是否也很危險,那么如何解決呢?如下是DataNode 節點保證數據完整性的方法。
(1)當DataNode 讀取Block 的時候,它會計算CheckSum。

(2)如果計算后的CheckSum,與Block 創建時值不一樣,說明Block 已經損壞。

(3)Client 讀取其他DataNode 上的Block。

(4)常見的校驗算法crc(32),md5(128),sha1(160)

(5)DataNode 在其文件創建后周期驗證CheckSum。

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

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

相關文章

Spring Boot WebFlux流式返回全攻略:從基礎到企業級實踐

目錄 流式返回的核心價值與適用場景WebFlux核心機制解析基礎流式接口開發實戰企業級應用場景與優化方案客戶端對接全方案常見問題與調優策略未來發展趨勢1. 流式返回的核心價值與適用場景 1.1 傳統響應模式的局限性 傳統Spring MVC采用同步阻塞模型,在以下場景面臨挑戰: 大…

AI浪潮下,第五消費時代的商業進化密碼

解鎖 AI 與第五消費時代 在時代的長河中,消費浪潮的更迭深刻地影響著商業的格局。當下,我們正處于第五消費時代,這個時代有著鮮明的特征,如老齡化、單身化趨勢日益顯著,社會逐漸步入低欲望、個性化與共享化并行的階段 。隨著人工智能技術的飛速發展,它在商業領域的滲透也…

氫氣傳感器維護常見問題及解決方法

氫氣傳感器在工業生產和氫能源系統中扮演著關鍵角色&#xff0c;用于實時檢測氫氣濃度以預防爆炸和中毒事故。然而&#xff0c;傳感器的維護過程中可能會遇到一些常見問題&#xff0c;這些問題可能會影響傳感器的性能和檢測準確性。本文將詳細探討這些常見問題及其解決方法。 1…

【普及+/提高】洛谷P2613 ——【模板】有理數取余

見&#xff1a;P2613 【模板】有理數取余 - 洛谷 題目描述 給出一個有理數 cba?&#xff0c;求 cmod19260817 的值。 這個值被定義為 bx≡a(mod19260817) 的解。 輸入格式 一共兩行。 第一行&#xff0c;一個整數 a。 第二行&#xff0c;一個整數 b。 輸出格式 一個整…

RK常見系統屬性設置/獲取命令使用

設置有線mac地址 ifconfig eth0 hw ether 021234567000 讀取mac地址 public static String getEthMacAddressBySysFs() { try (BufferedReader reader new BufferedReader(new FileReader("/sys/class/net/eth0/address"))) { return reader.r…

文章記單詞 | 第115篇(六級)

一&#xff0c;單詞釋義 solar /?so?l?r/ adj. 太陽的&#xff1b;太陽能的bruise /bru?z/ n. 瘀傷&#xff1b;擦傷 v. &#xff08;使&#xff09;青腫&#xff1b;挫傷thus /?s/ adv. 因此&#xff1b;這樣&#xff1b;于是drink /dr??k/ v. 喝&#xff1b;飲 n. 飲…

9大開源AI智能體概況

項目GitHub 鏈接開發組織核心功能應用領域典型應用案例活躍度AutoGPT (176k?)鏈接Significant Gravitas 團隊基于 GPT-4 的自主代理&#xff0c;能夠自動分解任務并生成多步提示循環執行&#xff0c;支持調用工具&#xff08;如網絡搜索、文件操作等&#xff09;。自動化辦公、…

SpringBoot3整合WebSocket

一、WebSocket簡介 WebSocket協議是基于TCP的一種新的網絡協議。它實現了瀏覽器與服務器全雙工(full-duplex)通信&#xff0c;允許服務器主動向客戶端推送數據。 與傳統的 HTTP 請求-響應模式不同&#xff0c;WebSocket 在建立連接后&#xff0c;允許服務器和客戶端之間進行雙向…

FTP Bounce Attack:原理、影響與防御

一、引言 FTP&#xff08;文件傳輸協議&#xff09;是一種用于在網絡上進行文件傳輸的協議&#xff0c;廣泛應用于各種網絡環境中。然而&#xff0c;FTP協議的安全性問題一直備受關注&#xff0c;其中FTP Bounce Attack&#xff08;FTP跳轉攻擊&#xff09;是一種具有代表性的…

文獻閱讀——NeuroBayesSLAM

原文地址 1.核心理論&#xff1a;貝葉斯多感官整合框架 目標&#xff1a;結合視覺線索 c v i c_{vi} cvi?和前庭線索 c v e c_{ve} cve?來估計頭部方向或位置 θ 貝葉斯公式 p ( θ ∣ c v i , c v e ) ∝ p ( c v i ∣ θ ) p ( c v e ∣ θ ) p ( θ ) p(\theta | c_{vi…

sentinel核心原理-高頻問題

核心原理 ?限流實現機制? ?滑動窗口算法?&#xff1a;將時間切分為子窗口動態統計QPS&#xff0c;避免固定窗口的邊界問題。?責任鏈模式?&#xff1a;通過NodeSelectorSlot、FlowSlot等Slot鏈式處理限流邏輯。 ?熔斷降級策略? ?慢調用比例?&#xff1a;當慢請求比例…

DataX 的大概簡單介紹(與Kettle做對比介紹)

DataX 是由阿里巴巴開源的輕量級 ETL 工具&#xff0c;專為批量數據同步設計&#xff0c;主打 “高性能、易擴展、跨數據源”。如果你熟悉 Kettle&#xff0c;可把它理解為 “更適合大數據場景的 ETL 選手”。以下從核心特性、應用場景、與 Kettle 對比等角度通俗解析&#xff…

通過上傳使大模型讀取并分析文件實戰

一、技術背景與需求分析 我們日常在使用AI的時候一定都上傳過文件&#xff0c;AI會根據用戶上傳的文件內容結合用戶的請求進行分析&#xff0c;給出用戶解答。但是這是怎么實現的呢&#xff1f;在我們開發自己的大模型應用時肯定是不可避免的要思考這個問題&#xff0c;今天我會…

RHCSA Linux 系統 硬盤管理

Linux 系統 硬盤管理 1扇區 512B&#xff0c;分區 多個扇區 512B 查看硬盤命令 [rootlocalhost ~]# lsblk 1.一般存儲相關操作 (1) 分區 ① MBR 分區 ?分區數量限制&#xff1a;主分區 0 - 4 個&#x…

計算機網絡——Session、Cookie 和 Token

在 Web 開發中&#xff0c;Session、Cookie 和 Token 是實現用戶會話管理和身份驗證的核心技術。它們既有聯系&#xff0c;也有明顯區別。以下從定義、原理、聯系、區別和應用場景等方面詳細解析。 一、基本定義與原理 1. Cookie 定義&#xff1a; 是瀏覽器存儲在客戶端的小…

雙均線量化交易策略指南

策略原理 采用兩條不同周期的簡單移動平均線&#xff08;SMA&#xff09;&#xff1a; 短期均線&#xff1a;5日線&#xff08;快速反應價格變化&#xff09;長期均線&#xff1a;20日線&#xff08;反映長期趨勢&#xff09; 交易信號生成規則&#xff1a; 當 5日線 > …

視頻太大?用魔影工廠壓縮并轉MP4,畫質不打折!

在日常生活中&#xff0c;我們常常需要將視頻文件轉換成不同的格式以適應各種設備或平臺的播放需求。魔影工廠作為一款功能強大且操作簡單的視頻轉換工具&#xff0c;深受用戶喜愛。本文中簡鹿辦公將手把手教你如何使用魔影工廠將視頻轉換為MP4格式&#xff0c;并進行個性化設置…

大騰智能 PDM 系統:全生命周期管理重塑制造企業數字化轉型路徑

在當今激烈的市場競爭中&#xff0c;產品迭代速度與質量已成為企業生存與發展的核心命脈。面對客戶需求多元化、供應鏈協同復雜化、研發成本管控精細化等挑戰&#xff0c;企業亟需一套能夠貫穿產品全生命周期的數字化解決方案。 大騰智能PDM系統通過構建覆蓋設計、研發、生產、…

CodeBuddy一騰訊內部已有超過 85% 的程序員正在使用de編程工具

大家好&#xff0c;我是程序員500佰&#xff0c;目前正在前往獨立開發路線&#xff0c;我會在這里分享關于編程技術、獨立開發、技術資訊以及編程感悟等內容。 如果本文能給你提供啟發和幫助&#xff0c;還請留下你的一健三連&#xff0c;給我一些鼓勵&#xff0c;謝謝。 本文直…

解鎖 Zblog 資訊系統:502 錯誤修復與雙域名適配的實戰秘籍

在網絡世界的激烈競爭中&#xff0c;資訊類網站如同戰場上的士兵&#xff0c;每一次頁面加載、每一次內容展示都關乎著用戶的留存與轉化。而 Zblog 作為備受青睞的資訊系統&#xff0c;承載著眾多站長的流量夢想。然而&#xff0c;在網站運營過程中&#xff0c;502 錯誤頁面的突…