1. 程式人生 > >將OpenStack私有云部署到Hadoop MapReduce環境中

將OpenStack私有云部署到Hadoop MapReduce環境中

       隨著企業開始同時利用雲端計算和大資料技術,現在應當考慮如何將這些工具結合使用。在這種情況下,企業將實現最佳的分析處理能力,同時利用私有云的快速彈性 (rapid elasticity) 和單一租賃的特性。本文將幫助您瞭解雲端計算和大資料技術的組成部分,瞭解私有云是什麼,Apache Hadoop 是什麼,它們的協同效用,如何進行部署它們,以及它們帶來的挑戰有哪些。

私有云計算簡介

      私有云 指企業內部的雲端計算部署,在私有云中,企業利用了資料中心內的各種雲端計算技術的細微差別。這些差別包括快速彈性、資源池、按需配給和自動化管理。為了在內部將這些屬性整合在一起,大多數企業採用了開源的雲版本,比如 OpenStack 或 CloudStack。

OpenStack 是最流行的開源雲版本,它包括控制器、計算 (Nova)、儲存 (Swift)、訊息佇列 (RabbitMQ) 和網路 (Quantum) 元件。圖 1 提供了這些元件的一個圖示(不包含 Quantum 網路元件)。

一些基礎知識

         第一是OpenStack 。作為目前最流行的開源雲版本,它包括控制器、計算 (Nova)、儲存 (Swift)、訊息佇列 (RabbitMQ) 和網路 (Quantum) 元件。圖 1 提供了這些元件的一個圖示(不包含 Quantum 網路元件)。


圖 1. OpenStack 的元件 

這些元件共同提供了一個允許動態配給計算和儲存資源的環境。從硬體角度看,這些服務可擴充套件到許多虛擬的和物理的伺服器上。例如,大多陣列織部署一個物理伺服器作為控制器節點,部署另一個物理伺服器作為計算節點。許多組織還選擇將其儲存環境分離到一個專用的物理伺服器上,對於 OpenStack 部署而言,這意味著對 Swift 儲存環境使用單獨的伺服器。

       第二是大資料 一般可以理解為三個資料來源的資料彙集:傳統資料(結構化資料)、感知資料(日誌資料和元資料)和社交(社交媒體)資料。大資料通常採用新的技術模式進行儲存,比如非關係分散式資料庫 NoSQL。共有四種非關係資料庫管理此係統 (NRDBMS):基於列、關鍵值、圖表和基於文件。這些 NRDBMS 將源資料聚集在一起,同時用 MapReduce 之類的分析程式對彙總的資訊進行分析。

傳統的大資料環境包括一個分析程式、一個數據儲存、一個可擴充套件檔案系統、一個工作流管理器、一個分散式排序和雜湊解決方案以及一個數據流程式設計框架。常用於商業應用程式的資料流程式設計框架是 Structured Query Language (SQL),對於開源應用程式,通常會使用 SQL 的替代方案,如Apache Pig for Hadoop

。在商用方面,Cloudera 提供了最穩定、最全面的解決方案之一,而 Apache Hadoop 是最流行的開源 Hadoop 版本。

       第三是Apache Hadoop 。包含多種元件,包括 Hadoop Distributed File System(即 HDFS,是一種可擴充套件的檔案系統),HBase(資料庫/資料儲存)、Pig、Hadoop(分析方法)和 MapReduce(分散式排序和雜湊)。如圖 2 所示,Hadoop 任務被分解為幾個節點,而 MapReduce 任務則被分解為跟蹤器 (tracker)。

      圖 3 顯示了 MapReduce 如何執行任務,它將獲取輸入並執行一系列分組、排序和合並操作,然後呈現經過排序和雜湊的輸出。

       圖 4 演示了一個更復雜的 MapReduce 任務及其組成部分。

       儘管 Hadoop MapReduce 要比傳統的分析環境(如 IBM Cognos和 Satori proCube 線上分析處理)更復雜一些,但它的部署仍然具有可擴充套件能力和高成本效益。

       大資料技術和私有云環境都很有用;不過,如果將兩者結合在一起,企業會獲得巨大的利潤。儘管結合兩者會讓環境變得更復雜,企業仍然可以看到將 OpenStack 私有云和 Apache Hadoop 環境結合在一起產生的顯著的協同效應。如何來做會更好?

方案一、Swift+Apache Hadoop  MapReduce

      在私有云環境中,常見的大資料部署模型之一是:將 OpenStack 的 Swift 儲存技術部署到 Apache Hadoop MapReduce 叢集從而實現處理功能。使用這種架構的優勢是,企業將獲得一個可擴充套件的儲存節點,可以用該節點來處理其不斷累積的資料。根據 IDC 的調查,資料年增長率已經達到 60%,該解決方案將滿足不斷增長的資料需求,同時允許組織同時啟動一個試點專案來部署私有云。

       該部署模型的最佳使用場景是企業希望通過儲存池嘗試使用私有云技術,同時在內部使用大資料技術。最佳實踐表明企業應當先將大資料技術部署到您的生產資料倉庫環境中,然後構建並配置您的私有云儲存解決方案。如果將 Apache Hadoop MapReduce 技術成功融合到資料倉庫環境中,並且已經正確構建並執行您的私有云儲存池,那麼您就可以將私有云儲存資料與預排程的 Hadoop MapReduce 環境整合在一起。

