• <menu id="w2i4a"></menu>
  • logo Hadoop教程

    文檔首頁>>Hadoop教程>>Hadoop教程:如何為Hadoop集群選擇合適的硬件

    Hadoop教程:如何為Hadoop集群選擇合適的硬件


    隨著Apache Hadoop的起步,云客戶的增多面臨的首要問題就是如何為他們新的的Hadoop集群選擇合適的硬件。

    盡管Hadoop被設計為運行在行業(yè)標準的硬件上,提出一個理想的集群配置不想提供硬件規(guī)格列表那么簡單。 選擇硬件,為給定的負載在性能和經(jīng)濟性提供最佳平衡是需要測試和驗證其有效性。(比如,IO密集型工作負載的用戶將會為每個核心主軸投資更多)。

    在這個博客帖子中,你將會學到一些工作負載評估的原則和它在硬件選擇中起著至關重要的作用。在這個過程中,你也將學到Hadoop管理員應該考慮到各種因素。

    結合存儲和計算

    過去的十年,IT組織已經(jīng)標準化了刀片服務器和存儲區(qū)域網(wǎng)(SAN)來滿足聯(lián)網(wǎng)和處理密集型的工作負載。盡管這個模型對于一些方面的標準程序是有相當意義 的,比如網(wǎng)站服務器,程序服務器,小型結構化數(shù)據(jù)庫,數(shù)據(jù)移動等,但隨著數(shù)據(jù)數(shù)量和用戶數(shù)的增長,對于基礎設施的要求也已經(jīng)改變。網(wǎng)站服務器現(xiàn)在有了緩存 層;數(shù)據(jù)庫需要本地硬盤支持大規(guī)模地并行;數(shù)據(jù)遷移量也超過了本地可處理的數(shù)量。

    大部分的團隊還沒有弄清楚實際工作負載需求就開始搭建他們的Hadoop集群。

    硬件提供商已經(jīng)生產(chǎn)了創(chuàng)新性的產(chǎn)品系統(tǒng)來應對這些需求,包括存儲刀片服務器,串行SCSI交換機,外部SATA磁盤陣列和大容量的機架單元。然 而,Hadoop是基于新的實現(xiàn)方法,來存儲和處理復雜數(shù)據(jù),并伴隨著數(shù)據(jù)遷移的減少。 相對于依賴SAN來滿足大容量存儲和可靠性,Hadoop在軟件層次處理大數(shù)據(jù)和可靠性。

    Hadoop在一簇平衡的節(jié)點間分派數(shù)據(jù)并使用同步復制來保證數(shù)據(jù)可用性和容錯性。因為數(shù)據(jù)被分發(fā)到有計算能力的節(jié)點,數(shù)據(jù)的處理可以被直接發(fā)送到存儲有數(shù)據(jù)的節(jié)點。由于Hadoop集群中的每一臺節(jié)點都存儲并處理數(shù)據(jù),這些節(jié)點都需要配置來滿足數(shù)據(jù)存儲和運算的要求。

    工作負載很重要嗎?

    在幾乎所有情形下,MapReduce要么會在從硬盤或者網(wǎng)絡讀取數(shù)據(jù)時遇到瓶頸(稱為IO受限的應用),要么在處理數(shù)據(jù)時遇到瓶頸(CPU受限)。排序是 一個IO受限的例子,它需要很少的CPU處理(僅僅是簡單的比較操作),但是需要大量的從硬盤讀寫數(shù)據(jù)。模式分類是一個CPU受限的例子,它對數(shù)據(jù)進行復 雜的處理,用來判定本體。

    下面是更多IO受限的工作負載的例子:

    • 索引

    • 分組

    • 數(shù)據(jù)導入導出

    • 數(shù)據(jù)移動和轉(zhuǎn)換

    下面是更多CPU受限的工作負載的例子:

    • 聚類/分類

    • 復雜文本挖掘

    • 自然語言處理

    • 特征提取

    Cloudera 的客戶需要完全理解他們的工作負載,這樣才能選擇最優(yōu)的Hadoop硬件,而這好像是一個雞生蛋蛋生雞的問題。大多數(shù)工作組在沒有徹底剖 析他們的工作負載時,就已經(jīng)搭建好了Hadoop集群,通常Hadoop運行的工作負載隨著他們的精通程度的提高而完全不同。而且,某些工作負載可能會被 一些未預料的原因受限。例如,某些理論上是IO受限的工作負載卻最終成為了CPU受限,這是可能是因為用戶選擇了不同的壓縮算法,或者算法的不同實現(xiàn)改變 了MapReduce任務的約束方式?;谶@些原因,當工作組還不熟悉要運行任務的類型時,深入剖析它才是構建平衡的Hadoop集群之前需要做的最合理 的工作。

    接 下來需要在集群上運行MapReduce基準測試任務,分析它們是如何受限的。完成這個目標最直接的方法是在運行中的工作負載中的適當位置添加監(jiān)視器來 檢測瓶頸。我們推薦在Hadoop集群上安裝Cloudera Manager,它可以提供CPU,硬盤和網(wǎng)絡負載的實時統(tǒng)計信息。(Cloudera Manager是Cloudera 標準版和企業(yè)版的一個組件,其中企業(yè)版還支持滾動升級)Cloudera Manager安裝之后,Hadoop管理員就可以運行MapReduce任務并且查看Cloudera Manager的儀表盤,用來監(jiān)測每臺機器的工作情況。

    第一步是弄清楚你的作業(yè)組已經(jīng)擁有了哪些硬件

    在 為你的工作負載構建合適的集群之外,我們建議客戶和它們的硬件提供商合作確定電力和冷卻方面的預算。由于Hadoop會運行在數(shù)十臺,數(shù)百臺到數(shù)千臺節(jié) 點上。通過使用高性能功耗比的硬件,作業(yè)組可以節(jié)省一大筆資金。硬件提供商通常都會提供監(jiān)測功耗和冷卻方面的工具和建議。

    為你的CDH(Cloudera distribution for Hadoop) Cluster選擇硬件

    選 擇機器配置類型的第一步就是理解你的運維團隊已經(jīng)在管理的硬件類型。在購買新的硬件設備時,運維團隊經(jīng)常根據(jù)一定的觀點或者強制需求來選擇,并且他們傾 向于工作在自己業(yè)已熟悉的平臺類型上。Hadoop不是唯一的從規(guī)模效率上獲益的系統(tǒng)。再一次強調(diào),作為更通用的建議,如果集群是新建立的或者你并不能準 確的預估你的極限工作負載,我們建議你選擇均衡的硬件類型。

    Hadoop集群有四種基本任務角色:名稱節(jié)點(包括備用名稱節(jié)點),工作追蹤節(jié)點,任務執(zhí)行節(jié)點,和數(shù)據(jù)節(jié)點。節(jié)點是執(zhí)行某一特定功能的工作站。大部分你的集群內(nèi)的節(jié)點需要執(zhí)行兩個角色的任務,作為數(shù)據(jù)節(jié)點(數(shù)據(jù)存儲)和任務執(zhí)行節(jié)點(數(shù)據(jù)處理)。

    這是在一個平衡Hadoop集群中,為數(shù)據(jù)節(jié)點/任務追蹤器提供的推薦規(guī)格:

    • 在一個磁盤陣列中要有12到24個1~4TB硬盤

    • 2個頻率為2~2.5GHz的四核、六核或八核CPU

    • 64~512GB的內(nèi)存

    • 有保障的千兆或萬兆以太網(wǎng)(存儲密度越大,需要的網(wǎng)絡吞吐量越高)

    名字節(jié)點角色負責協(xié)調(diào)集群上的數(shù)據(jù)存儲,作業(yè)追蹤器協(xié)調(diào)數(shù)據(jù)處理(備用的名字節(jié)點不應與集群中的名字節(jié)點共存,并且運行在與之相同的硬件環(huán)境上。)。 Cloudera推薦客戶購買在RAID1或10配置上有足夠功率和企業(yè)級磁盤數(shù)的商用機器來運行名字節(jié)點和作業(yè)追蹤器。

    NameNode也會直接需要與群集中的數(shù)據(jù)塊的數(shù)量成比列的RAM。一個好的但不精確的規(guī)則是對于存儲在分布式文件系統(tǒng)里面的每一個1百萬的數(shù)據(jù)塊,分 配1GB的NameNode內(nèi)存。于在一個群集里面的100個DataNodes而言,NameNode上的64GB的RAM提供了足夠的空間來保證群集 的增長。我們也推薦把HA同時配置在NameNode和JobTracker上,

    這里就是為NameNode/JobTracker/Standby NameNode節(jié)點群推薦的技術細節(jié)。驅(qū)動器的數(shù)量或多或少,將取決于冗余數(shù)量的需要。

    • 4–6 1TB 硬盤驅(qū)動器 采用 一個 JBOD 配置 (1個用于OS, 2個用于文件系統(tǒng)映像[RAID 1], 1個用于Apache ZooKeeper, 1個用于Journal節(jié)點)

    • 2 4-/16-/8-核心 CPUs, 至少運行于 2-2.5GHz

    • 64-128GB 隨機存儲器

    • Bonded Gigabit 以太網(wǎng)卡 or 10Gigabit 以太網(wǎng)卡

    記住, 在思想上,Hadoop 體系設計為用于一種并行環(huán)境。

    如果你希望Hadoop集群擴展到20臺機器以上,那么我們推薦最初配置的集群應分布在兩個機架,而且每個機架都有一個位于機架頂部的10G的以太網(wǎng)交 換。當這個集群跨越多個機架的時候,你將需要添加核心交換機使用40G的以太網(wǎng)來連接位于機架頂部的交換機。兩個邏輯上分離的機架可以讓維護團隊更好地理 解機架內(nèi)部和機架間通信對網(wǎng)絡需求。

    Hadoop 集群安裝好后,維護團隊就可以開始確定工作負載,并準備對這些工作負載進行基準測試以確定硬件瓶頸。經(jīng)過一段時間的基準測試和監(jiān)視,維護團隊 將會明白如何配置添加的機器。異構的Hadoop集群是很常見的,尤其是在集群中用戶機器的容量和數(shù)量不斷增長的時候更常見-因此為你的工作負載所配置的 “不理想”開始時的那組機器不是在浪費時間。Cloudera管理器提供了允許分組管理不同硬件配置的模板,通過這些模板你就可以簡單地管理異構集群了。

    下面是針對不同的工作負載所采用對應的各種硬件配置的列表,包括我們最初推薦的“負載均衡”的配置:

    • 輕量處理方式的配置(1U的機器):兩個16核的CPU,24-64GB的內(nèi)存以及8張硬盤(每張1TB或者2TB)。

    • 負載均衡方式的配置(1U的機器):兩個16核的CPU,48-128GB的內(nèi)存以及由主板控制器直接連接的12-16張硬盤(每張1TB或者2TB)。通常在一個2U的柜子里使用2個主板和24張硬盤實現(xiàn)相互備份。

    • 超大存儲方式的配置(2U的機器):兩個16核的CPU,48-96GB的內(nèi)存以及16-26張硬盤(每張2TB-4TB)。這種配置在多個節(jié)點/機架失效時會產(chǎn)生大量的網(wǎng)絡流量。

    • 強力運算方式的配置(2U的機器):兩個16核的CPU,64-512GB的內(nèi)存以及4-8張硬盤(每張1TB或者2TB)。

    (注意Cloudera期望你配置它可以使用的2×8,2×10和2×12核心CPU的配置。)

    下圖向你展示了如何根據(jù)工作負載來配置一臺機器:

    為Hadoop集群選擇合適硬件

    其他要考慮的

    記 住Hadoop生態(tài)系統(tǒng)的設計是考慮了并行環(huán)境這點非常重要。當購買處理器時,我們不建議購買最高頻率(GHZ)的芯片,這些芯片都有很高的功耗 (130瓦以上)。這么做會產(chǎn)生兩個問題:電量消耗會更高和熱量散發(fā)會更大。處在中間型號的CPU在頻率、價格和核心數(shù)方面性價比是最好的。

    當我們碰到生成大量中間數(shù)據(jù)的應用時-也就是說輸出數(shù)據(jù)的量和讀入數(shù)據(jù)的量相等的情況-我們推薦在單個以太網(wǎng)接口卡上啟用兩個端口,或者捆綁兩個以太網(wǎng) 卡,讓每臺機器提供2Gbps的傳輸速率。綁定2Gbps的節(jié)點最多可容納的數(shù)據(jù)量是12TB。一旦你傳輸?shù)臄?shù)據(jù)超過12TB,你將需要使用傳輸速率為捆 綁方式實現(xiàn)的4Gbps(4x1Gbps)。另外,對哪些已經(jīng)使用10Gb帶寬的以太網(wǎng)或者無線網(wǎng)絡用戶來說,這樣的方案可以用來按照網(wǎng)絡帶寬實現(xiàn)工作負 載的分配。如果你正在考慮切換到10GB的以太網(wǎng)絡上,那么請確認操作系統(tǒng)和BIOS是否兼容這樣的功能。

    當計算需要多少內(nèi)存的時候,記住Java本身要使用高達10%的內(nèi)存來管理虛擬機。我們建議把Hadoop配置為只使用堆,這樣就可以避免內(nèi)存與磁盤之間 的切換。切換大大地降低MapReduce任務的性能,并且可以通過給機器配置更多的內(nèi)存以及給大多數(shù)Linux發(fā)布版以適當?shù)膬?nèi)核設置就可以避免這種切 換。

    優(yōu)化內(nèi)存的通道寬度也是非常重要的。例如,當我們使用雙通道內(nèi)存時,每臺機器就應當配置成對內(nèi)存模塊(DIMM)。當我們使用三通道的內(nèi)存時,每臺機器都應當使用三的倍數(shù)個內(nèi)存模塊(DIMM)。類似地,四通道的內(nèi)存模塊(DIMM)就應當按四來分組使用內(nèi)存。

    超越MapReduce

    Hadoop 不僅僅是HDFS和MapReduce;它是一個無所不包的數(shù)據(jù)平臺。因此CDH包含許多不同的生態(tài)系統(tǒng)產(chǎn)品(實際上很少僅僅做為 MapReduce使用)。當你在為集群選型的時候,需要考慮的附加軟件組件包括Apache HBase、Cloudera Impala和Cloudera Search。它們應該都運行在DataNode中來維護數(shù)據(jù)局部性。

    HBase 是一個可靠的列數(shù)據(jù)存儲系統(tǒng),它提供一致性、低延遲和隨機讀寫。Cloudera Search解決了CDH中存儲內(nèi)容的全文本搜索的需求,為新類型用戶簡化了訪問,但是也為Hadoop中新類型數(shù)據(jù)存儲提供了機會。Cloudera Search基于Apache Lucene/Solr Cloud和Apache Tika,并且為與CDH廣泛集成的搜索擴展了有價值的功能和靈活性?;贏pache協(xié)議的Impala項目為Hadoop帶來了可擴展的并行數(shù)據(jù)庫技 術,使得用戶可以向HDFS和HBase中存儲的數(shù)據(jù)發(fā)起低延遲的SQL查詢,而且不需要數(shù)據(jù)移動或轉(zhuǎn)換。

    由于垃圾回收器(GC)的超時,HBase 的用戶應該留意堆的大小的限制。別的JVM列存儲也面臨這個問題。因此,我們推薦每一個區(qū)域服務器的堆最大不超過16GB。HBase不需要太多別的資源 而運行于Hadoop之上,但是維護一個實時的SLAs,你應該使用多個調(diào)度器,比如使用fair and capacity 調(diào)度器,并協(xié)同Linux Cgroups使用。

     Impala 使用內(nèi)存以完成其大多數(shù)的功能,在默認的配置下,將最多使用80%的可用RAM資源,所以我們推薦,最少每一個節(jié)點使用96GB的RAM。與 MapReduce一起使用Impala的用戶,可以參考我們的建議 - “Configuring Impala and MapReduce for Multi-tenant Performance.” 也可以為Impala指定特定進程所需的內(nèi)存或者特定查詢所需的內(nèi)存。

    搜 索是最有趣的訂制大小的組件。推薦的訂制大小的實踐操作是購買一個節(jié)點,安裝Solr和Lucene,然后載入你的文檔群。一旦文檔群被以期望的方式來 索引和搜索,可伸縮性將開始作用。持續(xù)不斷的載入文檔群,直到索引和查詢的延遲,對于項目而言超出了必要的數(shù)值 - 此時,這讓你得到了在可用的資源上每一個節(jié)點所能處理的最大文檔數(shù)目的基數(shù),以及不包括欲期的集群復制此因素的節(jié)點的數(shù)量總計基數(shù)。

    結論

    購 買合適的硬件,對于一個Hapdoop群集而言,需要性能測試和細心的計劃,從而全面理解工作負荷。然而,Hadoop群集通常是一個形態(tài)變化的系統(tǒng), 而Cloudera建議,在開始的時候,使用負載均衡的技術文檔來部署啟動的硬件。重要的是,記住,當使用多種體系組件的時候,資源的使用將會是多樣的, 而專注與資源管理將會是你成功的關鍵。

    來源:馬哥linux運維

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();