99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀一文讀懂MapR,Apache Hadoop的MapR發(fā)行版白皮書
一文讀懂MapR,Apache Hadoop的MapR發(fā)行版白皮書
2014-11-23
收藏


一文讀懂MapR,Apache Hadoop的MapR發(fā)行版白皮書



內(nèi)容目錄

概述

戰(zhàn)略性的Hadoop

完整、先進、擁有強力支持的Hadoop發(fā)行版

易用的Hadoop

從批處理轉(zhuǎn)向?qū)崟r數(shù)據(jù)流

內(nèi)建數(shù)據(jù)壓縮機制

多集群支持

籌劃、搭建和管理集群

MapR的卷

輕松的規(guī)模化管理

可靠的Hadoop

避免作業(yè)丟失

用于大規(guī)模并具有高可用性的分布式管理節(jié)點

Hadoop高可用性及直接掛載NFS

使用快照方便地恢復(fù)數(shù)據(jù)

鏡像

更快的Hadoop

高性能架構(gòu)

性能特色

性能測試

結(jié)論

概述

現(xiàn)在每天都有2百萬人使用著互聯(lián)網(wǎng),每一次通話、每一條推特、每一封電子郵件、每一個下載或每一回購物都產(chǎn)生出有價值的信息。企業(yè)越來越依賴于使用Hadoop從迅猛增長的數(shù)據(jù)中發(fā)掘潛藏的價值,促進企業(yè)利潤的增長。僅僅Orbitz這家旅游網(wǎng)站每月就有460萬人次的訪問量,社交網(wǎng)站Facebook的用戶數(shù)量從4億變?yōu)?億只用了不到半年的時間,而社交游戲網(wǎng)站Zynga近來供應(yīng)了750萬份虛擬情人節(jié)蛋糕。這些公司有一個共同點:依靠Hadoop處理海量數(shù)據(jù)從而推動業(yè)務(wù)的發(fā)展。

Hadoop可不是只能分析點擊流,諸如傳感器輸出數(shù)據(jù)、視頻、日志文件、位置數(shù)據(jù)、基因信息、行為甚至地震分析等數(shù)據(jù),這些只是在各種政府機關(guān)及各個層次企業(yè)中Hadoop所能夠大顯身手的一小部分數(shù)據(jù)源而已。不過Hadoop并不完美,用過Hadoop的人就會明白Hadoop所面臨的挑戰(zhàn)及其不足之處。目前市面上雖有6種不同的Hadoop發(fā)行版可供選擇,然而這些發(fā)行版不但配置方案一樣,而且都存在單點故障、數(shù)據(jù)丟失的風(fēng)險及性能瓶頸這樣的缺陷。

我們?yōu)槟鷰硪粋€更好的新選擇——Apache Hadoop的MapR發(fā)行版——最簡單、最可靠、最快速的Hadoop發(fā)行版。

戰(zhàn)略性的Hadoop

在您的組織對Hadoop發(fā)行版進行評估和選擇時,應(yīng)該緊密結(jié)合自身實際情況來確定評價標準。與發(fā)行版有關(guān)的重要問題包括:

易用性如何?

能夠多大程度上方便地在集群中移動數(shù)據(jù)?

集群能否被用戶、工作任務(wù)和不同地理分布所便捷地共享?

集群是否既能處理大量文件,也可以使擁護輕松應(yīng)對訪問、保護和安全問題?

可靠性如何?

對于生產(chǎn)和商務(wù)的關(guān)鍵性數(shù)據(jù)它能否勝任?

怎樣對業(yè)務(wù)的持續(xù)性給予支持?

集群能否用從用戶或程序錯誤中恢復(fù)數(shù)據(jù)?

能否對不同集群間的數(shù)據(jù)進行鏡像?

性能如何?

處理能力是否受到批處理應(yīng)用程序的限制?

管理節(jié)點是否會成為性能瓶頸?

系統(tǒng)能否充分利用硬件資源?

MapR所提出的創(chuàng)新方案將使更多企業(yè)可以更好地利用大數(shù)據(jù)分析的能力,本發(fā)行版的諸多新特點令Hadoop更易使用、更可信賴并使其性能得以顯著提升,從而極大地拓展了Hadoop的應(yīng)用和適用范圍。

完整、先進、擁有強力支持的Hadoop發(fā)行版

大量社區(qū)開發(fā)者已經(jīng)作出了杰出的貢獻,在此基礎(chǔ)上MapR又進行了創(chuàng)新。這些新的重要技術(shù)進步,使得MapR將Hadoop打造成為一個處理實時數(shù)據(jù)流的可信交互系統(tǒng)。

MapR對Apache Hadoop API的兼容性達到100%,如兼容MapReduce、HDFS和HBase的所有API。集MapR公司與社區(qū)精英的才智于一體且已打有最新補丁,MapR完整發(fā)行版不僅經(jīng)過全面測試還具有MapR公司的支持。如圖1所示,MapR提供完整的Hadoop組件體系,包括:

語言處理組件(Hive和Pig)

數(shù)據(jù)庫組件(HBase)

工作流管理庫(Oozie)

應(yīng)用程序創(chuàng)建庫(Mahout)

