Hadoop大數(shù)據(jù)分析:Azure HDInsight服務(wù)預(yù)覽
微軟最新Windows Azure數(shù)據(jù)中心扁平網(wǎng)絡(luò)存儲(chǔ)(Flat Network Storage)架構(gòu),展示Hadoop眾所周知的“將計(jì)算轉(zhuǎn)移到數(shù)據(jù)上”的特性,對大數(shù)據(jù)分析使用高可用性和可持續(xù)的blob存儲(chǔ)集群成為現(xiàn)實(shí)。
微軟全球副總裁Scott Guthrie三月份宣布了該公司HDInsight服務(wù)預(yù)覽版的主要升級,即Hortonworks Hadoop Data Platform v1.1.0。此次更新的預(yù)覽版中的DevOps特性,讓開發(fā)者可以更輕松的用Windows Azure服務(wù)訂閱創(chuàng)建高性能HDInsight計(jì)算集群,通過Windows Azure Management Portal實(shí)現(xiàn)(圖一)。
SQL Server群組的新版本由以下這些開源Apache Hadoop組件以及可再分布的微軟Java數(shù)據(jù)庫連接(JDBC)驅(qū)動(dòng)組成:
• Apache Hadoop, Version 1.0.3
• Apache Hive, Version 0.9.0
• Apache Pig, Version 0.9.3
• Apache Sqoop, Version 1.4.3
• Apache Oozie, Version 3.2.0
• Apache H.Catalog, Version 0.4.1
• Apache Templeton, Version 0.1.4
• SQL Server JDBC Driver, Version 3.0
圖一.開發(fā)者或者DevOps專家用Windows Azure Management Portal對HDInsight數(shù)據(jù)服務(wù)集群規(guī)定計(jì)算結(jié)點(diǎn)。
一個(gè)集群包含一個(gè)每小時(shí)成本0.48美元的超大頭結(jié)點(diǎn),以及一個(gè)或者一個(gè)以上的大型計(jì)算結(jié)點(diǎn),每小時(shí)成本0.24美元。因此,四個(gè)結(jié)點(diǎn)的小范圍集群費(fèi)用為每小時(shí)1.44美元,或者每月1000美元。(微軟基于其每小時(shí)2.88美元的收費(fèi)價(jià)格列表提出,但是對于實(shí)際的時(shí)間打五折;點(diǎn)擊獲取更多HDInsight價(jià)格信息。)Windows Azure上的Hadoop第一次預(yù)覽提供了預(yù)構(gòu)建、可再生的三個(gè)結(jié)點(diǎn)集群,壽命為24小時(shí);隨后的升級增加到五天的壽命,但是關(guān)閉了可再生功能。數(shù)據(jù)存儲(chǔ)和出口帶寬收費(fèi)在最新的預(yù)覽版中沒有折扣,但是對亞馬遜Web服務(wù)的簡單對象存儲(chǔ)服務(wù)(S3)具有競爭性。打折的Azure服務(wù)不提供服務(wù)水平協(xié)議。
將HDFS存儲(chǔ)從本地文件系統(tǒng)轉(zhuǎn)移到Windows Azure blob
Hadoop最基本的DevOps格言之一就是“將計(jì)算轉(zhuǎn)移到數(shù)據(jù)上”,通常需要托管Hadoop分布式文件系統(tǒng)(HDFS)數(shù)據(jù)存儲(chǔ)文件,并在運(yùn)營系統(tǒng)的文件系統(tǒng)中計(jì)算操作。Windows Azure開發(fā)者習(xí)慣了Azure blob存儲(chǔ),這種存儲(chǔ)通過三次復(fù)制所有的存儲(chǔ)對象,提供了高可用性。加強(qiáng)了可持續(xù)性,災(zāi)難恢復(fù)通過地理復(fù)制激活,地理位置設(shè)置好后,在相同的區(qū)域中的Windows Azure數(shù)據(jù)中心中一式三份復(fù)制。比如,在西歐都柏林創(chuàng)建了Azure blob存儲(chǔ),就會(huì)自動(dòng)復(fù)制到北歐的阿姆斯特丹。HDFS不提供內(nèi)建可用性和可持續(xù)性特性。
HDFS在本地文件系統(tǒng)上運(yùn)行,對比HDInsight 服務(wù)第一代網(wǎng)絡(luò)架構(gòu)的MapReduce任務(wù)和相同文件系統(tǒng)中的MapReduce計(jì)算可執(zhí)行性,交付了比Azure blob上更好的性能。Windows Azure存儲(chǔ)由于早期分離虛擬機(jī)(VM)的決定而進(jìn)展緩慢,主要是改善多租戶隔離的存儲(chǔ)計(jì)算。
Windows Azure存儲(chǔ)團(tuán)隊(duì)的Brad Calder在2012年11月的一篇博客中,對扁平網(wǎng)絡(luò)存儲(chǔ)和第二代存儲(chǔ)硬件進(jìn)行了描述,詳見《Windows Azure的扁平網(wǎng)絡(luò)存儲(chǔ)和2012年可擴(kuò)展性目標(biāo)》。他對比了第一代和第二代存儲(chǔ)硬件:
硬件代數(shù) |
存儲(chǔ)結(jié)點(diǎn)網(wǎng)絡(luò)速度 |
計(jì)算和存儲(chǔ)之間的網(wǎng)絡(luò) |
負(fù)載均衡器 |
日志存儲(chǔ)設(shè)備 |
第一代 |
1 Gbps |
分層網(wǎng)絡(luò) |
硬件 |
硬盤 |
第二代 |
10 Gbps |
扁平網(wǎng)絡(luò) |
軟件 |
SSD |
根據(jù)Calder的博客內(nèi)容,第二代Quantum 10或者Q10,存儲(chǔ)提供了充分的非阻塞,10Gbps成熟的網(wǎng)狀網(wǎng)絡(luò)提供了聚合基架,為每一個(gè)Windows Azure數(shù)據(jù)中心提供超過50Tbps的帶寬。他宣稱實(shí)景實(shí)現(xiàn)了存儲(chǔ)賬戶可擴(kuò)展性目標(biāo),下面就是截止到2012年底實(shí)現(xiàn)的目標(biāo):
• 容量多達(dá)200TB
• 事務(wù)比率達(dá)到20,000實(shí)體/消息/blobs/秒
• 地理冗余存儲(chǔ)賬戶帶寬
o 入口: 5 Gbps
o 出口: 10 Gbps
• 本地冗余存儲(chǔ)賬戶帶寬
o 入口: 10 Gbps
o 出口: 15 Gbps
存儲(chǔ)賬戶有異地備援,默認(rèn)提供地理冗余存儲(chǔ)。終端用戶可以關(guān)閉異地備援,使用本地冗余存儲(chǔ),從而減少地理冗余相關(guān)的存儲(chǔ)成本,實(shí)現(xiàn)更高的入口和出口目標(biāo)。
Denny Lee是SQL Server團(tuán)隊(duì)商務(wù)智能團(tuán)隊(duì)的成員,Brad Sarsfield是Windows Azure團(tuán)隊(duì)的主要開發(fā)者,共同探討了Azure上HDInsight的blob存儲(chǔ)性能。下面是要點(diǎn)總結(jié):http://dennyglee.com/2013/03/18/why-use-blob-storage-with-hdinsight-on-azure/
• Azure blob存儲(chǔ)在map任務(wù)中提供了與HDFS幾近一致的讀(性能和任務(wù)拆分)訪問特性。
• Azure blob提供更快的Hadoop HDFS寫訪問,在往磁盤寫數(shù)據(jù)時(shí),任務(wù)完成的更快,減少任務(wù)。
Lee也總結(jié)了Nasuni的《2013云存儲(chǔ)產(chǎn)業(yè)現(xiàn)狀報(bào)告》, 對比了Azure blob存儲(chǔ)和亞馬遜簡單對象存儲(chǔ)服務(wù)(S3)的性能:
• 速度: Azure比位列第二的亞馬遜S3的寫速度快56%,讀取文件的速度比排在第二的惠普云對象存儲(chǔ)的讀速度快39%。
• 有效性: Azure的平均響應(yīng)時(shí)間比亞馬遜S3快25%。
• 可擴(kuò)展性:亞馬遜S3各項(xiàng)平均擴(kuò)展范圍測試為0.6%,微軟Windows Azure 范圍1.9%,二者的可擴(kuò)展范圍可接受度都非常高?;萜蘸蚏ackspace,都是基于OpenStack 的云,顯示的值為23.5%和26.1%。隨著對象總數(shù)的增加,性能越來越不可預(yù)知。
我的博文《在Windows Azure CTP上使用來自Windows Azure Blob和Apache Hadoop的數(shù)據(jù)》,揭示了如何輸入*.csv文件到HDInsight所調(diào)用的Azure存儲(chǔ)庫(ASV)。
HDInsight服務(wù)控制面板和樣例庫
圖二.HDInsight控制臺(tái)的活動(dòng)瓷磚用戶界面提供了對于該服務(wù)的DevOps 特性的訪問。Monitor Cluster和 Documentation瓷磚是新添加的。
Windows Azure HDInsight服務(wù)的控制面板簡化了Hadoop DevOps,提供了可以輕松訪問的交互控制臺(tái),包括執(zhí)行JavaScript代碼、Hive查詢、卡其遠(yuǎn)程桌面連接到計(jì)算VM、顯示MapReduce 工作記錄以及訪問示例分析任務(wù)和文檔。(圖二)
交互控制臺(tái)的Hive窗口允許開發(fā)者基于Azure Blob數(shù)據(jù)(圖三)定義結(jié)構(gòu)化Hive表格。數(shù)據(jù)專家用類SQL語言——HiveQL查詢Hive表。開放數(shù)據(jù)庫連接(ODBC)Hive驅(qū)動(dòng)可以讓商務(wù)智能分析師用微軟Excel可視化HiveQL結(jié)果。更多細(xì)節(jié),參考《Excel中設(shè)置ODBC數(shù)據(jù)源》和《Excel中執(zhí)行HiveQL查詢》。
圖三.交互控制臺(tái)的Hive窗口允許開發(fā)者基于Azure Blob數(shù)據(jù)定義結(jié)構(gòu)化Hive表格。
最新的Azure HDInsight服務(wù)預(yù)覽版在微軟數(shù)據(jù)中心,充分利用扁平網(wǎng)絡(luò)的第二代硬件。ASV用戶得到了HDFS集群的Windows Azure blob存儲(chǔ)有效性和可持續(xù)性,而且性能不受到影響。開發(fā)者必須要警惕的是,刪除不需要的集群,避免大量未使用的計(jì)算賬單出現(xiàn)。
關(guān)于作者
Roger Jennings是一位面向.NET開發(fā)者兼作者, Windows Azure MVP, OakLeaf Systems的首席咨詢師,也是OakLeaf Systems博客的管理者。他同時(shí)還是30多本書的作者,范圍涉及Windows Azure平臺(tái)、微軟操作系統(tǒng)(Windows NT和2000 Server) 、數(shù)據(jù)庫(SQL Azure、SQL Server和Access)、.NET 數(shù)據(jù)訪問、Web服務(wù)和InfoPath 2003。他的圖書英文版本印刷數(shù)量超過125萬,還被翻譯成20多種語言出版。