大資料之初步瞭解HDFS、Hadoop和MapReduce
想學好大資料,首先要了解他的基礎,所以,我們需要先了解HDFS和Hadoop以及MapReduce。
首先大家思考一個問題:如何合理的儲存10T的電信通話記錄?
下面給大家展現一個圖片:

入的知識點:
元資料:描述資料的資料,主要描述資料的屬性的資訊,用來指示儲存位置,歷史資料檔案查詢和檔案記錄等功能;
NameNode:檔案管理
DataNode:真是儲存資料,資料儲存
Client:檔案獲取,客戶端實現讀取,
這裡面體現的一個思想就是分散式儲存。
將資料分散儲存在多臺獨立的裝置上,傳統的儲存方式存在系統性能的瓶頸,同時在可靠性和安全性上也存在問題,不能滿足大規模儲存應用的需要。分散式網路儲存採用可擴充套件的系統結構,利用多臺儲存伺服器分擔儲存負荷,利用位置伺服器定位儲存資訊,他不但提高了系統的可靠性,可用性和存取效率,還易於擴充套件。
分散式計算(100G資料,統計單詞)
計算向資料移動,

HDFS:Hadoop分散式檔案系統(冗餘備份)
Map/Reduce:是一個使用簡易的軟體框架,基於他的應用程式能夠執行在上千個商用機器組成的大型叢集上,...;
核心思想:分而治之;map(任務分解),reduce(結果的彙總)
Hadoop的兩大核心:HDFS和MapReduce
RDMS:傳統的關係型資料庫 ,面向業務處理 PLTP(聯機事務處理)
HBase :非關係型資料庫,主要儲存非結構化資料,面向列處理方式;
Flume:大資料的資料採集工具
Sqoop:資料轉移工具(將關係型資料庫資料轉移到HDFS(可逆))
Zookeeper:分散式協調系統(目錄樹結構、時間回撥、客戶端Session)
JobTacker:任務分解
TaskTracker:執行任務
Block:最小1M,預設128M,副本有三個(是連同原始檔案一共三個,沒有等級之分),分配在不同的節點上,為了可靠性和
完整性,副本數的數量不能超過叢集節點的數量,可調整大小,但是會帶來蝴蝶效應;
心跳機制:每隔幾秒彙報一次;
HdfsClient與NameNode互動元資料資訊
HdfsClient與DataNade互動檔案Block資料

NameNode分為兩類:
動態元資料:Block塊的位置資訊(通過DataNode心跳的方式來給NameNode彙報);
靜態元資料:檔案大小,節點資訊,偏移量,block清單;
Client大致分為兩類: 叢集外的客戶端和叢集內的客戶端
Client和NameNode互動的是元資料
Client和DataNode互動的Block塊資料
交換:執行時記憶體和磁碟的雙向互動叫交換,執行時從磁碟讀取資料到記憶體
持久化:單向的,執行時會往磁碟中寫資料,當出現掛機或重啟時從磁碟讀回。
Block塊的位置資訊,不會做持久化;
Edits:存放的是客戶端對元資料增刪改查的操作;
Editlog:可以做到掛機前的最後一筆操作
fsImage:只能做到某一時點的記憶體狀態;
合併:3600秒,或者64M
SNN合併流程

sencongdary NameNode是減少NameNode的啟動時間,


大家喜歡多多關注,你的關注是我最大的動力。
大家喜歡的也可以關注我的公眾號