Hadoop數(shù)據(jù)庫SQL輸入/輸出轉(zhuǎn)接器(Sqoop)

日志采集系統(tǒng)(Flume)

完整的MapReduce層

底層存儲服務(wù)功能

MapR突破了其他Hadoop發(fā)行版的限制,無論一個還是幾萬個節(jié)點,MapR都能夠輕松應(yīng)對其上PB級的數(shù)據(jù)量。

MapR

圖1 MapR發(fā)行版與Apache Hadoop達到100%兼容,并新增了多種提高易用性、可靠性和性能的創(chuàng)新之處

易用的Hadoop

為了讓更多的用戶容易地使用,也為了承載更大的任務(wù)量,Hadoop必須能讓用戶簡單地使用、部署、運營和管理。MapR公司致力取得關(guān)鍵性技術(shù)突破,這些突破使得在集群中轉(zhuǎn)移數(shù)據(jù)、擴展集群資源及管理大型Hadoop集群這樣的任務(wù)不但變得更加容易,而且僅需很少的人力便可完成。

從批處理轉(zhuǎn)向?qū)崟r數(shù)據(jù)流

其他發(fā)行版采用了較為繁瑣的批處理方式來管理數(shù)據(jù),從而導(dǎo)致數(shù)據(jù)處理速度的降低。應(yīng)用程序首先將數(shù)據(jù)轉(zhuǎn)運到本地或附加的網(wǎng)絡(luò)存儲中。按照預(yù)先設(shè)定的時間間隔,數(shù)據(jù)被分批載入傳統(tǒng)Apache Hadoop的一次性寫入式文件系統(tǒng)中。最后,分析生成結(jié)果并將這些結(jié)果分批卸載以待進一步的分析。

標準的批處理方式使得在應(yīng)用程序數(shù)據(jù)生成與Hadoop集群數(shù)據(jù)分析之間形成明顯時滯。即使通過提高數(shù)據(jù)加載頻率這樣的手段可以最大程度地縮小這個時滯,卻同時產(chǎn)生了數(shù)量眾多的小文件,如此之多的小文件對于傳統(tǒng)Hadoop擴展性的極限形成了巨大的挑戰(zhàn)。此外,其他的Hadoop發(fā)行版也受到Hadoop分布式文件系統(tǒng)(HDFS)的限制,類似于常見的CD-ROM,HDFS也是一次性寫入的文件系統(tǒng),不僅不能夠?qū)σ褜懭胛募M行修改,也不允許對未關(guān)閉的文件進行讀取。

與這些Hadoop發(fā)行版截然相反,MapR基于行業(yè)標準的網(wǎng)絡(luò)文件系統(tǒng)(Network File System,NFS)協(xié)議,使用NFS直接存取技術(shù)對數(shù)據(jù)流進行實時讀/寫。利用該項技術(shù),不但任一遠程客戶端都可方便地掛載集群文件系統(tǒng),各個應(yīng)用服務(wù)器還能夠?qū)⑷罩净蚱渌麛?shù)據(jù)直接寫入集群,而不必將數(shù)據(jù)先導(dǎo)入本地或網(wǎng)絡(luò)存儲之中。在MapR的無鎖存儲服務(wù)技術(shù)的支持下,MapR直接存取NFS技術(shù)讓用戶可以更快更經(jīng)濟地使用Hadoop

有別與傳統(tǒng)Hadoop一次性寫入式的文件系統(tǒng),MapR允許根據(jù)用戶需要對文件進行修改、覆蓋或讀取。MapR無鎖存儲服務(wù)技術(shù)支持對任意文件進行多個并發(fā)的讀/寫操作。

用戶可以使用圖形化的文件瀏覽器訪問和操作集群中的數(shù)據(jù)。使用文件瀏覽器,用戶可以僅僅是瀏覽文件,也可以點擊鼠標來自動打開有關(guān)應(yīng)用程序,還可以拖拽文件或目錄而使其移入或移出集群。

可以使用文本編輯器或集成開發(fā)環(huán)境(Integrated Development Environments,IDEs)直接編輯集群中的文件。

在MapR中,用戶可以直接使用標準的命令行工具、UNIX應(yīng)用程序及其他工具(如Grep、Sed、Tar、Sort和Tail)來處理集群中的數(shù)據(jù)。對其他Hadoop發(fā)行版而言,用戶不是需要再進行開發(fā),就是為了使用標準化工具而把數(shù)據(jù)從集群中拷貝出來。

如Flume之類的日志采集工具經(jīng)常需要在每臺應(yīng)用服務(wù)器上額外運行代理程序,而MapR大大降低了對日志采集工具的依賴。MapR既允許應(yīng)用服務(wù)器直接向集群中寫入數(shù)據(jù),也允許使用Rsync這樣的標準化工具在本地磁盤和集群間同步數(shù)據(jù)。

應(yīng)用程序的二進制代碼、庫及配置文件可以在直接在集群內(nèi)部存儲和訪問,并且操作十分簡單。

內(nèi)建數(shù)據(jù)壓縮機制

