簡單快速入手hdfs

2021-09-27 13:24:29 字數 2409 閱讀 1702

為什麼會存在這篇文章,是因為我產生了以下問題,為了理清關係並解決疑惑。

什麼是hdfs?

需要搭建什麼樣的環境?

hdfs只是乙個名詞,還是需要人為的去搭建環境?

很多文章都在說hdfs的原理,我就想知道需不需要我去搭建?

來自hadoop官網的截圖:

簡單點,hadoop處理大資料,那麼必然面對資料的儲存問題,所以有了hdfs(分布式檔案儲存系統)。

hdfs是hadoop的重點元件之一,提供對資料儲存的介面訪問。

須知:a.

分布式。

如果乙個檔案非常大,單台伺服器無法處理

第一步,分割成小檔案

第二步,將小檔案分散到多台伺服器之上。伺服器平行計算,提高效率。

這就是乙個分布式的儲存。

b.副本。

為防止因為各種原因造成的檔案丟失(比如,由某台機器損壞而導致的檔案丟失),對乙個檔案,我們應該儲存幾個副本,備份。

c.hdfs的原理與hdfs的實現

(1)先解釋namenode與datenode:什麼是?&&存在的原因

由一台伺服器到多台伺服器

伺服器集群:將很多伺服器集中起來一起進行同一種服務,集群可以利用多個計算機進行平行計算從而獲得很高的計算速度。

hdfs部署在乙個比較大的伺服器集群上。

為了可以更好的提高效率,我們從眾多的伺服器中選擇一台,讓她作為乙個中心伺服器,負責排程 、對其他伺服器是否正常工作以及儲存了哪些資料進行乙個記錄。

想想,當你要查詢乙個檔案時,通過在中心伺服器中的相應記錄中查詢確定檔案位置快,還是在海量的資料中逐一對比查詢快,必然是前者效率更高。

這台中心伺服器,我們稱她為namenode。其他伺服器,稱之為datenode。

namenode:乙個中心伺服器。主節點 ,管理結點 , 知道datenode的存活狀態  儲存資料的元資料資訊。

datenode:從節點 ,要告訴namenode她上塊的位置 ,利用系統本身的檔案系統儲存真實的檔案塊。

namenodedatenode

儲存基於記憶體儲存(不會和磁碟發生交換)

本地磁碟目錄儲存資料,檔案形式

主要功能

(1)接受客戶端的讀寫服務

(2)知道datenode的存活狀態

(3)儲存資料的元資料資訊

(2)收集datenode匯報的block列表資訊

(1)啟動datenode時會向namenode匯報block資訊

(2)通過向namenode傳送心跳保持與其聯絡(3秒一次),如果namenode10分鐘沒有收到datenode的心跳,則認為其已經lost,並copy其上的block到其他的datenode

(2)以上傳a.txt為例。

當客戶端上傳儲存檔案a.txt時, 如預設以128m大小分割檔案,200m的a.txt檔案分割成兩個資料塊進行儲存,128m與72m。

1.客戶端向namenode傳送上傳檔案a.txt的請求

2.namenode返回客戶端允許上傳的資訊

3.客戶端將資料塊上傳到元資料中

4.namenode根據請求,並結合datenode的資訊,返回datenode的ip

5.客戶端與datenode1建立連線。與此同時,datenode1與datenode3之間也建立傳輸資料的通道,直到最後乙個為止。依次返回傳輸資料通道建立完畢資訊 , 直到響應給客戶端。dn*把接收到的packet儲存到指定的目錄中 , 並且把packet繼續往後發 , 直到最後乙個。傳送完畢後反方向追個返回ack應答 , 保證packet的安全穩定 , 直到返回給客戶端。

待第一塊上傳完畢 , 客戶端按照上述流程走一遍 , 上傳第二個塊 , 從第3步開始 , 重新發起請求 , 尋找可用的dn位置

待所有塊上傳完畢 , 客戶端把資訊告知namenode , namenode把資訊同步到檔案系統的元資料中。

在說hdfs的原理時,只談namenode與datenode是淺嘗輒止的,還可以深入的談一談namenode持久化(fsimage、edits、redis)、secondary namenode、副本放置策略、hdfs讀取或寫入檔案的過程詳解等。

(1)hadoop多節點集群安裝配置,環境配置成功。

可以參考一步步教你hadoop多節點集群安裝配置

(2)修改配置檔案。(這一步,指定namenode與datenode)

(3)啟動hdfs。

(2)(3)可以參考hdfs環境搭建及命令演示

JSON快速入手

慢慢看不要急 假如這是返回的json串 1 建立乙個jsonobject物件 實體類 public class bean s 格式的生成 我這裡是通過實體類去操作的 如果不需要可以通過jsonobject中的put方法去實現 bean bean new bean 1 建立乙個實體類物件 listca...

爬蟲套路,快速入手

這裡不講知識點,直接把爬蟲套路寫出來,可以直接上手 第一步引入要使用的庫函式 import requests 這個庫引入用於請求,很常用 from lxml import etree xpath解析要引用的庫 假如引入庫後報錯,開啟終端 pip install 缺少的庫函式 pip install ...

HDFS快速入門

hdfs hadoop distributed file system 是hadoop元件中的分布式儲存系統,提供高可靠性 高擴充套件性和高吞吐率的資料儲存服務。1.檔案線性切割成塊 block 塊分散儲存在集群的各個節點中。2.單一檔案block大小一致,不同的檔案可以設定的不一樣。3.block...