必讀! 大資料:Hadoop,業務分析及更多(2)

來源:互聯網
上載者:User

大資料處理和分析的新方法

存在多種方法處理和分析大資料,但多數都有一些共同的特點。 即他們利用硬體的優勢,使用擴展的、並行的處理技術,採用非關聯式資料存儲處理非結構化和半結構化資料,並對大資料運用高級分析和資料視覺化技術,向終端使用者傳達見解。

Wikibon已經確定了三種將會改變業務分析和資料管理市場的大資料方法。

Hadoop

Hadoop是一個處理、存儲和分析海量的分散式、非結構化資料的開源框架。 最初由雅虎的Doug Cutting創建,Hadoop的靈感來自于 MapReduce ,MapReduce是谷歌在2000年代初期開發的用於網頁索引的使用者定義函數。 它被設計用來處理分佈在多個並行節點的PB級和EB級資料。

Hadoop集群運行在廉價的商用硬體上,這樣硬體擴展就不存在資金壓力。 Hadoop現在是Apache軟體聯盟(The Apache Software Foundation)的一個專案,數百名貢獻者不斷改進其核心技術。 基本概念:與將海量資料限定在一台機器運行的方式不同,Hadoop將大資料分成多個部分,這樣每個部分都可以被同時處理和分析。

Hadoop如何工作

客戶從日誌檔、社交媒體供稿和內部資料存儲等來源獲得非結構化和半結構化資料。 它將資料打碎成「部分」,這些「部分」被載入到商用硬體的多個節點組成的檔案系統。 Hadoop的預設檔存儲系統是Hadoop分散式檔案系統。 檔案系統(如HDFS)善於存儲大量非結構化和半結構化資料,因為它們不需要將資料組織成關聯式的行和列。

各「部分」被覆制多次,並載入到檔案系統。 這樣,如果一個節點失效,另一個節點包含失效節點資料的副本。 名稱節點充當調解人,負責溝通資訊:如哪些節點是可用的,某些資料存儲在集群的什麼地方,以及哪些節點失效。

一旦資料被載入到集群中,它就準備好通過MapReduce 框架進行分析。 客戶提交一個「匹配」的任務( 通常是用JAVA編寫的查詢語句)給到一個被稱為作業跟蹤器的節點。 該作業跟蹤器引用名稱節點,以確定完成工作需要訪問哪些資料,以及所需的資料在集群的存儲位置。 一旦確定,作業跟蹤器向相關節點提交查詢。 每個節點同時、並行處理,而非將所有資料集中到一個位置處理。 這是Hadoop的一個本質特徵。

當每個節點處理完指定的作業,它會存儲結果。 客戶通過任務追蹤器啟動「Reduce」任務。 匯總map階段存儲在各個節點上的結果資料,獲得原始查詢的「答案」,然後將「答案」載入到集群的另一個節點中。 客戶就可以訪問這些可以載入多種分析環境進行分析的結果了。 MapReduce 的工作就完成了。

一旦MapReduce 階段完成,資料科學家和其他人就可以使用高級資料分析技巧對處理後的資料進一步分析。 也可以對這些資料建模,將資料從Hadoop集群轉移到現有的關聯式資料庫、資料倉儲等傳統IT系統進行進一步的分析。

Hadoop的技術元件

Hadoop 「棧」由多個元件組成。 包括:

· Hadoop分散式檔案系統(HDFS):所有Hadoop集群的預設存儲層;

· 名稱節點:在Hadoop集群中,提供資料存儲位置以及節點失效資訊的節點。

· 二級節點:名稱節點的備份,它會定期複製和存儲名稱節點的資料,以防名稱節點失效。

· 作業跟蹤器:Hadoop集群中發起和協調MapReduce作業或資料處理任務的節點。

· 從節點:Hadoop集群的普通節點,從節點存儲資料並且從作業跟蹤器那裡獲取資料處理指令。

除了上述以外,Hadoop生態系統還包括許多免費子專案。 NoSQL資料存儲系統(如Cassandra和HBase)也被用於存儲Hadoop的MapReduce作業結果。 除了​​JAVA,很多 MapReduce 作業及其他Hadoop的功能都是用Pig語言寫的,Pig是專門針對Hadoop設計的開來源語言。 Hive最初是由Facebook開發的開源資料倉儲,可以在Hadoop中建立分析模型。