雖然一般的Hadoop發(fā)行版也可以對數(shù)據(jù)進行壓縮,但實現(xiàn)起來既困難又低效。所以通常的做法是,先手工將數(shù)據(jù)進行壓縮再將其拷入集群,而后執(zhí)行指定的MapReduce任務(wù)對壓縮的數(shù)據(jù)進行索引(假設(shè)應(yīng)用程序需要采用并行處理)。為了達到壓縮指標,還需要修改應(yīng)用程序。

MapR的自動壓縮功能在提升了性能的同時又能夠?qū)χ匾拇鎯M行備份。所以說,MapR壓縮方案節(jié)省了網(wǎng)絡(luò)I/O帶寬和存儲空間的占用。

多集群支持

不論是為了分發(fā)不同數(shù)據(jù)或應(yīng)用程序,還是為了業(yè)務(wù)的持續(xù)性,亦或是出于性能考慮,企業(yè)都經(jīng)常需要操作多個Hadoop集群。MapR內(nèi)在的設(shè)計使其可以支持多集群作業(yè)、直接存取、遠程鏡像和多集群管理。

直接存取。所有的MapR Hadoop集群都可以讓用戶簡單地在集群內(nèi)外直接存取數(shù)據(jù)。假設(shè)一家組織擁有“dev”和“test”兩個集群,人們可以在/mapr/dev目錄下使用dev集群中的文件,也可以在/mapr/test目錄下訪問test集群中的文件。不管使用Hadoop集群直接訪問(hadoop fs -ls /mapr/dev/user/jdoe)還是通過遠程NFS方式(ls /mapr/dev/user/jdoe),訪問路徑都是相同的。除此之外,用戶可以通過執(zhí)行一個簡單的命令(cp /mapr/dev/foo.txt /mapr/test/)就能夠在不同集群之間拷貝文件,而且配置不同集群間的符號鏈接也是很容易的事情。

遠程鏡像。利用MapR鏡像工具,用戶可以很輕松地配置MapR來為不同集群的數(shù)據(jù)做鏡像。MapR的這個功能不僅能夠用于支撐持續(xù)性業(yè)務(wù)(為另一個集群做數(shù)據(jù)鏡像),也能用于保障生產(chǎn)或研究中各個集群間的同步。

多集群管理。使用MapR控制系統(tǒng)(MCS),用戶可以看到所有正在運行的MapR集群,也能夠輕松地查看和切換可用集群。

籌劃、搭建和管理集群

正如數(shù)據(jù)分析需求的不斷增長一樣,人們對昂貴的集群資源進行有效管理和利用的需求也在不斷增長。不論是定位或存取數(shù)據(jù),還是對數(shù)據(jù)施用策略,都對大規(guī)模數(shù)據(jù)的有效管理提出了一個巨大的挑戰(zhàn)。集群的架構(gòu)必須能夠支撐應(yīng)用程序、用戶、部門和管理者對海量文件管理的需求。集群的應(yīng)用和數(shù)據(jù)必須既能滿足技術(shù)需求,又得兼顧企業(yè)利益。

企業(yè)級的應(yīng)用方案,通常需要對下述問題進行考察:

需要怎樣的CPU處理能力?(現(xiàn)在和將來)

需要怎樣的存儲能力?(現(xiàn)在和將來)

應(yīng)用程序是否具有高I/O存儲需求?

具有哪些的數(shù)據(jù)保護需求?

具有哪些業(yè)務(wù)持續(xù)性需求?

需要采用何種安全授權(quán)和存取控制的手段?

在MapReduce的環(huán)境下,上述問題則對Hadoop發(fā)行版全面性和靈活性提出了更高的要求。其他Hadoop發(fā)行版都是在文件層面上進行策略(如所有者、復(fù)制等)管理,事實上它無法處理可能面對的數(shù)以百萬計的文件。MapR是企業(yè)級發(fā)行版,具有先進的數(shù)據(jù)管理功能,正如文章標題中所稱,MapR可以讓企業(yè)簡單、容易而又經(jīng)濟地實現(xiàn)業(yè)務(wù)層次的各項目標。

MapR的卷

MapR的卷讓用戶便捷地存取和管理集群中的數(shù)據(jù)。為了容易被組織、管理和確保安全,MapR采用樹狀結(jié)構(gòu)把相關(guān)的文件和目錄都分類匯集起來形成卷。MapR的卷具有如下功能:

  1. 復(fù)制。復(fù)制參數(shù)決定了整個集群中數(shù)據(jù)副本的數(shù)量。
  2. 快照。不必費時費力地復(fù)制數(shù)據(jù),MapR的快照功能就能夠在線實時恢復(fù)數(shù)據(jù)。
  3. 鏡像。MapR的鏡像具有負載均衡、跨集群備份、大容量數(shù)據(jù)遷移以及為確保業(yè)務(wù)持續(xù)性的失效備援的功能。本地鏡像可高效、頻繁存取數(shù)據(jù),而遠程鏡像則負責(zé)保障業(yè)務(wù)的連續(xù)性并在企業(yè)原有系統(tǒng)和私有云間進行集成。
  4. 配額。通過限制任何用戶、用戶組和卷的磁盤空間,或是為特定的用戶和用戶組分配一個卷,企業(yè)可以使用配額來對應(yīng)用程序、用戶或部門的需求進行精確的管理。MapR擁有集群內(nèi)部的存儲配額管理能力,配額既可配置用于一個單獨的卷,也可以用于一個用戶或用戶組。一旦配額即將溢出,系統(tǒng)會自動發(fā)送電子郵件進行提醒。用戶和用戶組可以來自本地系統(tǒng),也可以來自如NIS或LDAP這樣的標準名稱服務(wù)器。
  5. 數(shù)據(jù)位置控制。MapR允許根據(jù)需求把數(shù)據(jù)保存在集群內(nèi)指定的位置上。比如,可以將那些具有頻繁I/O請求的應(yīng)用程序數(shù)據(jù)放置到SSD這類的高速設(shè)備中,而其他數(shù)據(jù)則存放在標準磁盤設(shè)備上。
  6. 管理權(quán)限。集群管理員有時需要對其他用戶進行授權(quán),這時可授予管理權(quán)限有:允許特定用戶創(chuàng)建和刪除卷、運行鏡像和快照、設(shè)定配額等。
  7. 數(shù)據(jù)存取。用戶可在卷級別對數(shù)據(jù)進行存取。MapR集成了標準的目錄服務(wù),如LDAP或NIS。

