一、簡介
hadoop是乙個由apache**會所開發的分布式系統基礎架構。hadoop的框架最核心的設計就是:hdfs和mapreduce。hdfs為海量的資料提供了儲存,則mapreduce為海量的資料提供了計算。
二、hdfs
hadoop distributed file system,簡稱hdfs,是個分布式檔案系統,是hadoop的乙個核心部分。hdfs有這高容錯性(fault-tolerent)的特點,並且設計用來部署在低廉價的(low-cost)的硬體上,提供了高吞吐量(high-throughout)來訪問應用程式的資料,適合那些有著超大資料集(large data set)的應用程式。hdfs開始是為開源的apache專案nutch的基礎結構而建立的。
三、mapreduce
mapreduce是乙個程式設計模型,乙個處理和生成超大資料集演算法模型的實現,簡單概括就是「資料分解、平行計算、結果合併「。mapreduce最大的優點是它簡單的程式設計模型,程式猿只需根據該模型框架設計map和reduce函式,剩下的任務,如:分布式儲存、節點任務排程、節點通訊、容錯處理和故障處理都由mapreudce框架來完成,程式的設計有很高的擴充套件性。
四、生態圈
pig:hadoop上的資料流執行引擎,由yahoo開源,基於hdfs和mapreduce,使用pig latin語言表達資料流,目的在於讓mapreduce用起來更簡單。
sqoop:主要用於在hadoop和傳統資料庫進行資料互導。
zookeeper:分布式的,開放原始碼的分布式應用程式協調服務。
flume:分布式、可靠、高可用的服務,它能夠將不同資料來源的海量日誌資料進行高效收集、匯聚、移動,最後儲存到乙個中心化資料儲存系統中,它是乙個輕量級的工具,簡單、靈活、容易部署,適應各種方式日誌收集並支援failover和負載均衡。
hive:構建在hadoop之上的資料倉儲,用於解決海量結構化的日誌資料統計,定義了一種類sql查詢語言。
yarn:資源協調者、hadoop 資源管理器,提供統一的資源管理和排程。
impala:基於hive的大資料實時分析查詢引擎,直接使用hive的元資料庫metadata。
solr:基於lucene的全文檢索引擎。
hue:開源的apache hadoop ui系統,基於python web框架django實現的。通過使用hue可以在瀏覽器端的web控制台上與hadoop集群進行互動來分析處理資料。
oozie:基於工作流引擎的伺服器,可以在上面執行hadoop任務,是管理hadoop作業的工作流排程系統。
storm:分布式實時大資料處理系統,用於流計算。
hbase:構建在hdfs上的分布式列儲存系統,海量非結構化資料倉儲。
spark:海量資料處理的記憶體計算引擎,spark框架包含spark streaming、spark sql、mllib、graphx四部分。
mahout:apache software foundation(asf) 旗下的乙個開源專案,提供一些可擴充套件的機器學習領域經典演算法的實現。
drill:低延遲的分布式海量資料(涵蓋結構化、半結構化以及巢狀資料)互動式查詢引擎,使用ansi sql相容語法,支援本地檔案、hdfs、hbase、mongodb等後端儲存,支援parquet、json、csv、tsv、psv等資料格式。
tez:有向無環圖的執行引擎,dag作業的開源計算框架。
shark:sql on spark,可以近似認為僅將物理執行計畫從mr作業替換成了spark作業。
Hadoop生態圈普及
大資料一路走來,從最開始的hadoop1.0 逐漸發展到hadoop2.0。hadoop的橫空出世引領了大資料行業技術的發展。逐漸以分布式並行離線處理框架mapreduce 分布式檔案儲存系統hdfs以及排程系統yarn為中心,發展出龐大的生態圈,比如hive hbase zookeeper等等,豐...
Hadoop生態圈之zookeeper
zookeeper是乙個分布式服務框架,主要用來解決分布式應用中經常遇到的一些資料管理問題,如 統一命名服務 狀態同步服務 集群管理 分布式應用配置項的管理等。簡而言之就是 zookeeper 檔案系統 監聽通知機制。每個子目錄如nameservice都被稱為znode 目錄節點 和檔案系統一樣,我...
產業生態圈和生態圈
突然想到這麼乙個比喻,不是想說明什麼。想起以前經常看到的android生態圈,mac生態圈,win生態圈之類。是不是可以把 產業生態圈 產業鏈 和 生態圈 食物鏈 做模擬?生態學裡面也形象的把以自養生物為食物的動物稱為初級消費者。市場這個 生態圈 裡的各級 消費者 傳遞的不是能量,而是利潤 空白市場...