Hadoop實戰內容摘記

 Hadoop 開源分佈式計算平臺,前身是:Apache Nutch(爬蟲),Lucene(中文搜索引擎)子項目之一。
 以Hadoop分佈式計算文件系統(Hadoop Distributed File System HDFS)和MapReduce(Google MapReduce的開源實現)爲核心 的Hadoop基礎架構。
 HDFS的高容錯性、搞伸縮性等優勢能夠將Hadoop部署在廉價版的硬件上,造成分佈式系統;
 MapReduce分佈式編程模型,利用這種模型軟件開發者能夠輕鬆地編寫出分佈式並行程序。
 
 優點:
  一、高可靠性:按位儲存和處理數據的能力指的信賴。
  二、高擴展性:在可用的計算機集簇間分配數據完成計算任務,這些集簇能夠擴展到數以千計的節點中。
  三、高效性:可以在節點之間動態的移動數據,已保證各個節點的動態平衡,所以處理速度很是快。
  四、高容錯性:Hadoop可以自動保存數據的多分副本,而且可以自動將失敗的任務從新分配。
  
Hadoop項目極其結構數據庫

 hadoop核心是MapReduce(編程模型)和HDFS(計算系統)編程

一、Hadoop Common:是Hadoop爲其它子項目提供支持的經常使用工具,主要包括FileSystem、PRC和串行化庫。
二、Avro:是數據序列化的系統,將逐步取代Hadoop原有的IPC機制。
三、 MapReduce:是一種編程模型,並行計算框架,用於大規模數據集的並行運算。
四、 HDFS:是分佈式計算系統,具備高容錯性
     HDFS設計目標:
     4.1:檢測和快速恢復硬件故障是HDFS的核心目標。
     4.2:流式的數據訪問;重視數據的吞吐量,不是數據訪問的反應速度。
     4.3:簡化一致性模型;
     4.4:通訊協議;全部的通訊協議都是創建在TCP/IP協議之上的。
五、Chukwa:是開源的數據收集系統,用於監控和分析大型分佈式系統的數據,在MapReduce和HDFS之上搭建的,經過HDFS來儲存數據並依賴MR任務處理數據。
六、Hive:數據倉庫工具,由Facebook貢獻。創建在Hadoop基礎上的數據倉庫,提供對Hadoop文件中的數據集進行數據整理、特殊查詢和分析儲存的工具。
七、HBase:開源的分佈式、面向列的數據庫。7.1:HBase是一個適合於非結構化數據儲存的數據庫;7.2:HBase是基於列而不是基於行的模式。
八、Pig:大數據分析和評估平臺。底層由一個編譯器組成,語言層由Pig Latin的正文型語言組成。
九、Zookeeper:是一個爲分佈式應用所設計的開源協調服務。主要爲用戶提供同步、配置管理、分組和命名等服務。由Java編寫、但支持J和C兩種語言。
----------------------
Ambari:Hadoop管理工具。Apache Ambari是對Hadoop進行監控、管理和生命週期管理的基於網頁的開源項目。
Sqoop:於在HADOOP與傳統的數據庫間進行數據的傳遞。利用Sqoop將數據從數據庫導入到HDFS。
 
Hadoop體系結構
一、HDFS講解
HDFS和MapReduce是Hadoop兩大核心,而整個Hadoop的體系結構主要是經過HDFS來實現分佈式儲存的底層支持的。
HDFS採用 主從(Master/Slave)結構模型,一個HDFS由一個NameNode和若干個DataNode組成,NameNode做爲主服務器來管理文件系統的命名空間和客戶端對文件的訪問操做,
集羣中的DataNode管理儲存數據。容許以文件的形式來儲存數據,從內部來看  文件被分紅若干個數據塊存放在一組DataNode上,DataNode處理文件的讀寫請求,NameNode處理例如:
打開、關閉、重命名文件或目錄等也負責數據塊到具體DataNode的映射。
NameNode是全部HDFS元數據的管理者,用戶須要保存的數據不會通過NameNode,而是直接流向存儲數據dataNode。
體系結構圖:
 
二、MapReduce介紹
基於MapReduce能夠將任務分發到由上千臺商用機器組成的集羣上,並以一種可靠性容錯的方式並行處理大數據集,實現Hadoop的並行任務處理功能。
MapReduce是由一個單獨運行在 主節點的JobTracker和運行在每一個集羣 從節點的TaskTracker共同組成的。
主節點負責調度構成一個做業任務,這些任務分配在不一樣的從節點上,主節點監控他們的執行狀況,而且從新執行以前失敗的任務。
從節點負責由主節點指派的任務,當一個Job被提交時,JobTracker接收到提交做業和配置信息後,就會將配置信息分發給從節點,並同時監控。
 
總結:MapReduce和HDFS共同組成了Hadoop分佈式系統的體系結構,HDFS在集羣上實現了分佈式文件系統,MapReduce實現了分佈式計算和任務處理。HDFS在MapReduce任務處理過程當中提供了對文件操做和儲存等的支持,MapReduce在HDFS的基礎上實現了任務的分發、跟蹤、執行等工做並收集結果。兩者相互做用完成了Hadoop分佈式集羣的主要任務。
相關文章
相關標籤/搜索