方案2. Swift + Cloudera  Apache Hadoop 發行版

        對於那些不願意從頭開始使用大資料的企業,可以使用 Cloudera 等解決方案供應商提供的大資料裝置。Cloudera 的發行版包括 Apache Hadoop (CDH) 解決方案,它允許企業不必針對 Hadoop 的每個細微差別來招募或培訓員工,因此可以在大資料方面實現更高的投資回報 (ROI)。對於那些不具備大資料或私有云技能集,希望以緩慢、漸進的方式將該技術整合到其產品組合的企業,這一點尤其吸引人。

        大資料和雲端計算屬於相對較新的技術,許多企業希望通過它們實現成本節省;不過,許多企業對於是否完全採用這些技術猶豫不決。通過利用供應商支援的大資料軟體版本,企業在這方面將會更加從容,同時還可以瞭解如何使用這些技術來發揮自身的優勢。此外,如果使用大資料軟體分析大型資料集,而且可以通過私有云儲存節點來管理這些資料集,那麼這些企業還可以實現更高的利用率。為了最好地將這一策略整合到企業中,首先需要安裝、配置和管理 CDH,以便分析企業的資料倉庫環境,然後將 Swift 中儲存的資料新增到需要的地方。

方案3. Swift、Nova + Apache Hadoop MapReduce

       對於希望在大資料環境中實現更高程度的靈活性、可擴充套件性和自治性的企業,可以利用 Apache 和 OpenStack 提供的開源產品的與生俱來的能力。為此,企業需要最大限度地利用這兩種技術棧,這就要求採用與前面所述的解決方案不同的思維方式來設計環境。

       要獲得完全可伸縮的、靈活的大資料環境,必須在一個同時提供儲存和計算節點的私有云環境中執行它。為此,企業必須先構建私有云,然後新增大資料。因此,在這種情況下,必然會用到 Swift、Nova 和 RabbitMQ,並控制器節點來管理和維護環境。但是,問題在於企業是否需要針對不同的系統和業務部門將環境分為若干個部分(例如,非大資料虛擬機器或客戶機例項)。如果企業準備完全使用私有云,那麼應當新增 Quantum,從網路的角度對不同的環境進行劃分(參見圖 5)。

       在設定並測試了私有云環境後,可以將 Apache Hadoop 元件合併到其中。此時,Nova 例項可用於存放 NoSQL 或 SQL 資料儲存(沒錯,它們可以共存)以及 Pig 和 MapReduce 例項;Hadoop 可以位於一個獨立的非 Nova 機器上,以便提供處理功能。在不久的將來,Hadoop 有望在 Nova 例項上執行,使私有云自包含到所有 Nova 例項中。

方案4. GFS、Nova、Pig 和 MapReduce

         從架構的角度看,除了使用 OpenStack 的 Swift 實現可擴充套件儲存外,可能還有其他選擇。本例使用了 Google File System (GFS)、Nova 元件和 Apache Hadoop 元件,具體來講,使用了 Pig 和 MapReduce。該示例允許企業集中精力開發一個僅用於計算處理的私有云計算節點,同時利用 Google 的公共儲存雲作為資料儲存。通過使用這種混合雲,企業可以專注於計算處理功能的核心能力,由第三方負責實現儲存。該模型可以利用其他供應商的儲存解決方案,如 Amazon Simple Storage Service;但是,在使用任何外部儲存之前,企業應當在內部使用可擴充套件的檔案系統 (XFS) 來構建該解決方案,並進行相應的測試,然後再將其擴充套件到公共雲中。此外,根據資料的敏感性,企業可能需要使用資料保護機制,比如模糊處理 (obfuscation)、解除匿名化、加密或雜湊。

技巧和提示

在將雲端計算和大資料技術併入企業環境時,一定要為這兩個技術平臺構建員工的技能集。當您的員工理解這些技術後,就可以組建一個實驗室來測試這兩個平臺合併後的效果。由於包含許多不同的元件,因此在實現過程中,請務必遵循前面提到的經過驗證的路徑。此外,企業在嘗試合併這兩種模式時可能會遇到一些挫折,應當在進行若干次嘗試後改用其他方法。這些方法包括裝置和混合雲。

障礙和陷阱

       由於這些都是比較新的技術,所以大多數企業需要利用現有資源進行測試,之後再進行大量的資本支出 (CapEx)。然而,如果沒有對這些技術在企業中的應用進行合理的預算和人員培訓,那麼試點和測試工作將會以失敗告終。同樣,如果缺少完整的私有云部署,企業應當首先在其中實現大資料技術,然後再實現私有云。

結束語

       最後,企業需要為私有云和大資料計劃制定一個戰略路線圖。要獲得成功的部署,則需要進行更多的分析 “工作”,這有可能會拖延處理過程。為了消除這種風險,應當採用一種迭代式的專案管理方法,以分階段的方式部署到業務部門中,通過這種方法將這些技術部署到企業中。企業需要確認如何通過應用這些新技術使公司受益,如成本節省或加強處理功能等。(感謝@程式猿張吉的分享。文/Steve Markey,編輯/郭雪梅)

關於作者:

Steve Markey 是一名顧問、副教授以及 Cloud Security Alliance (CSA) 的 Delaware Valley (Greater Philadelphia) 分會的現任主席。他擁有多個證書和學位,在技術領域擁有超過 11 年的工作經驗。Steve 經常發表有關資訊保安、資訊隱私、雲端計算、專案管理、電子發現和資訊治理的演講。

  • 檢視 OpenStack 的 Starter Guide,獲得有關 OpenStack 架構的更多資訊。 

  • 檢視 Michael Noll 的 部落格文章,瞭解有關 HDFS/MapReduce 介紹的更多資訊。 

  • 檢視 Christopher Olston 的 Yahoo! Hadoop Explanation,獲得有關使用 OpenStack 和 Apache 的 Hadoop MapReduce 的更多資訊。 

參考:http://www.ibm.com/developerworks/cn/cloud/library/cl-openstack-deployhadoop/