輕松的規(guī)?;芾?/strong>

管理大規(guī)模的Hadoop集群,可視化和自動化非常必要。管理員的確沒有時間對服務(wù)器進行逐一排障和管理。在高級的數(shù)據(jù)管理和自我恢復(fù)功能幫助下,僅需一個管理員就能輕松管理上千個節(jié)點的MapR集群。

MapR的下述特點令管理變得更加容易:

  1. 具有經(jīng)過測試、功能完善的Hadoop堆棧,預(yù)先集成了豐富的組件,如Hive、Pig、Oozie等等。
  2. 安裝簡單
  3. 擁有完善的管理工具,如GUI、CLI及REST APIs
  4. 系統(tǒng)更新及撤銷回滾無需暫停業(yè)務(wù)

MapR控制系統(tǒng)(MCS)對集群的資源和對集群的操作實現(xiàn)完全可視化。如圖2所示,通過集群拓撲的組織(例如數(shù)據(jù)中心和機架),MCS所包含的MapR Hadoop Heatmap工具被設(shè)計用于對上千的節(jié)點進行管理,它能夠以可視化的形式展現(xiàn)節(jié)點的健康情況、服務(wù)狀態(tài)和資源使用狀況。若要了解整個集群的健康情況,MapR Hadoop Heatmap讓您一看便知。對于數(shù)量眾多的節(jié)點、文件和卷,用戶可以利用過濾器直接選取指定的部分,也可以使用群管理器直接運行管理動作。

MapR

圖2 MapR Hadoop Heatmap令每個集群中
所有節(jié)點的狀態(tài)一目了然

可靠的Hadoop

可靠性對于業(yè)務(wù)的持續(xù)運營至關(guān)重要,企業(yè)對系統(tǒng)的可靠性、可用性和存儲能力都有著較高要求——對于生產(chǎn)性數(shù)據(jù)尤其如此。與其他發(fā)行版不同,MapR采用了完全分布式的架構(gòu)來滿足企業(yè)級集群運行需求,并提供可信的數(shù)據(jù)存儲以確保在共享環(huán)境下數(shù)據(jù)依舊安全:

  1. 高可用性。MapR的每一部分不但都是事務(wù)性和日志性的,而且僅需數(shù)秒便可重啟。整個集群可以自行恢復(fù)與調(diào)整。公司重寫了作業(yè)調(diào)度器和管理節(jié)點,使其變?yōu)榉植际讲⒖杀粡?fù)制。NFS的高可用性意味著客戶機不必掛起等待無效服務(wù)器。滾動式的更新方式確保集群一直處于可用狀態(tài)。
  2. 數(shù)據(jù)保護。不同于一般的發(fā)行版,MapR不存在單點故障問題,集群中的元數(shù)據(jù)具有三份副本。從客戶機內(nèi)存到集群中的磁盤,MapR全程監(jiān)控著靜默數(shù)據(jù)損壞問題并進行端到端的校驗。MapR快照工具具有實時恢復(fù)鏡像的功能,而MapR鏡像工具則通過使用遠程或本地鏡像對數(shù)據(jù)進行保護以保證業(yè)務(wù)的連續(xù)進行。
  3. 災(zāi)難恢復(fù)。遠程鏡像可以對遠端站點中的集群數(shù)據(jù)進行同步備份,即使遇到災(zāi)害企業(yè)依舊能夠持續(xù)運營。使用MapR控制系統(tǒng)可以輕松管理大量地理集中或分散的集群。
  4. 安全、共享的環(huán)境。MapR保護系統(tǒng)資源不受失控作業(yè)的影響,保證所有應(yīng)用都能夠從核心集群里獲取資源。而在其他發(fā)行版中,用戶作業(yè)中的Bug(如無限循環(huán))則會影響到重要的系統(tǒng)守護進程。
  5. 監(jiān)控。MapR自帶的過濾器通知和警告功能不僅支持許多層面,包括集群范圍、預(yù)定的服務(wù)、預(yù)先配置的卷、任一用戶或用戶組以及任何一個節(jié)點,還支持群發(fā)電子郵件。使用率追蹤和配額功能能夠幫助管理員有效跟蹤資源并了解負荷程度。當(dāng)然,用戶也可以集成并使用第三方的監(jiān)控系統(tǒng)。

