一、基礎概念 & 適用場景
1、分佈式文件系統(HDFS)
HDFS是Hadoop分佈式文件系統,HDFS有如下技術特點和應用場景:
- 適合處理超大文件,數量級達到GB、TB甚至PB級
- 支持集羣規模的動態擴展
- 適用於流式數據讀寫的場景,即“一次寫入,多次讀取”
- 具有高容錯性,數據塊可以保存多個副本,實現負載均衡
- 對硬件要求低,能夠運行在廉價的商用機器集羣
不適用於如下場景:
- 不適合需要高效存儲大、量小的場景
- 不適合低延遲的數據訪問場景
- 不適合多用戶同時寫和任意修改該文件場景
2、分佈式計算框架(MapReduce)
MapReduce是一個分佈式並行編程模型,將計算任務分佈在成百上千個節點組成的集羣進行並行計算,並返回計算結果。
MapReduce計算模型有如下優點和使用場景:
- 具有高度可擴展性,可動態增加/削減計算節點
- 具有高容錯能力,支持任務自動遷移、重試和預測執行,不受單點故障影響
- 能實現靈活的資源分配和調度,達到資源利用的最大化
- 可部署在幾千臺機器的超大規模集羣尚,使MapReduce可以處理具有超大規模數據的業務場景
- MapReduce模型使用方便,易於編程,簡化了分佈式程序設計,提高了開發效率且支持多開發語言
- MapReduce計算的時延較高,對實時性要求較高的場景不合適使用
- MapReduce適合順序批量處理數據,處理隨機訪問的能力不足,因此需要處理隨機數據的場景也不適用MapReduce
3、分佈式集羣管理系統(Zookeeper)
Zookeeper是一個針對大型分佈式系統的可靠協調系統。在大數據系統中,Zookeeper爲Hadoop生態系統中各組件提供功能支撐。
Zookeeper主要有如下常見應用場景:
- 爲分佈式應用系統提供同一的配置管理信息
- 爲分佈式應用系統提供同一的命名服務
- 提供基於簡單原語的分佈式同步操作
- 集羣管理
4、數據倉庫工具(Hive)
- 海量數據的離線分析
- 結構化數據的處理
5、分佈式數據庫(HBase)
- 存儲和查詢半結構化和非結構化的數據
- 存儲和查詢記錄稀疏的數據
- 存儲和查詢超大數據量的數據
- 業務場景簡單,不需要全部關係數據庫特性的場景