2021年大数据Hadoop(三十):Hadoop3.x的介绍
全網最詳細的Hadoop文章系列,強烈建議收藏加關注!
后面更新文章都會列出歷史文章目錄,幫助大家回顧知識重點。
目錄
本系列歷史文章
前言
Hadoop3.x的介紹
介紹
Hadoop 3.0新特性
通用性
HDFS
MapReduce
HDFS糾刪碼
MapReduce優化?
支持多個NameNodes?
默認端口更改
YARN 資源類型
本系列歷史文章
2021年大數據Hadoop(三十):Hadoop3.x的介紹
2021年大數據Hadoop(二十九):關于YARN常用參數設置
2021年大數據Hadoop(二十八):YARN的調度器Scheduler
2021年大數據Hadoop(二十七):YARN運行流程
2021年大數據Hadoop(二十六):YARN三大組件介紹
2021年大數據Hadoop(二十五):YARN通俗介紹和基本架構
2021年大數據Hadoop(二十四):MapReduce高階訓練
2021年大數據Hadoop(二十三):MapReduce的運行機制詳解
2021年大數據Hadoop(二十二):MapReduce的自定義分組
2021年大數據Hadoop(二十一):MapReuce的Combineer
2021年大數據Hadoop(二十):MapReduce的排序和序列化
2021年大數據Hadoop(十九):MapReduce分區
2021年大數據Hadoop(十八):MapReduce程序運行模式和深入解析
2021年大數據Hadoop(十七):MapReduce編程規范及示例編寫
2021年大數據Hadoop(十六):MapReduce計算模型介紹
2021年大數據Hadoop(十五):Hadoop的聯邦機制 Federation
2021年大數據Hadoop(十四):HDFS的高可用機制
2021年大數據Hadoop(十三):HDFS意想不到的其他功能
2021年大數據Hadoop(十二):HDFS的API操作
2021年大數據Hadoop(十一):HDFS的元數據輔助管理
2021年大數據Hadoop(十):HDFS的數據讀寫流程
2021年大數據Hadoop(九):HDFS的高級使用命令
2021年大數據Hadoop(八):HDFS的Shell命令行使用
2021年大數據Hadoop(七):HDFS分布式文件系統簡介
2021年大數據Hadoop(六):全網最詳細的Hadoop集群搭建
2021年大數據Hadoop(五):Hadoop架構
2021年大數據Hadoop(四):Hadoop發行版公司
2021年大數據Hadoop(三):Hadoop國內外應用
2021年大數據Hadoop(二):Hadoop發展簡史和特性優點
2021年大數據Hadoop(一):Hadoop介紹
前言?
2021大數據領域優質創作博客,帶你從入門到精通,該博客每天更新,逐漸完善大數據各個知識體系的文章,幫助大家更高效學習。
有對大數據感興趣的可以關注微信公眾號:三幫大數據
Hadoop3.x的介紹
介紹
? ? 由于Hadoop 2.0是基于JDK 1.7開發的,而JDK 1.7在2015年4月已停止更新,這直接迫使Hadoop社區基于JDK 1.8重新發布一個新的Hadoop版本,即hadoop 3.0。Hadoop 3.0中引入了一些重要的功能和優化,包括HDFS可擦除編碼、多Namenode支持、MR Native Task優化、YARN基于cgroup的內存和磁盤IO隔離、YARN container resizing等。
hadoop3.x以后將會調整方案架構,將Mapreduce 基于內存+io+磁盤,共同處理數據。Hadoop3.x改變最大的是hdfs,hdfs 通過最近block塊計算,根據最近計算原則,本地block塊,加入到內存,先計算,通過IO,共享內存計算區域,最后快速形成計算結果,比Spark快10倍。
Hadoop 3.0新特性
Hadoop 3.0在功能和性能方面,對hadoop內核進行了多項重大改進,主要包括:
通用性
1、精簡Hadoop內核,包括剔除過期的API和實現,將默認組件實現替換成最高效的實現。
2、Classpath isolation:以防止不同版本jar包沖突
3、Shell腳本重構: Hadoop 3.0對Hadoop的管理腳本進行了重構,修復了大量bug,增加了新特性。
HDFS
Hadoop3.x中Hdfs在可靠性和支持能力上作出很大改觀:
1、HDFS支持數據的擦除編碼,這使得HDFS在不降低可靠性的前提下,節省一半存儲空間。
2、多NameNode支持,即支持一個集群中,一個active、多個standby namenode部署方式。
MapReduce
Hadoop3.X中的MapReduce較之前的版本作出以下更改:
1、Tasknative優化:為MapReduce增加了C/C++的map output collector實現(包括Spill,Sort和IFile等),通過作業級別參數調整就可切換到該實現上。對于shuffle密集型應用,其性能可提高約30%。
2、MapReduce內存參數自動推斷。在Hadoop 2.0中,為MapReduce作業設置內存參數非常繁瑣,一旦設置不合理,則會使得內存資源浪費嚴重,在Hadoop3.0中避免了這種情況。
HDFS糾刪碼
在Hadoop3.X中,HDFS實現了Erasure Coding這個新功能。Erasure coding糾刪碼技術簡稱EC,是一種數據保護技術.最早用于通信行業中數據傳輸中的數據恢復,是一種編碼容錯技術。
它通過在原始數據中加入新的校驗數據,使得各個部分的數據產生關聯性。在一定范圍的數據出錯情況下,通過糾刪碼技術都可以進行恢復。
hadoop-3.0之前,HDFS存儲方式為每一份數據存儲3份,這也使得存儲利用率僅為1/3,hadoop-3.0引入糾刪碼技術(EC技術),實現1份數據+0.5份冗余校驗數據存儲方式。
與副本相比糾刪碼是一種更節省空間的數據持久化存儲方法。標準編碼(比如Reed-Solomon(10,4))會有1.4 倍的空間開銷;然而HDFS副本則會有3倍的空間開銷。
MapReduce優化?
Hadoop3.x中的MapReduce添加了Map輸出collector的本地實現,對于shuffle密集型的作業來說,這將會有30%以上的性能提升。
支持多個NameNodes?
? ? 最初的HDFS NameNode high-availability實現僅僅提供了一個active NameNode和一個Standby NameNode;并且通過將編輯日志復制到三個JournalNodes上,這種架構能夠容忍系統中的任何一個節點的失敗。
? ? 然而,一些部署需要更高的容錯度。我們可以通過這個新特性來實現,其允許用戶運行多個Standby NameNode。比如通過配置三個NameNode和五個JournalNodes,這個系統可以容忍2個節點的故障,而不是僅僅一個節點。
默認端口更改
? ? 在hadoop3.x之前,多個Hadoop服務的默認端口都屬于Linux的臨時端口范圍(32768-61000)。這就意味著用戶的服務在啟動的時候可能因為和其他應用程序產生端口沖突而無法啟動。
現在這些可能會產生沖突的端口已經不再屬于臨時端口的范圍,這些端口的改變會影響NameNode, Secondary NameNode, DataNode以及KMS。
Namenode ports: 50470 --> 9871, 50070--> 9870, 8020 --> 9820
Secondary NN ports: 50091 --> 9869,50090 --> 9868
Datanode ports: 50020 --> 9867, 50010--> 9866, 50475 --> 9865, 50075 --> 9864
Kms server ports: 16000 --> 9600 (原先的16000與HMaster端口沖突)
YARN 資源類型
? ? YARN 資源模型(YARN resource model)已被推廣為支持用戶自定義的可數資源類型(support user-defined countable resource types),不僅僅支持 CPU 和內存。
- 📢博客主頁:https://lansonli.blog.csdn.net
- 📢歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正!
- 📢本文由 Lansonli 原創,首發于 CSDN博客🙉
- 📢大數據系列文章會每天更新,停下休息的時候不要忘了別人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活?
總結
以上是生活随笔為你收集整理的2021年大数据Hadoop(三十):Hadoop3.x的介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年大数据Hadoop(二十九):
- 下一篇: 深夜凌晨女朋友问什么是数据仓库,我的回答