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

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

私有云計算簡介

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

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


圖 1. OpenStack 的組件
OpenStack 的組件

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

大數據簡介

Oracle 將 大數據 定義爲三個數據源的數據彙集:傳統數據(結構化數據)、感知數據(日誌數據和元數據)和社交(社交媒體)數據。大數據通常採用新的技術模式進行存儲,比如非關係分佈式數據庫 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)。


圖 2. HDFS/MapReduce 層的組成部分
圖片顯示了 HDFS/MapReduce 層的組成部分

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


圖 3. 高級 MapReduce 圖
高級 MapReduce 圖

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


圖 4. MapReduce 數據流圖解
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 環境集成在一起。

Swift 和 Cloudera 的 Apache Hadoop 發行版

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

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

Swift、Nova 和 Apache Hadoop MapReduce

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

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


圖 5. OpenStack 架構
圖片顯示了 OpenStack 架構

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

GFS、Nova、Pig 和 MapReduce

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

技巧和提示

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


障礙和陷阱

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

最後,企業需要爲私有云和大數據計劃制定一個戰略路線圖。要獲得成功的部署,則需要進行更多的分析 “工作”,這有可能會拖延處理過程。爲了消除這種風險,應當採用一種迭代式的項目管理方法,以分階段的方式部署到業務部門中,通過這種方法將這些技術部署到企業中。

結束語

雲計算和大數據正步入我們的生活,因此我們的企業需要確定這些技術如何使公司受益,比如 CapEx 方面的成本節省或增強的處理功能。您的企業應當分別對這些系統進行測試,然後以迭代的方式將它們整合到企業中。這樣,企業就可以實現出色的投資回報,爲未來發展做好準備。



文章來源:http://www.ibm.com/developerworks/cn/cloud/library/cl-openstack-deployhadoop/

發佈了23 篇原創文章 · 獲贊 6 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章