Hadoop基礎
Hadoop是什麼
- 開源的大資料框架
- 分散式計算的解決方案
- Hadoop = HDFS(分散式檔案系統) + MapReduce(分散式計算)
HDFS
HDFS由一個NameNode,多個DataNode構成
- 普通的成百上千的機器
- 按TB甚至PB為單位的大量的資料
- 簡單便捷的檔案獲取
HDFS資料塊
資料塊是抽象塊而非整個檔案作為儲存單元,預設大小為64MB,一般設定為128MB,備份X3
簡化了儲存系統的設計,適用於資料的備份,提升了容錯能力與可用性
NameNode
- 管理檔案系統的名稱空間,存放檔案後設資料
- 維護著檔案系統的所有檔案和目錄,檔案與資料塊的對映
- 記錄每個檔案中各個塊所在的資料節點的資訊
HDFS寫流程
- 客戶端向NameNode發起寫資料請求
- 分塊寫入DataNode節點,DataNode自動完成副本備份
- DataNode向NameNode彙報儲存完成,NameNode通知客戶端
HDFS讀流程
- 客戶端向NameNode發起讀資料請求
- NameNode找出距離最近的DataNode節點資訊
- 客戶端從DataNode分塊下載檔案
DataNode
- 儲存並檢索資料塊
- 向NameNode更新所儲存塊的列表
HDFS優缺點
優點:
- 適合大檔案儲存,支援TB,PB級的資料儲存,並有副本策略
- 可以構建在廉價的機器上,並有一定的容錯和恢復機制
- 支援流式資料訪問,一次寫入,多次讀取最高效
缺點:
- 不適合大量小檔案儲存
- 不適合併發寫入,不支援檔案隨機修改
- 不支援隨機讀等低延時的訪問方式
MapReduce和Yarn
Yarn(Haoop2之後的資源管理器)
- ResourceManager:分配和排程資源;啟動並監控ApplicationMaster; 監控NodeManager
- ApplicatonMaster:為MR型別的程式申請資源,並分配給內部任務;負責資料的切分;監控任務的執行及容錯
- NodeManager:管理單個節點的資源;處理來自ResourceManager的命令;處理來自ApplicationMaster的命令
MapReduce
- 輸入一個大檔案,通過Split之後,將其分為多個分片
- 每個檔案分片由單獨的機器去處理,這就是Map方法
- 將各個機器計算的結果進行彙總並得到最終的結果,這就是Reduce方法
延伸思考
- 如何通過Hadoop儲存小檔案?
- 當有節點故障的時候,叢集是如何繼續提供服務的,如何讀,如何寫?
- 哪些是影響MapReduce效能的因素?
Hadoop生態
HBase簡介
- 高可靠,高效能,面向列,可伸縮,實時讀寫的分散式資料庫
- 利用HDFS作為其檔案儲存系統,支援MR程式讀取資料
- 儲存非結構化和半結構化資料
- RowKey:資料唯一標識,按字典排序
- Column Family:列族,多個列的集合.最多不要超過3個
- TimeStamp時間戳:支援多個版本資料同時存在
Spark簡介
- 基於記憶體計算的大資料平行計算框架
- 抽象出分散式記憶體儲存資料結構 彈性分散式資料集RDD
- 基於事件驅動,通過執行緒池複用執行緒提高效能
- Spark是MapReduce的替代方案,相容HDFS,HIVE等資料來源
相關文章
- Hadoop基礎知識Hadoop
- 淺析Hadoop基礎原理Hadoop
- Hadoop 基礎之搭建環境Hadoop
- Hadoop 基礎之 HDFS 入門Hadoop
- Hadoop 基礎之生態圈Hadoop
- hadoop基礎知識分享(二)Hadoop
- hadoop基礎知識分享(一)Hadoop
- Hadoop學習之路(六)HDFS基礎Hadoop
- 學習hadoop需要什麼基礎?Hadoop
- 常用基礎Linux操作命令總結與hadoop基礎操作命令LinuxHadoop
- Hadoop基礎(二):從Hadoop框架討論大資料生態Hadoop框架大資料
- Hadoop之MapReduce2基礎梳理及案例Hadoop
- hadoop基礎學習三十一(spark-streaming)HadoopSpark
- Hadoop基礎(一):分散式檔案系統HDFSHadoop分散式
- hadoop基礎學習三十七(kylin的安裝)Hadoop
- 大資料入門:Hadoop Yarn元件基礎解析大資料HadoopYarn元件
- Hadoop基礎入門之發行版本的選擇Hadoop
- 大資料平臺基礎架構hadoop安全分析大資料架構Hadoop
- 大資料專欄 - 基礎1 Hadoop安裝配置大資料Hadoop
- hadoop基準測試_Hadoop TeraSort基準測試Hadoop
- hadoop大資料平臺安全基礎知識入門Hadoop大資料
- 零基礎入門Hadoop:IntelliJ IDEA遠端連線伺服器中Hadoop執行WordCountHadoopIntelliJIdea伺服器
- hadoop零基礎入門教程--DKHadoop完整安裝步驟Hadoop
- 大資料基礎架構Hadoop,終於有人講明白了大資料架構Hadoop
- 零基礎學習大資料Hadoop需要什麼準備?Hadoop如何發展起來的?大資料Hadoop
- 零基礎學習hadoop開發先明白這層關係Hadoop
- 零基礎學習hadoop開發需要的必備的技能Hadoop
- 掃盲:Hadoop分散式檔案系統(HDFS)基礎概念講解!Hadoop分散式
- 好程式設計師大資料教學點睛:Hadoop基礎篇程式設計師大資料Hadoop
- 在 Ubuntu 22 的基礎上進行 Hadoop 偽分散式(HDFS)的搭建UbuntuHadoop分散式
- 大資料基礎Hadoop 3.1.1 的高可用HA安裝~踩坑記錄大資料Hadoop
- 【FPGA基礎】Latch基礎FPGA
- 好程式設計師大資料分享零基礎學習Hadoop該如何下手程式設計師大資料Hadoop
- Pandas 基礎 (2) - Dataframe 基礎
- 前端基礎之jQuery基礎前端jQuery
- python基礎中的基礎Python
- Java基礎-語法基礎Java
- [今日白學]元件的基礎的基礎的基礎元件