文章目錄
- 前言
- 一、Hadoop介紹
- 1. 簡介
- 2. Hadoop發展史
- 3. Hadoop現狀
- 二、Hadoop特性
- 1. Hadoop國外應用
- 2. Hadoop國內應用
- 三、Hadoop架構變遷
- 1. 發行版本
- 2. Hadoop架構變遷(1.0-2.0變遷)
- 3. Hadoop架構變遷(3.0新版本)
- 4. 綜述
- 四、技術生態體系
前言
大數據(Big Data)
?
大數據(Big Data)是指無法用傳統數據處理工具處理的大規模數據集合,具有數據量大、數據類型多、數據生成速度快、數據價值密度低等特點。
大數據的處理技術包括分布式存儲和計算、數據清洗和轉換、數據分析和可視化等。
分布式存儲和計算是通過多臺計算機協同工作來處理大規模數據,如Hadoop、Spark等;
數據清洗和轉換是對大數據進行預處理,如數據去重、數據轉換等;
數據分析和可視化是對大數據進行分析和展示,如機器學習、數據可視化等。
大數據的設計和實現需要考慮數據源、數據質量、性能、數據安全等因素。
一、Hadoop介紹
Hadoop是大數據生態圈的核心與基石,是整個大數據開發的入門。
?
1. 簡介
狹義上Hadoop指的是Apache軟件基金會的一款開源軟件。
用 java語言實現,開源允許用戶使用簡單的編程模型實現跨機器集群對海量數據進行分布式計算處理。
Hadoop核心組件:
- Hadoop HDFS (分布式文件存儲系統):解決海量數據存儲
- Hadoop YARN (集群資源管理和任務調度框架): 解決資源任務調度
- Hadoop MapReduce (分布式計算框架):解決海量數據計算
官網:Apache Hadoop
廣義上Hadoop指的是圍繞Hadoop打造的大數據生態圈。
2. Hadoop發展史
-
Hadoop之父: Doug Cutting
-
Hadoop起源于Apache Lucene子項目: Nutch,Nutch的設計目標是構建一個大型的全網搜索引擎。遇到瓶頸:如何解決數十億網頁的存儲和索引問題
-
Google三篇論文
《The Google file system》 :谷歌分布式文件系統GFS
《MapReduce: Simpliied Data Processing on Large Clusters》 :谷歌分布式計算框架MapReduce
《Bigtable: A Distributed Storage System for Structured Data》 :谷歌結構化數據存儲系統
3. Hadoop現狀
HDFS作為分布式文件存儲系統,處在生態圈的底層與核心地位;
YARN作為分布式通用的集群資源管理系統和任務調度平臺, 支撐各種計算引擎運行,保證了Hadoop地位;
MapReduce作為大數據生態圈第一代分布式計算引擎,由于自身設計的模型所產生的弊端, 導致企業一線幾乎不再直接使用MapReduce進行編程處理,但是很多軟件的底層依然在使用MapReduce引擎來處理數據。
Hadoop是一個由Apache基金會所開發的分布式系統基礎架構,主要就是解決數據存儲和數據分析計算的問題(通過HDFS和MapReduce實現)。
Hive是基于Hadoop的數據倉庫工具,可以存儲,查詢,分析數據,方便決策人員和數據分析人員統計分析歷史數據。
Spark是一個基于內存計算的開源的集群計算系統,目的是讓數據分析更加快速。
對應于Google三駕馬車:
HDFS對應于GFS,即分布式文件系統;
MapReduce即并行計算框架;
HBase對應于BigTable,即分布式NoSQL列數據庫。
外加Zookeeper對應于Chubby,即分布式鎖設施。
二、Hadoop特性
1. Hadoop國外應用
- Yahoo
- 支持廣告系統
- 用戶行為分析
- 支持Web搜索
- 反垃圾郵件系統
- 存儲處理數據挖掘和日志統計
- 構建基于Hadoop數據倉庫平臺(Apache Hive來自FB)
- IBM
- 藍云基礎設施構建
- 商業化Hadoop發行、解決方案支持
2. Hadoop國內應用
- 百度
- 用戶搜索表征的需求數據、阿拉丁爬蟲數據存儲
- 數據分析和挖掘 競價排名
- 阿里巴巴
- 為電子商務網絡平臺提供底層的基礎計算和存儲服務
- 交易數據、信用數據
- 騰訊
- 用戶關系數據
- 基于Hadoop、 Hive構建TDW (騰訊分布式數據倉庫)
- 華為
- 對Hadoop的HA方案,以及HBase領域有深入研究
三、Hadoop架構變遷
1. 發行版本
Hadoop發行版本:Apache Hadoop
Apache開源社區版本:http://hadoop.apache.org/
商業發行版本:
- Cloudera: https://www.cloudera.com/products/open-source/apache-hadoop.html
- Hortonworks: https://www.cloudera.com/products/hdp.html
常用Apache版的Hadoop, 版本號為: 3.3.0
2. Hadoop架構變遷(1.0-2.0變遷)
Hadoop 1.0
- HDFS (分布式文件存儲)
- MapReduce (資源管理和分布式數據處理)
Hadoop 2.0
- HDFS (分布式文件存儲)
- MapReduce (分布式數據處理)
- YARN (集群資源管理、任務調度)
3. Hadoop架構變遷(3.0新版本)
Hadoop 3.0架構組件和Hadoop 2.0類似,3.0著重于性能優化。
- 通用方面
精簡內核、類路徑隔離、shell腳本重構
- Hadoop HDFS
EC糾刪碼、多NameNode支持
- Hadoop MapReduce
任務本地化優化、 內存參數自動推斷
- Hadoop YARN
Timeline Service V2、隊列配置
4. 綜述
① 在Hadoop1.x時代,Hadoop中的MapReduce同時處理業務邏輯運算和資源的調度,耦合性較大。
② 在Hadoop2.x時代,增加了Yarn。Yarn只負責資源的調度,MapReduce只負責運算。
③ Hadoop3.x在組成上沒有什么變化。
現狀:
HDFS作為分布式文件存儲系統,處在生態圈的底層與核心地位;
YARN作為分布式通用的集群資源管理系統和任務調度平臺, 支撐各種計算引擎運行,保證了Hadoop地位;
MapReduce作為大數據生態圈第一代分布式計算引擎,由于自身設計的模型所產生的弊端, 導致企業一線幾乎不再直接使用MapReduce進行編程處理,但是很多軟件的底層依然在使用MapReduce引擎來處理數據。
四、技術生態體系
大數據技術生態體系
Sqoop: Sqoop 是一款開源的工具,主要用于在 Hadoop、 Hive 與傳統的數據庫(MySQL)間進行數據的傳遞,可以將一個關系型數據庫(例如 : MySQL, Oracle 等)中的數據導進到 Hadoop 的 HDFS 中,也可以將 HDFS 的數據導進到關系型數據庫中。
Flume: Flume 是一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸的系統,Flume 支持在日志系統中定制各類數據發送方,用于收集數據;
Kafka: Kafka 是一種高吞吐量的分布式發布訂閱消息系統
Spark: Spark 是當前最流行的開源大數據內存計算框架。可以基于 Hadoop 上存儲的大數據進行計算。
Flink: Flink 是當前最流行的開源大數據內存計算框架。 用于實時計算的場景較多。
Oozie: Oozie 是一個管理 Hadoop 作業(job)的工作流程調度管理系統。
Hbase: HBase 是一個分布式的、面向列的開源數據庫。 HBase 不同于一般的關系數據庫,它是一個適合于非結構化數據存儲的數據庫。
Hive: Hive 是基于 Hadoop 的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,并提供簡單的 SQL 查詢功能,可以將 SQL 語句轉換為 MapReduce 任務進行運行。其優點是學習成本低,可以通過類 SQL 語句快速實現簡單的 MapReduce 統計,不必開發專門的 MapReduce 應用,十分適合數據倉庫的統計分析。
ZooKeeper:它是一個針對大型分布式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、分布式同步、組服務等。
本文的引用僅限自我學習如有侵權,請聯系作者刪除。
參考知識
Hadoop技術棧之Apache Hadoop概述