大數據都學什麼?(初學者)

一、學習大數據需要的基礎

    java SE,EE(SSM)
        90%的大數據框架都是java寫的
    MySQL
        SQL on Hadoop
    Linux
        大數據的框架安裝在Linux操作系統上

二、需要學什麼

    第一方面:大數據離線分析

        一般處理T+1數據
            Hadoop 2.X:(common、HDFS、MapReduce、YARN)
                環境搭建,處理數據的思想
            Hive:
                大數據數據倉庫
                通過寫SQL對數據進行操作,類似於mysql數據庫中的sql
            HBase
                基於HDFS的NOSQL數據庫
                面向列的存儲
                
            協作框架:
                sqoop(橋樑:HDFS 《==》RDBMS)
                flume:收集日誌文件中信息
                
                調度框架anzkaban,瞭解:crotab(Linux自帶)、zeus(Alibaba)、Oozie(cloudera)
            
            擴展前沿框架:
                kylin、impala、ElasticSearch(ES)

               

    注意:關於第一方面的內容我的另一篇博客有詳細的總結(是我搜索大量網上資料所得,可以幫你省下不少時間)


    第二方面:大數據實時分析

            以spark框架爲主
            Scala:OOP + FP
            sparkCore:類比MapReduce
            sparkSQL:類比hive
            sparkStreaming:實時數據處理
            kafka:消息隊列
        前沿框架擴展:flink  
            阿里巴巴 blink
   

    第三方面:大數據機器學習(擴展)

            spark MLlib:機器學習庫
            pyspark編程:Python和spark的結合
            推薦系統
            python數據分析

            Python機器學習


大數據框架安裝功能來劃分

    海量數據存儲:

        HDFS、Hive(本質存儲數據還是hdfs)、HBASE、ES

    海量數據分析:

        MapReduce、Spark、SQL

最原始的Hadoop框架

    數據存儲:HDFS(Hadoop Distributed File System)
    數據分析:MapReduce

Hadoop的起源

    Google的三篇論文

    雖然Google沒有公佈這三個產品的源碼,
    但是他發佈了這三個產品的詳細設計論文,
    奠定了風靡全球的大數據算法的基礎!

        Google FS        HDFS
        MapReduce        MapReduce
        BigTable        HBase

    將任務分解然後在多臺處理能力較弱的計算節點中同時處理,然後將結果合併從而完成大數據處理。
    
    google:android,搜索,大數據框架,人工智能框架
    pagerank
    

Hadoop介紹

    大數據絕大多數框架,都屬於Apache頂級項目
    http://apache.org/
    hadoop官網:
    http://hadoop.apache.org/
    
分佈式
    相對於【集中式】
    需要多臺機器,進行協助完成。
    
    元數據:記錄數據的數據
    架構:
        主節點Master    老大,管理者
            管理
        從節點Slave    從屬,奴隸,被管理者
            幹活

Hadoop也是分佈式架構

    common

    HDFS:

        主節點:NameNode
            決定着數據存儲到那個DataNode上
        從節點:DataNode
            存儲數據
            

    MapReduce:

        分而治之思想
        將海量的數據劃分爲多個部分,每部分數據進行單獨的處理,最後將所有結果進行合併
        map task
            單獨處理每一部分的數據、
            
        reduce task
            合併map task的輸出
        

    YARN:

        分佈式集羣資源管理框架,管理者集羣的資源(Memory,cpu core)
        合理調度分配給各個程序(MapReduce)使用
        主節點:resourceManager
            掌管集羣中的資源
        從節點:nodeManager
            管理每臺集羣資源
        

    總結:Hadoop的安裝部署

        都屬於java進程,就是啓動了JVM進程,運行服務。
        HDFS:存儲數據,提供分析的數據
            NameNode/DataNode
        YARN:提供程序運行的資源

            ResourceManager/NodeManager



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章