一:大數據的應用場景:html
1.1: 大數據的誕生web
2005年Hadoop項目誕生。 Hadoop其最初只是雅虎公司用來解決網頁搜索問題的一個項目,後來 因其技術的高效性,被Apache Software Foundation公司引入併成爲開源應用。Hadoop自己不是一個產品,而是由多個軟件產品組成的一個生態系統,這些軟件產品共同實現全面功能和靈活的大數據分析。從技術上看,Hadoop由兩項關鍵服務構成:採用Hadoop分佈式文件系統(HDFS)的可靠數據存儲服務,以及利用一種叫作MapReduce技術的高性能並行數據處理服務。這兩項服務的共同目標是,提供一個使對結構化和複雜數據的快速、可靠分析變爲現實的基礎。算法
1.2: 2015 大數據的峯會數據庫
過去7年咱們從互聯網創業到互聯網產業,很快進入互聯網經濟,
並且正在從IT走向DT時代,也許昨天稱爲IT領袖峯會,將來要稱DT領袖峯會,
DT不只僅 是技術提高,而是思想觀念的提高。
DT和IT時代區別,IT以我爲中心,DT以別人爲中心,DT要讓企業愈來愈強大,
讓你員工強大。DT愈來愈講究開放、透明。
咱們全部企業都要思考什麼樣的文化、什麼樣的組織、
什麼樣的人才才能適應將來DT時代,相信整個DT時代到來,在海外這被稱爲D經濟。
服務器
1.3: 什麼是大數據網絡
大數據(big data),或稱巨量資料,指的是海量的、高增加率的和多樣化的信息資產。不是超過某個特定數量級的數據集纔是大數據,而是規模超過現有數據庫工具獲取、存儲、管理和分析能力的數據集才稱爲大數據。 大數據技術的戰略意義不在於掌握龐大的數據信息,而在於對這些含有意義的數據進行專業化處理。換言之,若是把大數據比做一種產業,那麼這種產業實現盈利的關鍵,在於提升對數據的「加工能力」,經過「加工」實現數據的「增值」。(ETL)架構
1.4:大數據的定義與特徵框架
1.4.1:大數據的特徵(4V+1O):分佈式
數據量大(Volume)。第一個特徵是數據量大,包括採集、存儲和計算的量都很是大。大數據的起始計量單位至少是P(1000個T)、E(100萬個T)或Z(10億個T)。工具
類型繁多(Variety)。第二個特徵是種類和來源多樣化。包括結構化、半結構化和非結構化數據,具體表現爲網絡日誌、音頻、視頻、圖片、地理位置信息等等,多類型的數據對數據的處理能力提出了更高的要求。
價值密度低(Value)。第三個特徵是數據價值密度相對較低,或者說是浪裏淘沙卻又彌足珍貴。隨着互聯網以及物聯網的普遍應用,信息感知無處不在,信息海量,但價值密度較低,如何結合業務邏輯並經過強大的機器算法來挖掘數據價值,是大數據時代最須要解決的問題。
速度快時效高(Velocity)。第四個特徵數據增加速度快,處理速度也快,時效性要求高。好比搜索引擎要求幾分鐘前的新聞可以被用戶查詢到,個性化推薦算法儘量要求實時完成推薦。這是大數據區別於傳統數據挖掘的顯著特徵。
數據是在線的(Online)。數據是永遠在線的,是隨時能調用和計算的,這是大數據區別於傳統數據最大的特徵。如今咱們所談到的大數據不只僅是大,更重要的是數據變的在線了,這是互聯網高速發展背景下的特色。好比,對於打車工具,客戶的數據和出租司機數據都是實時在線的,這樣的數據纔有意義。若是是放在磁盤中並且是離線的,這些數據遠遠不如在線的商業價值大。
1.4.2:大數據的定義:
大數據須要特殊的技術,以有效地處理大量的容忍通過時間內的數據。適用於大數據的技術,包括大規模並行處理(MPP)數據庫、數據挖掘、分佈式文件系統、分佈式數據庫、雲計算平臺、互聯網和可擴展的存儲系統。
2.1: hadoop 的概述
2.1.一、簡介
Hadoop是一個實現了MapReduce計算模式的可以對大量數據進行分佈式處理的軟件框架,是一種可靠、高效、可伸縮的處理數據架構。Hadoop計算框架最核心的設計是HDFS(Hadoop Distributed File System)和MapReduce,HDFS單看全稱就知道,實現了一個分佈式的文件系統,MapReduce則是提供一個計算模型,基於分治策略。
2.1.二、Hadoop特性
第一,它是可靠的,由於它假設計算元素和存儲會失敗,所以它默認維護多個工做數據副本,確保可以針對失敗的節點從新分佈處理。 其次,Hadoop 是高效的,由於它以並行的方式工做,經過並行處理加快處理速度。Hadoop 仍是可伸縮的,可以處理 PB 級數據。 此外,Hadoop 依賴於普通pc機或廉價服務器,能夠根據業務規模自行增減節點,所以它的成本比較低,且開源,任何人均可以使用。 總之,Hadoop就是一個適合大量數據的分佈式存儲和計算的平臺。
2.2:hadoop 的核心
Hadoop Common: 爲其餘Hadoop模塊提供基礎設施。
Hadoop HDFS: 一個高可靠、高吞吐量的分佈式文件系統
Hadoop MapReduce: 一個分佈式的離線並行計算框架
Hadoop YARN: 一個新的MapReduce框架,任務調度與資源管理
2.3 hdfs 的架構圖:
2.4 :HDFS 服務的功能
NameNode 主節點,存儲文件的元數據如文件名,文件目錄結構,文件屬性(生成時間,副本數,文件權限),以及每一個文件的塊列表和塊所在DataNode等。
DataNode 在本地文件系統存儲文件塊數據,以及塊數據的校驗和。
Secondary NameNode 用來監控HDFS狀態的輔助後臺程序,每隔一段時間獲取HDFS元數據的快照
2.5 : yarn 的架構
YARN 服務功能:
ResourceManager
處理客戶端請求 啓動/監控ApplicationMaster 監控NodeManager 資源分配與調度
NodeManager
單個節點上的資源管理 處理來自ResourceManager的命令 處理來自ApplicationMaster的命令
ApplicationMaster
數據切分 爲應用程序申請資源,並分配給內部任務 任務監控與容錯
Container
對任務運行環境的抽象,封裝了CPU內存等多維資源以及環境變量、啓動命令等任務運 行相關的信息.
2.6: MapReduce on YARN
MapReduce on YARN
1)用戶向YARN中提交應用程序/做業,其中包括ApplicaitonMaster程序、啓動ApplicationMaster的命令、用戶程序等;
2)ResourceManager爲做業分配第一個Container,並與對應的NodeManager通訊,要求它在這個Containter中啓動該做業的ApplicationMaster;
3)ApplicationMaster首先向ResourceManager註冊,這樣用戶能夠直接經過ResourceManager查詢做業的運行狀態;而後它將爲各個任務申請資源並監控任務的運行狀態,直到運行結束。即重複步驟4-7;
4)ApplicationMaster採用輪詢的方式經過RPC請求向ResourceManager申請和領取資源;
5)一旦ApplicationMaster申請到資源後,便與對應的NodeManager通訊,要求它啓動任務;
6)NodeManager啓動任務;
7)各個任務經過RPC協議向ApplicationMaster彙報本身的狀態和進度,以讓ApplicaitonMaster隨時掌握各個任務的運行狀態,從而能夠在任務失敗時從新啓動任務; 在做業運行過程當中,用戶可隨時經過RPC向ApplicationMaster查詢做業當前運行狀態;
8)做業完成後,ApplicationMaster向ResourceManager註銷並關閉本身;
離線計算框架 MapReduce
一:將計算過程分爲兩個階段,map和reduce map 階段並行處理輸入數據 reduce 階段對map 結果進行彙總。
二:shuffle 鏈接map 和Reduce 兩個階段 map task 將數據寫到本地磁盤 reduce task 從每一個map TASK 上讀取一份數據
三: 僅適合 離線批處理 具備很好的容錯性和擴展性 適合簡單的批處理任務
四: 缺點明顯 啓動開銷大,過多使用磁盤致使效率底下等。