如今Apache Hadoop已成為大資料行業發展背後的驅動力。 Hive和Pig等技術也經常被提到,但是他們都有什麼功能,為什麼會需要奇怪的名字(如Oozie,ZooKeeper、Flume)。
Hadoop帶來了廉價的處理大資料(大資料的資料容量通常是10-100GB或更多,同時資料種類多種多樣,包括結構化、非結構化等)的能力。 但這與之前有什麼不同?
現今企業資料倉儲和關聯式資料庫擅長處理結構化資料,並且可以存儲大量的資料。 但成本上有些昂貴。 這種對資料的要求限制了可處理的資料種類,同時這種慣性所帶的缺點還影響到資料倉儲在面對海量異構資料時對於敏捷的探索。 這通常意味著有價值的資料來源在組織內從未被挖掘。 這就是Hadoop與傳統資料處理方式最大的不同。
本文將介紹Hadoop系統的組成部分,並解釋各個組成部分的功能。
Hadoop生態環境包含十多種元件或子專案,但在安裝、配置和集群規模的部署以及管理等方面都面臨不小的挑戰。
Hadoop主要元件包含:
Hadoop:JAVA編寫的軟體框架,以支援資料密集型分散式應用
ZooKeeper:高可靠性分散式協調系統
MapReduce:針對大資料的靈活的並行資料處理框架
HDFS:Hadoop分散式檔案系統
Oozie:負責MapReduce作業調度
HBase:Key-value資料庫
Hive:構建在MapRudece之上的資料倉儲套裝軟體
Pig:Pig是架構在Hadoop之上的高級資料處理層。 Pig Latin語言為程式設計人員提供了更直觀的定制資料流程的方法。
Hadoop MapReduce方法的應用範圍以及典型的特徵龐大的資料量較少或沒有資料依賴包含結構化和非結構化資料適合大規模的並行處理應用用例足夠快速的批次處理分析儀滿足業務需求和業務報告,如網站流量和產品推薦分析。 使用資料採礦和機器學習演算法反覆運算分析。 如關聯規則分析K-means資料聚集、連結分析(資料分析技術)、資料採礦分類、著名的Bayes演算法分析。 統計分析和提煉,如Web日誌分析、資料分析行為分析,如點選流分析,使用者視頻行為等轉換和增強功能,如社交媒體、ETL處理、資料標準化等
通常情況下,Hadoop應用於分散式環境。 就像之前Linux的狀況一樣,廠商集成和測試Apache Hadoop生態系統的元件,並添加自己的工具和管理功能。