《企業網D1Net》2月3日訊當我們在談論大數據和數據倉庫時,Hadoop幾乎是不可避免會被提到的。
但是就像大多數大數據技術一樣,Hadoop不是憑空出現的,它和這一領域的其他技術有著密切的關系。Hadoop采用map/reduce技術形成一個數據框架,在上面數據被存儲并且由應用程序運行數據。它的起源可以追溯到另一種數據倉庫技術:企業搜索。
企業搜索,也稱為實時搜索,是一種數據存儲的方法,采用了搜索的概念,適用于大量的非結構化或半結構化的數據集合,比如文檔。
最完美的文件存儲系統會利用某種XML或基于SGML的標記語言來保持這些文件的內容良好和有組織性。但在現實中,文件離這種理想狀態有很大距離。這時候,“企業搜索”進場。
企業搜索產品——例如,Apache Lucene、ElasticSearch和Apache Solr——使用了一個被稱為“facets”的概念,讓你在關系數據庫中可以處理文件數據。Facets基本上是倒排索引,讓你在文檔中找到特定的信息,比如地址或其他客戶信息。
如果你有一大堆這種類型的文檔需要篩選,并且需要做一些簡單的數據挖掘或商業智能分析,那企業搜索是理想的。越是結構化的數據效果越好。企業搜索特別適用于處理諸如網絡博客這樣的文檔,因為它們的結構足夠統一可以實現更深層次的數據挖掘。
企業搜索和目前大肆宣傳的Hadoop之間的聯系在于這兩種技術的創造者:道·卡廷(Doug Cutting)。卡廷目前是Hadoop 廠商Cloudera的架構設計師,在1998年把Lucene作為Java搜索引擎庫。
但生活(互聯網熱潮)讓卡廷從他的Java項目中抽身。在2000年左右,卡廷選擇采用這種完美的搜索引擎庫,并在SourceForge上以GPL許可開放源碼。在遭受到潛在用戶的強烈抗議后,卡廷之后把許可轉到限制較少的LGPL協議。
當這個項目在2001年被邀請加入Apache軟件基金會(ASF)時,卡廷被敦促接受這個邀請,然后Lucene就成為ASF的項目,在Apache軟件許可下授權。
卡廷在Lucene上繼續努力,將該技術發展成開源Nutch的搜索引擎,這是一個完整的應用程序,而不是一個類似Lucene的平臺。Nutch也面向網絡搜索,有很多和企業搜索一樣的功能,如網頁抓取、文件格式、語言檢測以及句法分析。
但是,Nutch的強大也注定了它沒有足夠的可擴展性來搜索企業級數據集。多節點安裝,甚至低至4個節點,都被證明是難以管理。Nutch對任何超過100萬頁的空間分配和資源管理都被證明有限制。
因此,在2008年Hadoop誕生了。Hadoop采用分布式計算技術,是Nutch可以運行的新框架。Hadoop分布式文件系統,再加上MapReduce(這兩者在谷歌項目中被仿照),成為Nutch賴以運行的框架。
卡廷的Lucene不僅促進了基于MapReduce的Hadoop技術的建立,也成為其他企業搜索技術的基礎。尤其ElasticSearch和Apache Solr都是企業基于Web的搜索工具,它們都利用Lucene Java庫。
在企業搜索領域,這兩個工具哪個更好一直有很多爭論。Solr據說是速度非常快,但ElasticSearch的分布式能力意味著可以跨多個分布式資源來共享工作,從而提供相似的性能。
這項技術的演進是有趣的,但不只是從一個純粹的圈內人立場。了解這些技術如何結合在一起,將幫助用戶了解哪種解決方案更適合他們。(Vivian 編譯)