避免作業(yè)丟失

Hadoop利用作業(yè)調(diào)度器(JobTracker)跟蹤遍布集群不計其數(shù)的Mapper和Reduce任務(wù)。不幸的是其他發(fā)行版中的作業(yè)調(diào)度器僅在一個節(jié)點上運行,使得整個集群存在單點故障的可能性。一旦作業(yè)調(diào)度器失效,所有正在運行的作業(yè)都將失效,而且所有進程也將丟失。此外,管理員首先還必須首先能夠探查到問題的根源,然后手動重啟作業(yè)調(diào)度器使集群重新恢復(fù)正常。

MapR擁有高可用的作業(yè)調(diào)度器,它在縮減恢復(fù)時間的同時還支持集群自我恢復(fù)。若是某個作業(yè)調(diào)度器失效,任務(wù)控制器將自動暫停,此時集群中會有另一個節(jié)點上的MapR作業(yè)調(diào)度器自動啟動,任務(wù)管理器將等待直至重新連接到新啟動的作業(yè)控制器。整個過程中所有正在運行的作業(yè)或任務(wù)都將繼續(xù)運行,而不會出現(xiàn)作業(yè)失效或丟失進程的現(xiàn)象。

用于大規(guī)模并具有高可用性的分布式管理節(jié)點

Hadoop中,管理節(jié)點追蹤并記錄集群中數(shù)據(jù)的所在位置。其他發(fā)行版里,即使是規(guī)模很大的集群,仍然使用單臺服務(wù)器來運行管理節(jié)點,這會產(chǎn)生很多問題。MapR采用分布式管理節(jié)點而解決了這些問題。

  1. 沒有單點故障。單一管理節(jié)點可以引發(fā)單點故障,如果節(jié)點宕掉,整個集群都無法使用,只有再花費數(shù)分鐘甚至數(shù)小時的時間重啟管理節(jié)點才能讓集群重新運行起來。在MapR中,集群的所有節(jié)點都能夠存儲和處理元數(shù)據(jù),故而即使在多磁盤或節(jié)點失效的情況下也不會有丟失或停工的發(fā)生。
  2. 沒有文件數(shù)量限制。即使是運行在性能超強服務(wù)器上,其他發(fā)行版的管理節(jié)點最多也只能處理7000萬份的文件量。實際上為了試圖解決這個問題,許多大型Hadoop站點需要在集群中進行遍歷來搜尋和登記文件的,這種做法不但占用大量日常作業(yè)任務(wù)還浪費了資源和金錢。而MapR的分布式管理節(jié)點數(shù)量與節(jié)點總數(shù)保持線型增長,對文件數(shù)量沒有任何限制。
  3. 具有性能優(yōu)勢。別的Hadoop發(fā)行版由于集群內(nèi)的所有元數(shù)據(jù)操作(如查詢、創(chuàng)建)必須通過單一的管理節(jié)點才能實現(xiàn),使得系統(tǒng)性能受到制約。這一問題既影響了系統(tǒng)性能,又限制了集群所能處理的工作量。然而,MapR集群任一節(jié)點都能夠存儲和處理元數(shù)據(jù),意味著規(guī)模更大的集群將獲得更高的性能。

Hadoop高可用性及直接掛載NFS

MapR的若干創(chuàng)新使NFS的存取更好用也更穩(wěn)定。通過使用虛擬IP地址保障集群的高可用性,令Hadoop更符合生產(chǎn)環(huán)境的要求。很多集群節(jié)點(乃至集群中的所有節(jié)點)都能作為NFS網(wǎng)關(guān),同時MapR采用了透明的錯誤管理機制。用戶還可以配置負載均衡使得客戶端能夠均勻地分布到整個NFS網(wǎng)關(guān)中。此外,MapR允許NFS客戶端控制數(shù)據(jù)塊的大?。ㄈ纾?4MB、128MB、256MB),并能通過隱藏在每個目錄下(類似于Linux中的/proc目錄)的一個偽文件進行壓縮設(shè)置。

使用快照方便地恢復(fù)數(shù)據(jù)

由于每天都要收集并處理海量的數(shù)據(jù),因此對如此之多的數(shù)據(jù)原封不動地備份通常都是不現(xiàn)實的。與此同時,一旦遇到應(yīng)用程序崩潰或操作失誤,企業(yè)要求系統(tǒng)必須可以還原特定時間點上的數(shù)據(jù)。數(shù)據(jù)副本是其他Hadoop發(fā)行版提供的唯一數(shù)據(jù)保護手段,然而遺憾的是,數(shù)據(jù)副本只能在磁盤和節(jié)點失效的情況起作用,卻無法應(yīng)對整個集群處處都可能發(fā)生的用戶或應(yīng)用程序出現(xiàn)的錯誤。許多Hadoop用戶正是由于這些錯誤才導(dǎo)致其重要數(shù)據(jù)的丟失。

