1. 程式人生 > >以慕課網日誌分析為例 進入大資料 Spark SQL 的世界 ---課程筆記--未完待續

以慕課網日誌分析為例 進入大資料 Spark SQL 的世界 ---課程筆記--未完待續

第一章 初探大資料
    1、什麼是大資料?
        大資料特徵:4V
            資料量(Volume)   PB、EB、ZB
            給予高度分析的新價值(Value)    鉅額資料裡面提取需要的高價值資料
            速度(Velocity)    實時流處理,電商推薦系統,在你瀏覽或買過商品,按照先關資訊給你推薦
            多樣性,複雜性(Variety)  關係型資料庫、非關係型資料庫、json檔案,XML檔案
    2、什麼是hadoop?
        一個分散式系統基礎架構,充分利用叢集的高速運算和儲存。
        Hadoop Distributed File System(HDFS)  分散式儲存
        YARN    資源排程平臺
        MapReduce    分散式計算
    3、企業選擇Hadoop作為大資料平臺的原因?
        1)原始碼開放
        2)社群活躍、參與者眾多
        3)設計到分散式儲存和計算:
            Flume進行資料採集
            Spark/MR/Hive資料處理
            HDFS/HBase資料儲存
        4)已經得到企業的驗證
    4、HDFS設計目標
        非常巨大的分散式檔案系統
        執行在普通的廉價的硬體上
        易擴充套件、為使用者提供效能不錯的檔案儲存服務
    5、HDFS架構
        1、Master(NameNode/NN)    對應 N個Slaves(DataNode/NN)
        2、一個檔案會被拆分成多個塊(Block)
            預設:128M
            例:    130M ==> 128M + 2M
        3、NameNode、DataNode負責內容:
            NN:
                1)負責客戶端請求的響應
                2)負責元資料(檔名稱、副本系數、Block存放的DN)的管理
            DN:
                1)儲存用的檔案對應的資料塊(Block)
                2)定期向NN傳送心跳資訊(預設3秒),彙報本身及其所有的Block資訊,健康狀況
        4、 重要提示:
            1)A typical deployment has a dedicated machine that runs only the NameNode software. 
            Each of the other machines in the cluster runs one instance of the DataNode software. 
            The architecture does not preclude running multiple DataNodes on the same machine 
            but in a real deployment that is rarely the case.
            一個典型的部署有一個專用的機器,它只執行NAMENODE軟體。
            群集中的每個其他機器執行DATEAON軟體的一個例項。
            架構不排除在同一臺機器上執行多個數據流。
            但在實際部署中,情況很少。 //不建議這種操作
            NameNode + N個DataNode
            建議:NameNode、DataNode分佈在單獨的節點中
            2)replication factor 副本系數、副本因子
            3)All blocks in a file except the last block are the same size
                除了最後一個塊之外,檔案中的所有塊都是相同大小的
        5、HDFS優缺點
            優點:
                高容錯
                適合批處理
                適合大資料處理
                可構建在廉價機器上
            缺點:
                低延遲訪資料訪問
                不適合小檔案儲存
    6、MapReduce
        1、特點
            1)易於程式設計
            2)良好的擴充套件性
            3)高容錯性
            4)海量資料的離線處理
        2、不擅長場景
            1)實時計算
            2)流式計算
            3)DAG(有向無環圖)計算