本章講一下關於大數據技術hadoop,直接步入正題,在瞭解hadoop以前,先來講一下什麼是大數據?java
一.大數據node
1.概述:是指沒法在必定時間範圍內沒法用常規軟件工具進行捕捉、管理和處理的數據集合,須要使用新處理模式才能具備更強的決策力、洞察發現力和流程優化能力的海量、高增加率和多樣化的信息資產。主要解決海量數據的存儲和分析計算問題。算法
2.特色(5V):sql
*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,期待...