The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks
          HDFS和MapReduce只是打造Hadoop平臺最基本的核心套件,在Apache基金會的網站中還有其他的相關開源套件,共同組成了一個Hadoop體系(Hadoop Ecosystem)。

            通過這些相關項目的延伸,開發(fā)人員就算不懂Java,也可以用特定Script語言來寫Hadoop上的MapReduce程序,甚至可以用SQL語法來查詢HDFS上的數據。這些周邊項目可說是大幅強化Hadoop功能的軟件軍火庫,想要善用Hadoop的開發(fā)人員不可錯過。其中重要的周邊項目包括HBase、Hive 、ZooKeeper、Pig和Mahout.

            HBase 能容納PB數據量的分布式數據庫  HBase是專門用于Hadoop文件系統(tǒng)上的數據庫系統(tǒng),采取Column-Oriented 數據庫設計,不同于傳統(tǒng)的關系數據庫,例如沒有數據表、Schema數據架構等功能,而是采用Key-Value形式的數據架構,每筆數據都有一個Key值對應到一個Value值,再通過多維度的對應關系來建立類似表格效果的數據架構。如此就能采取分布式儲存方式,可以擴展到數千臺服務器,應對PB級的數據處理。

            Hive 可用SQL語法存取Hadoop數據  Hive是部署在HDFS上的一套分布式數據存儲系統(tǒng),可讓用戶以慣用的SQL語法,來存取Hadoop文件中的大型數據集,例如可以使用Join、Group by、Order by等,而這個語法稱為Hive QL.不過,Hive QL和SQL并非完全相同,例如Hive就不支持Store Procedure、Trigger等功能。   Hive會將用戶輸入的Hive QL指令編譯成Java程序,再來存取HDFS文件系統(tǒng)上的數據,所以,執(zhí)行效率依指令復雜度和處理的數據量而異,可能有數秒鐘,甚至是數分鐘的延遲。和HBase相比,Hive容易使用且彈性高,但執(zhí)行速度較慢。不少數據庫系統(tǒng),都是通過先連結到Hive,才能與Hadoop整合。例如微軟就是通過Hive ODBC驅動程序,將SQL指令轉換成Hive QL,讓Excel可以存取Hadoop上的數據。

            在同一個Hadoop集群中,Hive可以存取HBase上的數據,將HBase上的數據對應成Hive內的一個表格。

            Pig 不懂Java開發(fā)也能寫MapReduce  Pig提供了一個Script語言Pig Latin,語法簡單,類似可讀性高的高等Basic語言,可用來寫MapReduce程序。Pig會自動將這些腳本程序轉換,成為能在Hadoop中執(zhí)行的MapReduce Java程序。

            因此,使用者即使不懂Java也能寫出MapReduce.不過,一般來說,通過Pig腳本程序轉換,會比直接用Java寫MapReduce的效能降低了25%.

            ZooKeeper 讓Hadoop內部服務器能協(xié)同運作  Zookeeper是監(jiān)控和協(xié)調Hadoop分布式運作的集中式服務,可提供各個服務器的配置和運作狀態(tài)信息,用于提供不同Hadoop系統(tǒng)角色之間的工作協(xié)調。

            以HBase數據庫為例,其中有兩種服務器角色:Region服務器角色和Master服務器角色,系統(tǒng)會自動通過ZooKeeper監(jiān)看Master服務器的狀態(tài),一旦Master的運作信息消失,代表當機或網絡斷線,HBase就會選出另一臺Region服務器成為Mater角色來負責管理工作。

            Mahout 立即可用的常用MapReduce程序庫  在Hadoop中,開發(fā)人員必須將數據處理作法拆解成可分散運算的Map和Reduce程序,因為思考邏輯和常見的程序開發(fā)邏輯不同,所以開發(fā)難度很高。Mahout則提供了一個常用的MapReduce函式庫,常見的數值分析方法、集群分類和篩選方式,都已經有對應的MapReduce函數可呼叫,開發(fā)人員就不必再重復開發(fā)一次。

          posted on 2013-07-01 22:02 Eric_jiang 閱讀(388) 評論(0)  編輯  收藏 所屬分類: Hadoop

          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          主站蜘蛛池模板: 晴隆县| 平阳县| 杨浦区| 河津市| 五河县| 玉龙| 桃江县| 曲阜市| 长寿区| 海城市| 黑水县| 南投县| 邻水| 古浪县| 克山县| 封丘县| 彭阳县| 鄂尔多斯市| 克什克腾旗| 湄潭县| 修文县| 什邡市| 宜章县| 津市市| 永康市| 调兵山市| 抚顺市| 塘沽区| 牟定县| 万山特区| 兴义市| 高淳县| 金昌市| 安阳县| 商都县| 醴陵市| 肇州县| 桂阳县| 英吉沙县| 夹江县| 宁晋县|