Windows AzureHDInsight 提供了運行 Apache Hadoop的動態供應群集來處理大數據(Big Data)的能力。您可以在這個系列的第一篇博客中找到更多信息,您也可以點擊這里開始在Windows Azure 門戶網站中使用它。這篇文章列舉了開發人員與HDInsight交互的幾種不同方法,首先通過討論不同的場景,然后深入討論 HDInsight 中各種不同的功能。因為我們的產品是建立在 Apache Hadoop 之上,所以開發人員可以利用一個有廣泛且豐富的工具和功能的生態系統。
說起場景, 就我們合作過的客戶而言,有兩個截然不同的情形,創建,使用工具來處理大數據的工作,以及在應用程序中整合HDInsight,將工作的輸入和輸出整合為一個較大的應用程序架構的一部分。HDInsight 的一個關鍵設計是集成了 Windows Azure Blob Storage作為默認的文件系統。這意味着您可以使用現有的和工具和API's訪問 blob 存儲中的數據。該文章更詳細地解釋了我們如何利用Blob Storage。
就創建工作這一點而言,有大量的工具可用。深層次說,它有一套作為現有Hadoop 生態系統的一部分的工具,以及一組我們建立的項目幫助.NET 開發人員開始學習Hadoop,同時我們已經開始了新的項目幫助開發人員利用 JavaScript 與 Hadoop交互。
創建工作
現有的 Hadoop 工具
HDInsight 是通過 Hortonworks Data Platform來使用 Apache Hadoop,對於Hadoop 的生態系統有很高的保真度。因此,許多功能都和原來的完全一樣。這意味着你在下面列出的任何工具的投資和知識都在 HDInsight 中可用。分布式處理群集由下面的Apache 項目創建:
- Map/Reduce
- Hive
- Hive使用一種類似於 SQL 的語法來表達編譯一組被編譯成Map/Reduce程序的查詢。Hive支持SQL中的許多結構(聚合、 分組、 過濾等),並輕松地在您的群集中的各節點並行化這些查詢。
- 這里提供了使用Hive的方法
- Pig
- Pig是一種數據流語言,使用一種叫做Pig Latin的語言編譯成一系列的Map/Reduce程序。
- 這里提供了在HDInsight上使用Pig的入門指南.
- Oozie
- Oozie 是一種工作流調度程序, 用來管理行動的有向無循環圖,其中的行動可以是Map/Reduce, Pig, Hive或其他工作。詳細信息請點擊這里參閱快速入門指南.
您可以在這里找到 Hadoop 組件更新列表。下表表示為當前預覽版中各組件的版本:
Apache Hadoop
1.0.3
Apache Hive
0.9.0
Apache Pig
0.9.3
Apache Sqoop
1.4.2
Apache Oozie
3.2.0
Apache HCatalog
0.4.1
Apache Templeton
0.1.4
此外,Hadoop 空間的其他項目, 例如Mahout(參見示例) 或Cascading, 也可以方便地用在 HDInsight之上。有關這些主題我們將在今后另外寫文章介紹。
.NET工具
我們正努力開發一組工具讓開發人員能利用他們的.NET技能和投資來使用 Hadoop。這些項目放在CodePlex上,你可以從NuGet上下載這個工具包創建運行在HDInsight上的工作。有關這些介紹請參閱CodePlex 站點上的快速入門。
運行工作
想要運行任意一項工作,有如下幾個方法:
- 直接從頭節點運行它們。若要執行此操作,遠程連接到您的群集,打開 Hadoop 命令提示符,並直接使用命令行工具
- 在群集上使用REST API's遠程提交它們(更多詳細信息請參見下一節關於如何集成HDInsight到您的應用程序中的說明)
- 利用 HDInsight 儀表板上的工具。創建您的群集后,群集儀表板中提供了一些功能用來提交工作:
- 創建工作
- 交互式控制台
- 創建工作
集成 HDInsight到您的應用程序
打開REST API's
為了提供一個簡單的接口供客戶端應用程序集成,我們努力確保群集上的所有功能都通過一組安全的REST API's暴露給客戶端。
- WebHCatalog— — 元數據管理及遠程工作提交、 歷史記錄和管理
- Ambari— — 運行中群集的監測
- Oozie— — 管理和調度 Oozie 工作流
我們目前已經對這些 API 提供了.NET 客戶端類庫,點擊這里下載,你能夠自行在其他語言中輕松地使用HTTP 堆棧構建客戶端。
通過 ODBC 連接
利用 ODBC 客戶端 (說明請參閱這里),就可以輕松地整合現有的應用程序 (例如Excel) 訪問存儲在HDInsight上 Hive表中的數據。
調試/測試
為了能在Azure上不連接群集都可以工作,我們開發了HDInsight Developer Preview,你可以輕松從 Web Platform Installer上一鍵安裝。您可以利用它通過一小組數據來實驗、調試和測試前面提及的所有技術。然后您可以將項目部署到 Azure 並運行Blob Storage上的大數據。若要安裝它,只需在Web Platform Installer上搜索HDInsight,或點擊這里直接從 web安裝。
總結
本文為您編寫Hadoop jobs以及集成HDInsight到您的應用程序介紹了多種方法。HDInsight 使您能夠用自己選擇的用平台和工具進行開發,從Java到.NET 到JavaScript都可以,並且很容易地使用 Windows Azure部署和管理群集。
我們HDInsight 5篇博客系列的最后一篇將探討如何用Excel分析 HDInsight中的數據。敬請關注 !
文章翻譯自:http://blogs.msdn.com/b/windowsazure/archive/2013/03/22/developing-for-hdinsight.aspx