官术网_书友最值得收藏!

1.2 Hadoop 3.0

Hadoop 3.0沒有在架構上對Hadoop 2.0進行大的改動,而是將精力放在了如何提高系統的可擴展性和資源利用率上,因此Hadoop 3.0提供了更高的性能、更強的容錯能力以及更高效的數據處理能力。

在提高可擴展性方面,Hadoop 3.0為YARN提供了Federation,使其集群規模可以達到上萬臺。此外,它還為NameNode提供了多個Standby NameNode,這使得NameNode又多了一份保障。

在提高資源利用率方面,Hadoop 3.0對HDFS和YARN都做了調整。HDFS增加了糾刪碼副本策略,與原先的副本策略相比,該策略可以提高存儲資源的利用率,用戶可以針對具體場景選擇不同的存儲策略。YARN作為一個資源管理平臺,當然重視資源的利用率,它增加了很多新功能。例如,為了更好地區分集群中各機器的特性,新增了Node Attribute功能,此功能與Node Label不同,具體的細節會在3.4.3節中介紹。由于越來越多的框架運行在YARN上,為了更好地進行資源隔離,YARN豐富了原先的container放置策略等,具體可以參考官網。

另外,Hadoop 3.0中還新增了兩個成員,分別是Hadoop Ozone和Hadoop Submarine。Hadoop Ozone是一個對象存儲方案,在一定程度上可以緩解HDFS集群中小文件的問題。Hadoop Submarine是一個機器學習引擎,可使TensorFlow或者PyTorch運行在YARN中。

Hadoop 3.0整個工程包含6個模塊,具體如下。

  • Hadoop Common。這是將其他模塊中的公共部分抽象出來并整理成的一個模塊,它為Hadoop提供一些常用工具,主要包括配置工具包Configuration、抽象文件系統包FileSystem、遠程調用包RPC以及用于指標檢測的jmx和metrics2包,還有一些其他公共工具包。
     
  • HDFS(Hadoop Distributed File System,Hadoop分布式文件系統)。Hadoop有一個綜合性的、抽象的文件系統概念,提供了很多文件系統的接口,一般使用URI方案來選取其中合適的文件系統實例進行交互。Java抽象類org.apache.hadoop.fs.FileSystem展示了其中的一個文件系統,該系統有幾個具體的實現,而HDFS只是這些實現中的一個。HDFS是Hadoop的旗艦級文件系統,以流式數據訪問模式存儲超大文件,是一個高吞吐量的分布式文件系統。

    HDFS的設計場景是一次寫入,多次讀取。因為它認為一個數據集的獲取過程通常是先由數據源生成數據集,接著對該數據集進行各種各樣的分析,每個分析至少會讀取此數據集中的大部分數據,所以HDFS的流式數據訪問模式可以提高吞吐量。此外,HDFS還具有高度容錯性,能夠自動檢測和應對硬件故障。
     

  • Hadoop YARN。YARN是從JobTracker的資源管理功能中獨立出來,形成的一個用于作業調度和資源管理的框架。作為一個通用的資源管理平臺,YARN將container作為資源劃分的最小單元,所劃分的資源包括CPU和內存。YARN能夠支持各種計算引擎,例如支持離線處理的MapReduce、支持迭代計算和微批處理的Spark以及支持實時處理的Flink,它還提供了接口以便讓用戶實現自定義的分布式應用。

    YARN作為Hadoop的一個模塊,與HDFS有著天然的兼容性。它將應用都集成到統一的資源管理平臺中,一方面使得應用之間能夠輕松地實現數據共享,避免了多個集群的冗余存儲或者跨集群數據復制;另一方面,多個計算引擎集中在一個集群中既能夠減輕運維,也能更好地利用資源,避免在某一時刻某些集群的計算資源比較緊張而其他集群的資源比較空閑。
     

  • Hadoop MapReduce。MapReduce是一種基于YARN的大數據分布式并行計算模型,它將整個計算過程分為Map和Reduce兩個任務:Map任務從輸入的數據集中讀取數據,并對取出的數據進行指定的邏輯處理,然后生成鍵值對形式的中間結果,并將該結果寫入本地磁盤;Reduce任務從Map任務輸出的中間結果中讀取相應的鍵值對,然后進行聚合處理,最后輸出結果。

    MapReduce主要用于對大規模數據進行離線計算。一個完整的MapReduce作業由n個Map任務和m個Reduce任務組成,出于對性能優化的考慮,nm。另外,對于某些特定的場景,可以對Map任務使用的combiner個數進行優化以減少它的輸出數據。至于Reduce任務要讀取哪些數據,這是由Map任務的分區策略決定的,默認是散列分區策略,也可根據需要自定義。
     

  • Hadoop Ozone。這是專門為Hadoop設計的、由HDDS(Hadoop Distributed Data Store)構建成的可擴展的分布式對象存儲系統。對它的介紹詳見2.6節。
     

  • Hadoop Submarine。這是一個機器學習引擎,可以運行TensorFlow、PyTorch、MXNet等框架,可以運行在YARN、Kubernetes等資源管理平臺之上。Hadoop Submarine隨后的開發計劃還包含算法開發、模型增量訓練以及模型管理,這使得基礎研發工程師和數據分析師都能運行深度學習算法。

其中最后兩個模塊是新增的,它們正處在開發中,之后會使Hadoop更加強大。Hadoop Ozone已有正式發行版,目前版本是1.0.0,已經可以進行測試、調研、使用。而Hadoop Submarine還沒有對外公布任何版本,在Hadoop 3.2中并沒有該模塊。

主站蜘蛛池模板: 东港市| 陵水| 延川县| 渭源县| 大宁县| 翁牛特旗| 衡阳县| 吉木乃县| 晋城| 日照市| 宿迁市| 贵州省| 曲水县| 纳雍县| 云梦县| 慈利县| 罗定市| 信阳市| 平湖市| 新化县| 阿城市| 万全县| 汶川县| 延津县| 平舆县| 遵义县| 杭锦后旗| 灵川县| 东城区| 八宿县| 海城市| 黔江区| 平罗县| 文登市| 方山县| 永春县| 泸州市| 班玛县| 三门县| 青州市| 佛坪县|