MapR的快照功能允許組織自行創(chuàng)建還原點對象,通過提供時間點還原鏡像來保護系統(tǒng)免受用戶或程序的錯誤之苦。MapR快照由MapR控制系統(tǒng)進行管理并對MapR卷進行操作,它可以被設(shè)定成定期計劃任務(wù)也可以根據(jù)需要來隨時執(zhí)行。對某個快照進行恢復(fù)就如同瀏覽快照目錄或是把目錄或文件拷入當(dāng)前目錄中一樣簡單。用戶可以為個別的卷單獨建立快照,也可以為不同的卷設(shè)定不同的快照任務(wù)計劃。

MapR同樣支持制訂復(fù)雜的任務(wù)計劃。例如,“重要”數(shù)據(jù)的快照計劃可能包括:

一天24小時,每小時進行一次快照。

一周7天,每天中午12點整進行一次快照。

每周周日中午12點整進行一次快照,持續(xù)12周。

MapR快照具備高性能和低磁盤占用等優(yōu)勢:

速度極快。創(chuàng)建一份快照無需對數(shù)據(jù)進行拷貝,也就是說PB級別的一份快照在幾秒鐘內(nèi)即可完成。

原子操作??煺詹僮鞫际窃有缘?,它具有完整的連續(xù)性。

不影響寫性能。快照操作對寫入操作性能沒有任何影響。MapR使用的是直寫操作,即系統(tǒng)中的每次寫動作都將寫入至磁盤的一個新塊,直接寫入操作比復(fù)制寫入操作效率更高。

最小化存儲占用。如果文件不被修改或刪除,快照將不會占用任何磁盤空間。所有未作改動的數(shù)據(jù)塊都同時被快照和卷內(nèi)的即時讀/寫鏡像所共用。因此,MapR的快照技術(shù)能夠最低限度地占用磁盤空間,在目標數(shù)據(jù)塊寫入性能零損失的基礎(chǔ)上還可以提供速度極快的分布式快照。

鏡像

很多企業(yè)都需要對他們的數(shù)據(jù)創(chuàng)建時間點的物理備份,MapR的鏡像功能能夠滿足企業(yè)的這一需求。MapR鏡像有兩種明顯不同的使用形式:遠程鏡像(正如本小節(jié)所描述)應(yīng)用于集群間的災(zāi)難恢復(fù)、研發(fā)與測試或是共有云與私有云的集成,本地鏡像(參見性能小節(jié))則用于同一集群內(nèi)的負載均衡或性能增強。遠程鏡像能夠支持眾多的用例。

  1. 災(zāi)難恢復(fù)(Disaster recovery,DR)。組織可以應(yīng)用遠程鏡像部署容災(zāi)性的另一個集群。該集群一般安置于其他數(shù)據(jù)中心或地區(qū),一旦發(fā)生數(shù)據(jù)丟失便可利用容災(zāi)集群進行數(shù)據(jù)恢復(fù),而且即便主集群受到災(zāi)害影響,所有的應(yīng)用程序都可以切換至容災(zāi)集群上。
  2. 研究性集群。組織可以使用MapR輕松地部署一個與生產(chǎn)集群并行的研究性或測試性集群。管理員能夠十分輕松地在研究性集群中創(chuàng)建卷的鏡像,系統(tǒng)也會定期把生產(chǎn)環(huán)境中的數(shù)據(jù)鏡像做到研究性集群之中。這一功能使用戶可以在研究性集群的環(huán)境中處理真實的、最新的數(shù)據(jù)。
  3. 公有云與私有云的集成。由于絕大多數(shù)的組織都選擇在自己的硬件平臺上運行Hadoop,有的組織感到有時很有必要使用其他公有云集群(如Amazon EC2)來獲取額外的計算能力。例如,某個組織決定在每周五晚都將使用EC2上的100個節(jié)點來滿足特定的處理需求。MapR能夠既簡單又輕松地同步公有云集群與本地集群中的數(shù)據(jù)。
  4. 高效。MapR的鏡像不同于其他發(fā)行版,因為鏡像中僅對數(shù)據(jù)源的改動進行記存。例如,假設(shè)某一文件中僅有一個8KB的數(shù)據(jù)塊被修改,在下一個鏡像中也只有這個小塊而非整個文件將被傳送,這些數(shù)據(jù)在網(wǎng)絡(luò)中傳輸時還要經(jīng)過壓縮并使用校驗來確保數(shù)據(jù)的完整性。如果需要使用同一個卷的多個鏡像,鏡像可以被分層傳送以減少對傳輸帶寬的占用。存儲原始卷的服務(wù)器對數(shù)據(jù)進行異步傳輸和并行處理,這并不會影響本地系統(tǒng)的性能。
  5. 在線傳送或者線下儲運。如果數(shù)據(jù)量過于巨大以致不適用網(wǎng)絡(luò)進行傳輸,可以把鏡像保存到數(shù)據(jù)源所在地的一個或更多可移動的磁盤或服務(wù)器中,隨后將其物理地運送至目的地再進行裝載(于是也被稱為“步行網(wǎng)”)。網(wǎng)絡(luò)和步行網(wǎng)的鏡像可以相互操作。比如,可以在原集群中創(chuàng)建一份相當(dāng)大的鏡像,隨后將其運輸至很遠的目的地,接著原集群便可從遠程集群大量加載并同步數(shù)據(jù)。
  6. 原子操作。MapR的鏡像功能基于MapR快照,具備原生的原子操作。當(dāng)一個鏡像操作所需的所有數(shù)據(jù)都被目標集群接收后,目標集群才會改變,也就意味著目標集群的更新也是原子性的。用戶可以使用GUI、CLI或REST API工具來配置和監(jiān)控鏡像之間的關(guān)聯(lián)。類似于快照任務(wù)計劃,鏡像任務(wù)計劃也可以在卷層面上進行設(shè)置。

