Hadoop是什麼,對於這個問題答案或許有不少人不知道,這裡就像大家介紹一下什麼是Hadoop,希望通過本文的介紹大家對Hadoop有清晰的認識。
AD:51CTO雲端運算架構師峰會 搶票進行中!
本節和大家一起學習一下Hadoop,主要介紹一下Hadoop的概念以及它的特點,歡迎大家一起來學習Hadoop的知識。
1.Hadoop是什麼
Hadoop原來是ApacheLucene下的一個子項目,它最初是從Nutch項目中分離出來的專門負責分布式儲存以及分布式運算的項目。簡單地說來,Hadoop是一個可以更容易開發和運行處理大規模資料的軟體平台。
2.下面列舉hadoop主要的一些特點:
1擴容能力(Scalable):能可靠地(reliably)儲存和處理千MB(PB)資料。
2成本低(Economical):可以通過普通機器組成的伺服器群來分發以及處理資料。這些伺服器群總計可達數千個節點。
3高效率(Efficient):通過分發資料,hadoop可以在資料所在的節點上並行地(parallel)處理它們,這使得處理非常的快速。
4可靠性(Reliable):hadoop能自動地維護資料的多份複製,並且在任務失敗後能自動地重新部署(redeploy)計算任務。
3.Hadoop實現了一個Distributed File System(HadoopDistributedFileSystem),簡稱HDFS。
HDFS有著高容錯性(fault-tolerent)的特點,並且設計用來部署在低廉的(low-cost)硬體上。而且它提供高傳輸率(highthroughput)來訪問應用程式的資料,適合那些有著超大資料集(largedataset)的應用程式。HDFS放寬了(relax)POSIX的要求(requirements)這樣可以流的形式訪問(streamingaccess)檔案系統中的資料。
4.Hadoop還實現了MapReduce分散式運算模型。
MapReduce將應用程式的工作分解成很多小的工作小塊(smallblocksofwork)。HDFS為了做到可靠性(reliability)建立了多份資料區塊(datablocks)的複製(replicas),並將它們放置在伺服器群的計算節點中(computenodes),MapReduce就可以在它們所在的節點上處理這些資料了。
如所示:
5.HadoopAPI被分成(divideinto)如下幾種主要的包(package)
org.apache.hadoop.conf定義了系統參數的設定檔處理API。
org.apache.hadoop.fs定義了抽象的檔案系統API。
org.apache.hadoop.dfsHadoopDistributed File System(HDFS)模組的實現。
org.apache.hadoop.io定義了通用的I/OAPI,用於針對網路,資料庫,檔案等資料對象做讀寫操作。
org.apache.hadoop.ipc用於網路服務端和用戶端的工具,封裝了網路非同步I/O的基礎模組。
org.apache.hadoop.mapredHadoop分散式運算系統(MapReduce)模組的實現,包括任務的分發調度等。
org.apache.hadoop.metrics定義了用於效能統計資訊的API,主要用於mapred和dfs模組。
org.apache.hadoop.record定義了針對記錄的I/OAPI類以及一個記錄描述語言翻譯器,用於簡化將記錄序列化成語言中性的格式(language-neutralmanner)。
org.apache.hadoop.tools定義了一些通用的工具。
org.apache.hadoop.util定義了一些公用的API。