天天看點

結合使用Hadoop與Couchbase Server

文章講的是<b>結合使用Hadoop與Couchbase Server</b>,Hadoop 将許多重要特性結合在一起,這使 Hadoop 對于将大量資料分解為更小、實用的資料塊非常有用。

  Hadoop 的主要元件是 HDFS 檔案系統,它支援将資訊分布到整個叢集中。對于使用這種分布格式存儲的資訊,可以通過一個名為 MapReduce 的系統在每個叢集節點上進行單獨處理。MapReduce 程序将存儲在 HDFS 檔案系統中的資訊轉換為更小的、經過處理的、更容易管理的資料塊。

  因為 Hadoop 可在多個節點上運作,是以可以使用它來處理大量輸入資料,并将這些資料簡化為更實用的資訊塊。此過程可使用一個簡單的 MapReduce 系統來處理。

  MapReduce 轉換傳入資訊(不一定為結構化格式),将該資訊轉換為一種可更輕松地使用、查詢和處理的結構。

  例如,一種典型的用途是處理來自數百個不同應用程式的日志資訊,以便可以識别特定的問題、計數或其他事件。通過使用 MapReduce 格式,您可以開始度量并查找趨勢,将平常非常多的資訊轉換為更小的資料塊。舉例而言,在檢視某個 Web 伺服器的日志時,您可能希望檢視特定頁面上的特定範圍中發生的錯誤。您可以編寫一個 MapReduce 函數來識别特定頁面上的特定錯誤,并在輸出中生成該資訊。使用此方法,您可從日志檔案中精減多行資訊,得到一個僅包含錯誤資訊的小得多的記錄集合。

<b>  了解 MapReduce</b>

  MapReduce 的工作方式分兩個階段。映射 (map) 過程擷取傳入資訊,并将這些資訊映射到某種标準化的格式。對于某些資訊類型,此映射可以是直接和顯式的。例如,如果要處理 Web 日志等輸入資料,那麼僅從 Web 日志的文本中提取一列資料即可。對于其他資料,映射可能更複雜。在處理文本資訊時,比如研究論文,您可能需要提取短語或更複雜的資料塊。

  精減 (reduce) 階段用于收集和彙總資料。精減實際上能夠以多種不同方式發生,但典型的過程是處理一個基本計數、總和或其他基于來自映射階段的個别資料的統計資料。

  想象一個簡單的示例,比如 Hadoop 中用作示例 MapReduce 的字數,映射階段将對原始文本進行分解,以識别各個單詞,并為每個單詞生成一個輸出資料塊。reduce 函數擷取這些映射的資訊塊,對它們進行精減,以便在所看到的每個惟一單詞上進行遞增。給定一個包含 100 個單詞的文本檔案,映射過程将生成 100 個資料塊,但精減階段可對此進行彙總,提供惟一單詞的數量(比如 56 個)和每個單詞出現的次數。

  借助 Web 日志,映射将擷取輸入資料,為日志檔案中的每個錯誤建立一條記錄,然後為每個錯誤生成一個資料塊,其中包含日期、時間和導緻該問題的頁面。

  在 Hadoop 内,MapReduce 階段會出現在存儲各個源資訊塊的各個節點上。這使 Hadoop 能夠處理以下大型資訊集:通過允許多個節點同時處理資料。例如,對于 100 個節點,可以同時處理 100 個日志檔案,比通過單個節點快得多地簡化許多 GB(或 TB)的資訊。

  <b>Hadoop 資訊</b>

  核心 Hadoop 産品的一個主要限制是,無法在資料庫中存儲和查詢資訊。資料添加到 HDFS 系統中,但您無法要求 Hadoop 傳回與某個特定資料集比對的所有資料的清單。主要原因是 Hadoop 不會存儲、結構化或了解存儲在 HDFS 中的資料的結構。這正是 MapReduce 系統需要将資訊分析并處理為更加結構化的格式的原因。

  但是,我們可以将 Hadoop 的處理能力與更加傳統的資料庫相結合,使我們可以查詢 Hadoop 通過自己的 MapReduce 系統生成的資料。可能的解決方案有許多,其中包括一些傳統 SQL 資料庫,但我們可以通過使用 Couchbase Server 來保持 MapReduce 風格(它對大型資料集非常有效)。

  系統之間的資料共享的基本結構如 圖 1 所示。

結合使用Hadoop與Couchbase Server

▲圖 1. 系統之間的資料共享的基本結構

作者: 李煥珠

來源:IT168

原文連結:結合使用Hadoop與Couchbase Server

上一篇: 九度 1203
下一篇: 線段樹模闆