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