更快的Hadoop

MapR最初就被設(shè)計為一款具有十分突出的I/O和性能優(yōu)勢的Hadoop發(fā)行版。不論集群規(guī)模是大還是小、擁有一個還是上千節(jié)點,MapR都能提高集群的性能。

高性能架構(gòu)

從一開始,為了提升性能MapR公司就已經(jīng)進行了重新設(shè)計,打造出的MapR發(fā)行版具有多方面的架構(gòu)特色,包括:

  1. MapR無鎖存儲服務(wù)。MapR無鎖存儲服務(wù)加速了MapReduce的性能外還提供多維度的擴展性能。首先,在實際運行中為了避免鎖定沖突,使用數(shù)據(jù)路由表而非互斥鎖或自旋鎖。其次,有許多用戶應(yīng)用程序分布在不同的節(jié)點中,為了維護執(zhí)行這些程序所需的資源,棄用線程而采用了狀態(tài)機。再有,MapR無鎖存儲服務(wù)不是通過HDFSLinux文件系統(tǒng)層而是直接對塊設(shè)備進行寫入。
  2. 樂觀性Shuffle。MapR的Shuffle過程利用了MapR無鎖存儲服務(wù)的特點來對Mapper和Reducer的任務(wù)進行排列。于是當(dāng)Reducer讀取Mapper輸出時數(shù)據(jù)都是從磁盤(也可能是跨磁盤間)連續(xù)讀出的,這種做法具有相當(dāng)強的性能。樂觀性的MapR Shuffle并不使用Linux頁面緩存,從而避免了與用戶應(yīng)用程序搶占寶貴的內(nèi)存資源。于是,MapR的Shuffle過程比其他發(fā)行版要快三倍。
  3. 分布式管理節(jié)點。由于其他Hadoop發(fā)行版依靠唯一的管理節(jié)點來管理整個集群的元數(shù)據(jù)操作。相反地,MapR的管理節(jié)點是分布式的,它的元數(shù)據(jù)操作遍布整個集群,因而具有更高級別的可伸縮性。
  4. 內(nèi)建壓縮機制。MapR對數(shù)據(jù)進行壓縮以節(jié)省磁盤和網(wǎng)絡(luò)I/O,整個過程完全透明。
  5. 開發(fā)語言。MapR底層是用C/C++進行編寫的。除了能夠獲得更高的效率和性能外,選擇這種語言進行開發(fā)還能克服其他發(fā)行版都頭疼的垃圾收集問題。
  6. 多網(wǎng)卡支持。如今絕大部分服務(wù)器上都配備至少兩塊網(wǎng)卡(Network Interface Controllers,NICs)。MapR通過綁定網(wǎng)卡可以在每一個節(jié)點上使用多個網(wǎng)卡而無需在交換層綁定端口。在網(wǎng)絡(luò)上的其他機器看來,MapR集群中的任何兩塊對等網(wǎng)卡只有一個端口是開放的。
  7. 最小化CPU或存儲空間占用。在集群中MapReduce應(yīng)用程序運行在相同的節(jié)點上并將其視為文件服務(wù)器,MapR從基礎(chǔ)架構(gòu)本身著手來最大程度地降低CPU和存儲空間占用,從而確保能有充足的CPU、內(nèi)存和其他資源來運行用戶應(yīng)用程序。此外,所有的MapR服務(wù)都作為用戶空間進程執(zhí)行——既提升了性能又不影響系統(tǒng)穩(wěn)定。

性能特色

不僅僅是先進的架構(gòu),MapR的數(shù)據(jù)位置控制和本地鏡像功能還可以讓用戶對Hadoop應(yīng)用進行定制,進而使性能得到再次提升。

  1. 數(shù)據(jù)位置控制。MapR可以對數(shù)據(jù)位置進行控制,而其他發(fā)行版卻無法控制集群內(nèi)數(shù)據(jù)的物理存儲位置。面對全部可用節(jié)點,數(shù)據(jù)位置控制可用于對卷設(shè)定訪問策略使其僅對某一部分節(jié)點開放,也可以將某個卷單獨綁定到指定機架或數(shù)據(jù)中心上,亦或是綁定到某些特定硬件配置的機器上。例如,一個需要對會話查詢表進行隨機和高頻訪問的應(yīng)用程序,就可以將查詢表所在的MapR的卷專門綁定到那些裝配SSD硬盤驅(qū)動器的集群節(jié)點上,這將使集群性能獲得極大的提升。
  2. 本地鏡像及鏡像卷。MapReduce會產(chǎn)生訪問相同數(shù)據(jù)的大量進程。如果使用傳統(tǒng)Hadoop技術(shù),對一個文件系統(tǒng)元素的大量并發(fā)訪問很快就會導(dǎo)致文件服務(wù)器的崩潰而使得整體性能下降,特別是在啟動新作業(yè)時表現(xiàn)的更為明顯。MapR中的用戶可以使用本地鏡像(又稱為鏡像卷)來創(chuàng)建卷的多個副本。這些副本都采用相同的路徑進行訪問并可同步更新,系統(tǒng)還能夠自動地在這些副本中對讀請求進行負載均衡處理。

