1. 程式人生 > >淺學hedoop

淺學hedoop

hadoop中有3個核心元件:

分散式檔案系統:HDFS —— 實現將檔案分散式儲存在很多的伺服器上

分散式運算程式設計框架:MapReduce —— 實現在很多機器上分散式並行運算

分散式資源排程平臺:Yarn —— 幫使用者排程大量的mapreduce程式,併合理分配運算資源

 

HDFS為海量的資料提供了儲存,則MapReduce為海量的資料提供了計算

 

Hadoop主要元件包含:

  1. Hadoop:Java編寫的軟體框架,以支援資料密集型分散式應用
  2. ZooKeeper:高可靠性分散式協調系統
  3. MapReduce:針對大資料的靈活的並行資料處理框架
  4. HDFS:Hadoop分散式檔案系統
  5. Oozie:負責MapReduce作業排程
  6. HBase:Key-value資料庫
  7. Hive:構建在MapRudece之上的資料倉庫軟體包
  8. Pig:Pig是架構在Hadoop之上的高階資料處理層。Pig Latin語言為程式設計人員提供了更直觀的定製資料流的方法。

 

 

HDFS 的工作機制:

  1. 客戶把一個檔案存入hdfs,其實hdfs會把這個檔案切塊後,分散儲存在N臺linux機器系統中(負責儲存檔案塊的角色:data node)<準確來說:切塊的行為是由客戶端決定的
    >

 

  1. 一旦檔案被切塊儲存,那麼,hdfs中就必須有一個機制,來記錄使用者的每一個檔案的切塊資訊,及每一塊的具體儲存機器(負責記錄塊資訊的角色是:name node

 

3、為了保證資料的安全性,hdfs可以將每一個檔案塊在叢集中存放多個副本(到底存幾個副本,是由當時存入該檔案的客戶端指定的)

 

綜述:一個hdfs系統,由一臺運行了namenode的伺服器,和N臺運行了datanode的伺服器組成!

 

 

MapReduce

MapReduce的基本原理就是:將大的資料分析分成小塊逐個分析,最後再將提取出來的資料彙總分析,最終獲得我們想要的內容。當然怎麼分塊分析,怎麼做Reduce操作非常複雜,Hadoop已經提供了資料分析的實現,我們只需要編寫簡單的需求命令即可達成我們想要的資料。

Yarn

yarn是一個分散式程式的執行排程平臺

yarn中有兩大核心角色

  1. Resource Manager

接受使用者提交的分散式計算程式,併為其劃分資源

管理、監控各個Node Manager上的資源情況,以便於均衡負載

 

 

  1. Node Manager

管理它所在機器的運算資源(cpu + 記憶體)

負責接受Resource Manager分配的任務,建立容器、回收資源

 

HBASE是一個數據庫----可以提供資料的實時隨機讀寫

 

HBASE與mysql、oralce、db2、sqlserver等關係型資料庫不同,它是一個NoSQL資料庫(非關係型資料庫)

 

HBASE相比於其他nosql資料庫(mongodb、redis、cassendra、hazelcast)的特點:

Hbase的表資料儲存在HDFS檔案系統中

 

 

HBASE是一個分散式系統

其中有一個管理角色:  HMaster(一般2臺,一臺active,一臺backup)

其他的資料節點角色:  HRegionServer(很多臺,看資料容量)