本章講一下關於大數據技術hadoop,直接步入正題,在了解hadoop之前,先來說一下什麼是大數據?
一.大數據
1.概述:是指無法在一定時間範圍內無法用常規軟體工具進行捕捉、管理和處理的數據集合,需要使用新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。主要解決海量數據的存儲和分析計算問題。
2.特點(5V):
*Volume(大量):數據存儲量;
*Velocity(高速):大數據區分於傳統數據挖掘的最顯著特徵;
*Variety(多樣):數據分為結構化數據和非結構化數據;
*value(低價值密度):低價值密度的高低與數據總量成反比;
*Veracity(真實性)。
3.應用場景:人工智慧、保險的海量數據挖掘及風險預測、物流倉儲、金融多維度體現用戶特徵......
4.大數據部門組織結構:
二.Hadoop
1.概述:一個用於分布式大數據處理的開源框架,由Apache基金會所開發的分布式系統基礎框架,允許使用簡單的編程模型在跨計算機集群的分布式環境中存儲和處理大數據。同常是指一個更廣泛的概念-Hadoop生態圈。
2.Hadoop生態圈:
*Sqoop:一款開源工具,主要用在Hadoop、Hive與傳統資料庫(Mysql)間進行數據傳遞,可以將關係型資料庫數據導入到Hadoop的HDFS中,也可以從HDFS中導入關係型資料庫中;
*Flume:一個高可用、高可靠的分布式海量日誌採集、聚合和傳輸系統,支持在日誌系統中定製各類數據發送方,用於收集數據;
*Kafka:一種高吞吐量的分布式發布訂閱消息系統;
*HBase:一個建立在HDFS之上,面向列的針對性結構化數據的可伸縮、高可靠、高性能、分布式的動態資料庫,保存的數據可以使用Mapreducer來處理,將數據存儲和並行計算完美的結合在一起;
*Storm:對數據流做連續查詢,在計算時就將結果以流動形式輸出給用戶,用於「連續計算」;
*Spark:一種基於內存的分布式計算框架,與Mapreducer不同的是Job中間輸出結果可以保存在內存中,從而不再需要讀寫HDFS,因此Spark能更好地適用於數據挖掘與機器學習等需要迭代的MapReduce的算法,內部提供了大量的庫,如 Spark Sql、Spark Streaming等;
*Fiilnk:一種基於內存的分布式計算框架,用於實時計算場景較多;
*Oozie:一個管理hadoop job 的工作流程調動管理系統,用於協調多個MapReducer任務的執行;
*Hive:基於Hadoop的一個數據倉庫工具,定義了一種類似SQL的查詢語言(HQL),將SQL轉化為MapReduce任務在Hadoop上執行。通常用於離線分析。
*Impala:用於處理存儲在Hadoop集群中大量數據的MPP(大規模並行處理)SQL查詢引擎,與Hive不同,不基於MapReducer算法。它實現了一個基於守護進程的分布式結構,負責在同一臺機器上運行的查詢執行所有方面,執行效率高於Hive。
3.三大發行版本:Apache、Cloudera、Hortonworks
4.優勢:
*高可靠性:Hadoop底層維護多個數據副本,即使某個存儲出現故障,也不會導致數據的丟失;
*高擴展性:在集群間分配任務數據,可方便的擴展數以千計的節點;
*高效性:hadoop是並行工作的,以加快任務處理速度;
*高容錯性:能夠自動將失敗的任務從新分配。
5.組成:
*HDFS:分布式文件系統;
*MapReducer:分布式數據處理模型和執行環境(分布式計算);
*YARN:job調度和資源管理框架;
*Common:支持其他模塊的工具模塊(輔助工具)。
6.三種模式:
*單機模式:不需要配置,Hadoop被認為單獨的java進程,經常用來做調試;
*偽分布式模式:可以看做只有一個節點的集群,在這個集群中,這個節點既是master,也是slave,既是namenode,也是datanode,既是jobtracker,也是tasktracker;
*完全分布式模式:Hadoop的守護進程運行在由多臺主機搭建的集群上,是真正的生產環境。
後面我們會介紹到HDFS和MapReducer,期待...