請參閱文章:Hadoop元件和子專案指導手冊:HBase,Sqoop,Flume等:Apache Hadoop定義(HTTP://wikibon.org/wiki/v/HBase,_Sqoop,_Flume_and_ More:_Apache_Hadoop_Defined)

Hadoop:優點和缺點

Hadoop的主要好處是,它可以讓企業以節省成本並高效的方式處理和分析大量的非結構化和半結構化資料,而這類資料迄今還沒有其他處理方式。 因為Hadoop集群可以擴展到PB級甚至EB級資料,企業不再必須依賴于樣本資料集,而可以處理和分析所有相關資料。 資料科學家可以採用反覆運算的方法進行分析,不斷改進和測試查詢語句,從而發現以前未知的見解。 使用Hadoop的成本也很廉價。 開發者可以免費下載Apache的Hadoop 分散式平臺,並且在不到一天的時間內開始體驗Hadoop。

Hadoop及其無陣列件的不足之處是,他們還不成熟,仍處於發展階段。 就像所有新的、原始的技術一樣,實施和管理Hadoop集群,對大量非結構化資料進行高級分析,都需要大量的專業知識、技能和培訓。 不幸的是,目前Hadoop開發者和資料科學家的缺乏,使得眾多企業維持複雜的Hadoop集群並利用其優勢變得很不現實。 此外,由於Hadoop的眾多元件都是通過技術社區得到改善,並且新的元件不斷被創建,因此作為不成熟的開源技術,也存在失敗的風險。 最後,Hadoop是一個面向批次處理的框架,這意味著它不支援即時的資料處理和分析。

好消息是,一些聰明的IT人士不斷對Apache Hadoop專案做出貢獻,新一代的Hadoop開發者和資料科學家們正在走向成熟。 因此,該技術的發展日新月異,逐漸變得更加強大而且更易於實施和管理。 供應商(包括Hadoop的初創企業Cloudera和Hortonworks)以及成熟的IT中堅企業(如IBM和微軟)正在努力開發企業可用的商業Hadoop分散式平臺、工具和服務, 讓部署和管理這項技術成為傳統企業可用的實際現實。 其他初創企業正在努力完善NoSQL(不僅僅是SQL)資料系統,結合Hadoop提供近即時的分析解決方案。

NoSQL

一種稱為NoSQL的新形式的資料庫(Not Only SQL)已經出現,像Hadoop一樣,可以處理大量的多結構化資料。 但是,如果說Hadoop擅長支援大規模、批量式的歷史分析,在大多數情況下(雖然也有一些例外),NoSQL 資料庫的目的是為最終使用者和自動化的大資料應用程式提供大量存儲在多結構化資料中的離散資料。 這種能力是關聯式資料庫欠缺的,它根本無法在大資料規模維持基本的性能水準。

在某些情況下,NoSQL和Hadoop協同工作。 例如,HBase是流行的NoSQL資料庫,它仿照谷歌的BigTable,通常部署在HDFS(Hadoop分散式檔案系統)之上,為Hadoop提供低延遲的快速查找功能。

目前可用的NoSQL資料庫包括:

· HBase

· Cassandra

· MarkLogic

· Aerospike

· MongoDB

· Accumulo

· Riak

· CouchDB

· DynamoDB

目前大多數NoSQL資料庫的缺點是,為了性能和可擴充性,他們遵從ACID(原子性,一致性,隔離性,持久性)原則。 許多NoSQL資料庫還缺乏成熟的管理和監控工具。 這些缺點在開源的NoSQL社區和少數廠商的努力下都在克服過程中,這些廠商包括DataStax,Sqrrl,10gen,Aerospike和Couchbase,他們正在嘗試商業化各種NoSQL資料庫。

大規模並行分析資料庫

不同于傳統的資料倉儲,大規模並行分析資料庫能夠以必需的最小的資料建模,快速獲取大量的結構化資料,可以向外擴展以容納TB甚至PB級資料。

對最終使用者而言最重要的是,大規模並行分析資料庫支援近乎即時的複雜SQL查詢結果,也叫互動式查詢功能 ,而這正是Hadoop顯著缺失的能力。 大規模並行分析資料庫在某些情況下支援近即時的大資料應用。 大規模並行分析資料庫的基本特性包括:

大規模並行處理的能力: 就像其名字表明的一樣,大規模並行分析資料庫採用大規模並行處理同時支援多台機器上的資料獲取、處理和查詢。 相對傳統的資料倉儲具有更快的性能,傳統資料倉儲運行在單一機器上,會受到資料獲取這個單一瓶頸點的限制。

無共用架構: 無共用架構可確保分析資料庫環境中沒有單點故障。 在這種架構下,每個節點獨立于其他節點,所以如果一台機器出現故障,其他機器可以繼續運行。 對大規模並行處理環境而言,這點尤其重要,數百台電腦並行處理資料,偶爾出現一台或多台機器失敗是不可避免的。

列存儲結構: 大多數大規模並行分析資料庫採用列存儲結構,而大多數關聯式資料庫以行結構存儲和處理資料。 在列存儲環境中,由包含必要資料的列決定查詢語句的「答案」,而不是由整行的資料決定,從而導致查詢結果瞬間可以得出。 這也意味著資料不需要像傳統的關係資料庫那樣構造成整齊的表格。

強大的資料壓縮功能: 它們允許分析資料庫收集和存儲更大量的資料,而且與傳統資料庫相比佔用更少的硬體資源。 例如,具有10比1的壓縮功能的資料庫,可以將10 TB位元組的資料壓縮到1 TB。 資料編碼(包括資料壓縮以及相關的技術)是有效的擴展到海量資料的關鍵。

商用硬體: 像Hadoop集群一樣,大多數(肯定不是全部)大規模並行分析資料庫運行在戴爾、IBM等廠商現成的商用硬體上,這使他們能夠以具有成本效益的方式向外擴展。

在記憶體中進行資料處理: 有些(肯定不是全部)大規模並行分析資料庫使用動態RAM或快閃記憶體進行即時資料處理。 有些(如SAP HANA和 Aerospike)完全在記憶體中運行資料,而其他則採用混合的方式,即用較便宜但低性能的磁片記憶體處理「冷」資料,用動態RAM或快閃記憶體處理「熱」資料。

然而,大規模並行分析資料庫確實有一些盲點。 最值得注意的是,他們並非被設計用來存儲、處理和分析大量的半結構化和非結構化資料。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.