一、引言 SQL Server有一些很好用的功能,只不過由於個人原因沒用過或者不記得怎麼用,導致需要花點時間用其它方式來實現。 二、好用小知識 2.1、FORMAT函數 1)時間格式化,如將當前日期格式化為2022-05-12: SELECT FORMAT(GETDATE(),'yyyy-MM-dd ...
Hadoop是一個分散式系統基礎架構,主要解決海量數據的存儲和海量數據的分析計算問題。
Hadoop1.x和Hadoop2.x區別:
在Hadoop1.x時代,Hadoop中的MapReduce同時處理計算和資源調度,耦合性較大,
在Hadoop2.x時代,增加了Yarn,Yarn只負責資源的調度,MapReduce只負責運算。
Hadoop組成:
HDFS架構概述
HDFS是一個文件系統,用於存儲文件,其次,它是分散式的,由很多伺服器聯合起來實現其功能。
優點
1)高容錯,數據自動保存多個副本。它通過增加副本的形式,提高容錯性。一個副本丟失之後,它自動恢復。
2)適合處理大數據。
3)可構建在廉價的機器上,通過多副本機制,提高可靠性。
缺點
1)不適合低延時數據訪問,比如毫秒級的存儲數據,是做不到的。
2)無法高效的對大量小文件進行存儲。存儲大量的小文件,會占用NameNode大量的記憶體來存儲文件目錄和塊信息。
而且小文件存儲的定址時間會超過讀取時間,它違反了HDFS的設計目標。
3)不支持併發寫入、文件隨機修改。一個文件只能有一個寫,不允許多個線程同時寫。僅支持數據追加,不支持文件
的隨機修改。
HDFS由四部分組成,HDFS Client、NameNode、DataNode和Secondary NameNode。HDFS是一個主/從體繫結構,HDFS集群擁有一個NameNode和一些DataNode。NameNode管理文件系統的元數據DataNode存儲實際的數據。
HDFS Client:
1、提供一些命令來管理、訪問 HDFS,比如啟動或者關閉HDFS。
2、與 DataNode 交互,讀取或者寫入數據;讀取時,要與 NameNode 交互,獲取文件的位置信息;寫入 HDFS 的時候,Client 將文件切分成 一個一個的Block,然後進行存儲。
NameNode:即Master,
1、管理 HDFS 的名稱空間。
2、管理數據塊(Block)映射信息
3、配置副本策略
4、處理客戶端讀寫請求。
DataNode:就是Slave。NameNode 下達命令,DataNode 執行實際的操作。
1、存儲實際的數據塊。
2、執行數據塊的讀/寫操作。
Secondary NameNode:並非 NameNode 的熱備。當NameNode 掛掉的時候,它並不能馬上替換 NameNode 並提供服務。
1、輔助 NameNode,分擔其工作量。
2、定期合併 fsimage和fsedits,並推送給NameNode。
3、在緊急情況下,可輔助恢復 NameNode。
Yarn架構概述
YARN 是Hadoop分散式處理框架中的資源管理和作業調度技術。負責將系統資源分配給在 Hadoop 集群中運行的各種應用程式,並調度要在不同集群節點上執行的任務。
ResourceManager:
1.處理客戶端請求。
2.監控NodeManager。
3.啟動或監控ApplicationMaster。
4.資源的分配和調度。
NodeManager:
1.管理來自單個節點上的資源。
2.處理來自ResourceManager的命令。
3.處理來自ApplicationMaster的命令。
ApplicationMaster:
1.負責數據的切分。
2.為應用程式申請資源並分配給內部的任務。
3.任務的監控與容錯。
Container:
Container的YARN中的資源抽象,它封裝了某個節點上的多維度資源,如記憶體、CPU、磁碟、網路等。
MapReduce架構概述
MapReduce負責海量數據的計算。
工作方式簡單來說就是我們要數圖書館中的所有書。你數1號書架,我數2號書架。這就是“Map”。我們人越多,數書就更快。
現在我們到一起,把所有人的統計數加在一起。這就是“Reduce”。