Hadoop:算法
1 HDFS(分佈式文件系統)數據庫
2 HBase/Sqoop/Flume(數據導入與導出)編程
3 MapReduce/Spark(並行計算架構)架構
4 Pig/Hive(Hadoop編程)框架
5 ZooKeeper/Oozie(系統管理架構)機器學習
6 Ambari/Whirr(系統部署管理)編程語言
7 Mahout(機器學習/算法庫)分佈式
8 Impala (查詢系統)工具
Hadoop是一個你們族,是一個開源的生態系統,是一個分佈式運行系統,是基於Java編程語言的架構。不過它最高明的技術仍是HDFS和MapReduce,使得它能夠分佈式處理海量數據。oop
1 HDFS(分佈式文件系統):
它與現存的文件系統不一樣的特性有不少,好比高度容錯(即便中途出錯,也能繼續運行),支持多媒體數據和流媒體數據訪問,高效率訪問大型數據集合,數據保持嚴謹一致,部署成本下降,部署效率提交等,如圖是HDFS的基礎架構
2 HBase/Sqoop/Flume(數據導入與導出):
HBase是運行在HDFS架構上的列存儲數據庫,而且已經與Pig/Hive很好地集成。經過Java API能夠近無縫地使用HBase。
Sqoop設計的目的是方便從傳統數據庫導入數據到Hadoop數據集合(HDFS/Hive)。
Flume設計的目的是便捷地從日誌文件系統直接把數據導到Hadoop數據集合(HDFS)中。
以上這些數據轉移工具都極大的方便了使用的人,提升了工做效率,把經歷專一在業務分析上!
3 MapReduce/Spark(並行計算架構):
它能夠將計算任務拆分紅大量能夠獨立運行的子任務,接着並行運算,另外會有一個系統調度的架構負責收集和彙總每一個子任務的分析結果。其中 包含映射算法與規約算法。如圖是MapReduce的內部計算步驟
Spark是一個內存計算的框架。目前一個大的趨勢。MapReduce會有很大的IO操做,而Spark是在內存中計算。速度是Hadoop的10倍(官網上這樣說的)。Spark是目前一個趨勢,是須要了解的。
4 Pig/Hive(Hadoop編程):
Pig是一種高級編程語言,在處理半結構化數據上擁有很是高的性能,能夠幫助咱們縮短開發週期。
Hive是數據分析查詢工具,尤爲在使用類SQL查詢分析時顯示是極高的性能。能夠在分分鐘完成ETL要一夜才能完成的事情,這就是優點,佔了先機!
5 ZooKeeper/Oozie(系統管理架構):ZooKeeper是一個系統管理協調架構,用於管理分佈式架構的基本配置。它提供了不少接口,使得配置管理任務簡單化!Oozie服務是用於管理工做流。用於調度不一樣工做流,使得每一個工做都善始善終。這些架構幫助咱們輕量化地管理大數據分佈式計算架構。
6 Ambari/Whirr(系統部署管理):Ambari幫助相關人員快捷地部署搭建整個大數據分析架構,而且實時監控系統的運行情況。Whirr的主要做用是幫助快速的進行雲計算開發。
7 Mahout(機器學習/算法庫):Mahout旨在幫助咱們快速地完成高智商的系統。其中已經實現了部分機器學習的邏輯。這個架構可讓咱們快速地集成更多機器學習的智能!!又是數據挖掘算法庫,裏面內置了大量的算法。能夠用來作預測、分類、聚類等。工具很強大,可是技術要求能力較高。
8 Impala (查詢系統) :Impala是Cloudera公司主導開發的新型查詢系統,它提供SQL語義,能查詢存儲在Hadoop的HDFS和HBase中的PB級大數據。已有的Hive系統雖然也提供了SQL語義,但因爲Hive底層執行使用的是MapReduce引擎,仍然是一個批處理過程,難以知足查詢的交互性。相比之下,Impala的最大特色也是最大賣點就是它的快速。Imapa能夠和Phoenix,Spark Sql聯繫起來了解一下。
推薦:兩本最重要的書籍(這兩本基本已經能夠知足大部分你對Hadoop的須要):
Hadoop權威指南
Hadoop最佳實踐