【正文】
單一NameNode、單一Jobtracker的設(shè)計嚴重制約了整個Hadoop可擴展性和可靠性。 Hadoop的不足Hadoop作為一個處理大數(shù)據(jù)的軟件框架,雖然受到眾多商業(yè)公司的青睞,但是其自身的技術(shù)特點也決定了它不能完全解決大數(shù)據(jù)問題。Hadoop帶有用Java語言編寫的框架,因此運行在Linux生產(chǎn)平臺上是非常理想的。 高容錯性。 高效性。 高擴展性。它主要有以下幾個優(yōu)點: 高可靠性。每個TaskTracker將狀態(tài)和完成信息報告給JobTracker。JobTr a cke r使用文件塊信息(物理量和位置)確定如何創(chuàng)建其他TaskTracker從屬任務(wù)。類似于NameNode,它是Ha d o o p 集群中唯一負責控制MapReduce應用程序的系統(tǒng)。Hadoop提供了大量的接口和抽象類,從而為Hadoop應用程序開發(fā)人員提供許多工具,可用于調(diào)試和性能度量等。H a d o o p M a p R e d u c e 是Google MapReduce的開源實現(xiàn)。它決定是否將文件映射到DataNode上的復制塊上。HDFS內(nèi)部的所有通信都基于標準的TCP/IP協(xié)議。塊的大小(通常為64MB)和復制的塊數(shù)量在創(chuàng)建文件時由客戶機決定。存儲在HDFS中的文件被分成塊,然后將這些塊復制到多個計算機中(DataNode)。Hadoop主要組件包含如圖七:圖七Hadoop Common:通用模塊,支持其他Hadoop模塊Ha d o o p Di s t r i b u t e d Fi l eSystem(HDFS):分布式文件系統(tǒng),用以提供高流量的應用數(shù)據(jù)訪問Hadoop YARN:支持工作調(diào)度和集群資源管理的框架HadoopMapReduce:針對大數(shù)據(jù)的、靈活的并行數(shù)據(jù)處理框架其他相關(guān)的模塊還有:ZooKeeper:高可靠性分布式協(xié)調(diào)系統(tǒng)Oozie:負責MapReduce作業(yè)調(diào)度HBase:可擴展的分布式數(shù)據(jù)庫,可以將結(jié)構(gòu)性數(shù)據(jù)存儲為大表Hive:構(gòu)建在MapRudece之上的數(shù)據(jù)倉庫軟件包Pig:架構(gòu)在Hadoop之上的高級數(shù)據(jù)處理層在Hadoop框架中,最底層的HDFS存儲Hadoop集群中所有存儲節(jié)點上的文件。Hadoop是一個基于Java的分布式密集數(shù)據(jù)處理和數(shù)據(jù)分析的軟件框架。這些數(shù)據(jù)類型缺乏一致性,使得標準存儲技術(shù)無法對大數(shù)據(jù)進行有效存儲,而且我們也難以使用傳統(tǒng)的服務(wù)器和SAN方法來有效地存儲和處理龐大的數(shù)據(jù)量。這一部分主要介紹和分析大數(shù)據(jù)處理的核心技術(shù)——Hadoop。來自于Yahoo的工程師Doug Cutting在讀了這兩篇論文后建立了分布式計算平臺,以他兒子的玩具大象命名。Google總共發(fā)表了兩篇論文,2004年發(fā)表的叫做MapReduce的論文介紹了如何在多計算機之間進行數(shù)據(jù)處理。沒有這個技術(shù),要想快速便宜的分析這么大量衛(wèi)星圖片數(shù)據(jù)將是不可能的。這家公司通過對衛(wèi)星圖片的分析得出一些實時結(jié)果,比如說某個城市有多少可用停車空間,或者某個港口目前有多少船只。分布式計算技術(shù)讓不可能變成可能,分布式計算技術(shù)正引領(lǐng)著將不可能變?yōu)榭赡?。比如說可以分發(fā)現(xiàn)一些新的模式或者新的行為。更重要的是,它所使用的硬件非常便宜,因而讓這種技術(shù)的普及變成可能。 分布式計算技術(shù)分布式計算結(jié)合了NoSQL與實時分析技術(shù),如果想要同時處理實時分析與NoSQL數(shù)據(jù)功能,那么你就需要分布式計算技術(shù)。開源免費的模式如CouchDB和Cassandra?,F(xiàn)今有多種不同類型的NoSQL模式。在處理海量數(shù)據(jù)同時請求時,它也不會有任何問題。正常的數(shù)據(jù)庫需要將數(shù)據(jù)進行歸類組織,類似于姓名和帳號這些數(shù)據(jù)需要進行結(jié)構(gòu)化和標簽化。由于其處理數(shù)據(jù)的模式完全是分布于各種低成本服務(wù)器和存儲磁盤,因此它可以幫助網(wǎng)頁和各種交互性應用快速處理過程中的海量數(shù)據(jù)。NoSQL并不是單純的反對關(guān)系型數(shù)據(jù)庫,而是針對其缺點的一種補充和擴展。NoSQL,也有人理解為Not Only SQL,并不是一種特定的數(shù)據(jù)存儲模型,它是一類非關(guān)系型數(shù)據(jù)庫的統(tǒng)稱。但傳統(tǒng)的關(guān)系型數(shù)據(jù)庫嚴格的設(shè)計定式、為保證強一致性而放棄性能、可擴展性差等問題在大數(shù)據(jù)分析中被逐漸暴露。需要擴容了,只需增加個機柜,加入適當?shù)挠嬎銌卧痛鎯?,集群系統(tǒng)會自動分配和調(diào)度這些資源,絲毫不影響現(xiàn)有系統(tǒng)的運行 存儲數(shù)據(jù)庫存儲數(shù)據(jù)庫(InMemory Databases)讓信息快速流通,大數(shù)據(jù)分析經(jīng)常會用到存儲數(shù)據(jù)庫來快速處理大量記錄的數(shù)據(jù)流通。其次,即使是當前最強的商業(yè)并行數(shù)據(jù)庫,其所能管理的數(shù)據(jù)節(jié)點也只是在幾十或上百這個數(shù)量級,這主要是由于架構(gòu)上的設(shè)計問題,所以其可擴展性必然有限。這樣,舊硬件就成為了系統(tǒng)的瓶頸。首先是商業(yè)并行數(shù)據(jù)庫通常需要各節(jié)點物理同構(gòu),也就是具有近似的計算和存儲能力。這樣的方式直接導致了前期一次性投資的巨大,并且即使這樣也依然無法保證計算需求和存儲超出設(shè)計量時的系統(tǒng)性能。之前,我們在設(shè)計一個數(shù)據(jù)中心解決方案的前期,就要考慮到方案實施后的可擴展性。首先,以Google為首的技術(shù)型互聯(lián)網(wǎng)公司提出了MapReduce的技術(shù)框架,利用廉價的PC服務(wù)器集群,大規(guī)模并發(fā)處理批量事務(wù)。網(wǎng)頁存檔、用戶點擊、商品信息、用戶關(guān)系等數(shù)據(jù)形成了持續(xù)增長的海量數(shù)據(jù)集。 數(shù)據(jù)質(zhì)量和數(shù)據(jù)管理數(shù)據(jù)質(zhì)量與管理是管理的最佳實踐,透過標準化流程和機器對數(shù)據(jù)進行處理可以確保獲得一個預設(shè)質(zhì)量的分析結(jié)果。 語義引擎非結(jié)構(gòu)化數(shù)據(jù)的多元化給數(shù)據(jù)分析帶來新的挑戰(zhàn),我們需要一套工具系統(tǒng)的去分析,提煉數(shù)據(jù)。這些算法一定要能夠應付大數(shù)據(jù)的量,同時還具有很高的處理速度。 數(shù)據(jù)挖掘算法 圖像化是將機器語言翻譯給人看,而數(shù)據(jù)挖掘就是機器的母語。大數(shù)據(jù)分析技術(shù)涵蓋了以下的的五個方面 可視化分析數(shù)據(jù)可視化無論對于普通用戶或是數(shù)據(jù)分析專家,都是最基本的功能。大數(shù)據(jù)正成為IT行業(yè)全新的制高點,各企業(yè)和組織紛紛助推大數(shù)據(jù)的發(fā)展,相關(guān)技術(shù)呈現(xiàn)百花齊放局面,并在互聯(lián)網(wǎng)應用領(lǐng)域嶄露頭角,具體情況如下圖四所示:圖四大數(shù)據(jù)將帶來巨大的技術(shù)和商業(yè)機遇,大數(shù)據(jù)分析挖掘和利用將為企業(yè)帶來巨大的商業(yè)價值,而隨著應用數(shù)據(jù)規(guī)模急劇增加,傳統(tǒng)計算面臨嚴重挑戰(zhàn),大規(guī)模數(shù)據(jù)處理和行業(yè)應用需求日益增加和迫切出現(xiàn)越來越多的大規(guī)模數(shù)據(jù)處理應用需求,傳統(tǒng)系統(tǒng)難以提供足夠的