性能測試

公司已經(jīng)對MapR發(fā)行版進行了多項測試,比如流式I/O、隨機I/O及MapReduce性能等,并與其他Apache Hadoop發(fā)行版進行比較來評估MapR的性能。結(jié)果參見后續(xù)小節(jié)。

流式I/O性能

作為Hadoop領(lǐng)域內(nèi)的第一個I/O性能測試基準,DFSIO基準成為了衡量流式I/O性能的有用工具。通過運行一項多mappers和單reducer的MapReduce作業(yè),重點考察mapper平均的轉(zhuǎn)換率(用MB/s表示)。在本測試中,MapR工程師使用10個節(jié)點的集群進行測試。如圖3所示。

MapR

圖3 DFSIO測試(數(shù)值越大越好)顯示MapR比其他發(fā)行版快三倍

系統(tǒng)采用10節(jié)點集群進行測試,每個節(jié)點的主要硬件配置是:兩顆四核處理器、24GB內(nèi)存和12塊1TB 7200轉(zhuǎn)SATA硬盤驅(qū)動器。正如在圖中所示,MapR中的I/O幾乎達到硬件設(shè)備的物理極限。CPU在測試中基本上處于閑置狀態(tài),說明了數(shù)據(jù)通道是高效的。測試中的寫入速度由于校驗而稍微有些偏低。

隨機I/O性能

有些應(yīng)用程序需要創(chuàng)建和訪問數(shù)量眾多的文件。為了對這方面性能進行評估,MapR工程師基于NNBench對比測試了MapR和其他發(fā)行版的效果,本測試是通過重復(fù)如下步驟來進行的:

新建一個文件

向文件中寫入100字節(jié)

關(guān)閉文件

程序運行在10個相同節(jié)點的集群上,每個節(jié)點同時部署了傳統(tǒng)Apache Hadoop發(fā)行版和MapR發(fā)行版。為了完成測試關(guān)閉了傳統(tǒng)發(fā)行版中的塊報告功能。測試的結(jié)果如圖4所示。

MapR

圖4 MapR在隨機I/O測試中完勝傳統(tǒng)發(fā)行版

MapR不論是在速度上(縱軸)還是在容量上(橫軸)都獲得十分出色的結(jié)果。實際上,由于差距如此之大以至于傳統(tǒng)發(fā)行版的結(jié)果必須經(jīng)過放大才能看到。即便關(guān)閉了塊報告功能,傳統(tǒng)發(fā)行版最多只能寫入150萬份文件隨后曲線便陡然下降。與此不同,MapR完成9000萬份文件寫入任務(wù)時,速度才從12000份/秒降低到4000份/秒。結(jié)果說明MapR的擴展能力是普通發(fā)行版的60倍。

MapReduce性能

除了I/O,工程師也想對MapR的數(shù)據(jù)分析性能進行評估。采用Terasort測試,測驗平臺仍然是10節(jié)點集群進行測試,每個節(jié)點的硬件都含有兩顆四核處理器、24GB內(nèi)存和12塊1TB 7200轉(zhuǎn)SATA硬盤驅(qū)動器。Benchmark測試的結(jié)果如圖5所示。

MapR

圖5 在Terasort測試中(越小越好)MapR的性能幾乎領(lǐng)先傳統(tǒng)發(fā)行版近3倍

MapR

MapR及其他發(fā)行版的擴展性比較

結(jié)論

MapR相信不斷加深的數(shù)據(jù)處理危機需要戰(zhàn)略性地重視Hadoop平臺的選擇。雖然已經(jīng)有許多發(fā)行版可以拿來使用,但只有與眾不同的MapR發(fā)行版才突破了其他發(fā)行版的各種不足和限制(如表2所示)。MapR具有其他發(fā)行版根本不具備的獨特特色和功能,包括:

簡易的安裝、部署和管理集群,全程可視化,操作簡便

企業(yè)級的存儲訪問和存儲管理,企業(yè)級的可靠性

由于性能的突破,可以通過顯著降低硬件需求從而控制成本

MapR的努力和創(chuàng)新讓Hadoop變得更加簡單、可靠和快速,使其能夠滿足現(xiàn)今絕大多數(shù)應(yīng)用的需要,而且我們也做好了迎接未來挑戰(zhàn)的準備。

MapR

MapR及其他發(fā)行版的擴展性比較

MapR技術(shù)公司打造出了業(yè)內(nèi)最快、最為可靠、也最易用的Aapche Hadoop發(fā)行版。本公司致力于推進Hadoop平臺及其生態(tài)系統(tǒng),使更多企業(yè)能夠利用大數(shù)據(jù)分析的威力獲得競爭優(yōu)勢。您可以訪問公司網(wǎng)站www.mapr.com來獲取更多信息。


數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }