標籤:
本項目主要講解了一套應用於互連網電商企業中,使用Java、Spark等技術開發的大資料統計分析平台,對電商網站的各種使用者行為(訪問行為、頁面跳轉行為、購物行為、廣告點選行為等)進行複雜的分析。用統計分析出來的資料,輔助公司中的PM(產品經理)、資料分析師以及管理員分析現有產品的情況,並根據使用者行為分析結果持續改進產品的設計,以及調整公司的戰略和業務。最終達到用大資料技術來協助提升公司的業績、營業額以及市場佔有率的目標。
1.課程研發環境開發工具: EclipseLinux:CentOS 6.4Spark: 1.5.1Hadoop: hadoop-2.5.0-cdh5.3.6Hive: hive-0.13.1-cdh5.3.6ZooKeeper: zookeeper-3.4.5-cdh5.3.6Kafka: 2.9.2-0.8.1 其他工具:flume-ng-1.5.0-cdh5.3.6、SecureCRT、WinSCP、VirtualBox等
2.內容簡介項目主要採用目前大資料領域最流行、最熱門的技術——Spark,具有普通項目無法比擬的技術前瞻性與尖端性。本項目使用了Spark技術生態棧中最常用的三個技術架構,Spark Core、Spark SQL和Spark Streaming,進行離線計算和即時計算業務模組的開發。實現了包括使用者訪問session分析、頁面單跳轉化率統計、熱門商品離線統計、廣告點選流量即時統計4個業務模組。項目中所有的業務功能模組都是直接從實際企業專案中抽取出來的,業務複雜度絕對沒有任何縮水,只是為了更好的貼近大資料實戰課程的需要,進行了一定程度上的技術整合和業務整合。該項目的真實性、業務複雜性以及實戰型,絕對不是市面上現有的僅幾個課時的Demo級的大資料項目可以比擬的。通過合理的將實際業務模組進行技術整合與改造,該項目完全涵蓋了Spark Core、Spark SQL和Spark Streaming這三個技術架構中幾乎所有的功能點、知識點以及效能最佳化點。僅一個項目,即可全面掌握Spark技術在實際項目中如何?各種類型的業務需求!在項目中,重點講解了實際企業專案中積累下來的寶貴的效能調優、troubleshooting以及資料扭曲解決方案等知識和技術,幾乎所有知識和技術都是全網唯一,是任何其他視頻課程以及書本中都沒有包含的珍貴經驗積累!同時以企業級大資料項目開發流程貫穿每個業務模組的講解,涵蓋了項目開發全流程,包括需求分析、方案設計、資料設計、編碼實現、測試以及效能調優等環節,全面還原真實大資料項目的開發流程。該項目的整體商業價值絕對在百萬元以上!學習完本課程之後,可以大幅度提升學員的Spark技術能力、實戰開發能力、項目經驗、效能調優和troubleshooting經驗。如果學員已經學習過《Spark從入門到精通(Scala編程、案例實戰、進階特性、Spark核心源碼剖析、Hadoop高端)》課程,再學習完本課程,則完全可以達到2~3年左右Spark大資料開發經驗的水平,正式邁入Spark進階開發工程師的行列!在跳槽或者面試的時候,精湛的Spark技術以及複雜的Spark大資料項目的經驗,足以讓你應付國內任何公司的面試(包括BAT等頂級互連網公司的面試難度),從而讓學員通過學習掌握自己的人生!在此特彆強調,本課程的學習要求有Java基礎、Hadoop基礎,如果學員沒有相關基礎,請先自學相關知識。本課程要求學員有紮實的Spark技術基礎,如果沒有,則推薦學習北風網的《Spark從入門到精通(Scala編程、案例實戰、進階特性、Spark核心源碼剖析、Hadoop高端)》課程(http://www。ibeifeng。com/goods-560.html)。備忘一:關於《Spark從入門到精通(Scala編程、案例實戰、進階特性、Spark核心源碼剖析、Hadoop高端)》與本套課程的關係,如果學習了第一套Spark技術課程,那麼在融會貫通的情況下,可以達到1~2年Spark開發經驗的水平;如果在學習完第一套Spark課程,同時學習完第二套Spark項目課程,並且融會貫通的情況下,那麼可以達到2~3年的Spark開發經驗的水平,成為Spark進階/資深開發工程師。備忘二:考慮到學員不統一的技術基礎,因此本項目僅僅要求J2SE基礎,也就是Java基礎編程即可,不要求J2EE,而且也不使用任何Java架構,不涉及與第三方技術整合。主要就是為了降低課程的學習門檻。本課程不會講解J2EE層的開發,只是講解Spark如何與J2EE結合使用,組成互動式大資料平台的架構。因此唯一的要求僅僅是Java編程基礎以及Spark紮實的技術即可學習課程。備忘三:關於課程開發語言的選擇,本套課程選擇使用Java,而不是Scala,作為程式設計語言;原因主要是因為在開發大型、複雜的大資料業務系統或平台時,Java的優勢是Scala所不可比擬的;在真正大型複雜的項目中,可能Spark需要管理大量的組件,此時可能需要用Spring架構;可能需要執行複雜的資料庫操作,此時需要ORM類架構,比如MyBatis;可能需要與Redis、Kafka、ZooKeeper整合使用,此時需要使用Java Client API;以上需求都是Scala滿足不了的。使用Scala很可能會導致項目的多語言混編,造成可維護性和可擴充性大幅度降低。(注意,本套項目課程為了降低學習難度,並且聚焦在Spark上,沒有使用以上任何技術,只是用純粹的Java基礎編程與Spark技術;但是這並不意味著你在真正的工作中不會碰到上述的情況)
本課程的最大特色包括:
1、全網唯一的高端大資料項目:市面上目前完全沒有任何高端的大資料項目實戰類課程,更沒有Spark大資料項目實戰類課程,本課程是全網唯一的企業級大型Spark大資料實戰項目課程!
2、企業級大資料項目的架構搭建:組態管理組件、JDBC輔助組件(內建資料庫連接池)、Domain與DAO模型等等,完全正規的大型大資料項目架構!
3、互動式巨量資料分析平台架構:本項目的原型不是普通的定時調度離線統計任務的大資料項目;而是Spark與J2EE系統結合構成的互動式巨量資料分析平台,項目中的Spark開發都是按該架構來講解的!
4、真實還原完整的企業級大資料項目開發流程:項目中採用完全還原企業大資料項目開發情境的方式來講解,每一個業務模組的講解都包括了資料分析、需求分析、方案設計、資料庫設計、編碼實現、功能測試、效能調優、troubleshooting與解決資料扭曲(後期營運)等環節,真實還原企業級大資料項目開發情境。讓學員掌握真實大資料項目的開發流程和經驗!
5、技術點覆蓋廣:一套項目課程,全面涵蓋了至少90%以上的Spark Core、Spark SQL和Spark Streaming的幾乎所有的初、中、進階技術點;通過本項目課程的學習,可以全面鍛煉了學員的Spark大資料項目實戰能力,將技術與項目融會貫通,徹底精通Spark實戰開發!
6、真實的效能調優方案與troubleshooting經驗:項目中通過實際的功能模組和業務情境,以及講師曾經開發過的處理十億、甚至百億以上資料層級的Spark作業的經驗積累,貫穿講解了大量的進階複雜的效能調優技術和知識、troubleshooting解決線上報錯和故障的經驗。真正協助學員掌握企業實際項目中使用的高精尖Spark技術!
7、高端的資料扭曲解決方案:本課程講解了高端而且寶貴的,大量實際項目中積累的——資料扭曲全套解決方案!包括資料扭曲問題的判斷、診斷與定位,以及一整套7種針對各種不同類型資料扭曲的解決方案,徹底協助學員解決企業專案中最棘手的資料扭曲問題,稱為企業中最核心的技術人才!全網唯一的珍貴技術!
8、業務功能極其複雜:項目中的四個功能模組,全部是實際企業專案中提取出來的,並進行技術整合和改良過的功能模組,包含了比實際項目中更多、更全面的技術點。所有模組的需求,全部是企業級的複雜和真實的需求,業務模組非常之複雜,絕對不是市面上的Demo層級的大資料項目能夠想比擬的。學習過後,真正協助學員增加實際企業階層專案的實戰經驗!
9、大量的全網唯一的高端技術:自訂Accumulator、按時間比例隨機抽取演算法、二次排序、分組取topN、頁面切片產生以及頁面流匹配演算法、Hive與MySQL異構資料來源、RDD轉換為DataFrame、註冊和使用暫存資料表、自訂UDAF彙總函式(group_concat_distinct)、自訂get_json_object等普通函數、Spark SQL的進階內建函數(if與case when等)、開窗函數(ROW_NUMBER)、動態黑名單機制、transform、updateStateByKey、transform與Spark SQL整合、window滑動視窗、高效能寫資料庫,等等。
10、行業經驗穿插介紹:貫穿了大量講師在大資料行業內的從業經驗以及所見所聞,協助學員豐富行業閱曆。
11、高端原始碼:贈送完整spark大型大資料項目的商業層級的原始碼,價值上百萬;稍加改造,二次開發,甚至可以直接用於你的企業的大資料行為分析。
12、現場Excel手工畫圖與寫筆記:所有複雜商務程序、架構原理、Spark技術原理、業務需求分析、技術實現方案等知識的講解,採用Excel畫圖或者寫詳細比較的方式進行講解與分析,細緻入微、形象地透徹剖析理論知識,協助學員更好的理解、記憶與複習鞏固。
一、大資料集群搭建
第1講-課程介紹 第2講-課程環境搭建:CentOS 6.4叢集搭建 第3講-課程環境搭建:hadoop-2.5.0-cdh5.3.6叢集搭建 第4講-課程環境搭建:hive-0.13.1-cdh5.3.6安裝 第5講-課程環境搭建:zookeeper-3.4.5-cdh5.3.6叢集搭建 第6講-課程環境搭建:kafka_2.9.2-0.8.1叢集搭建 第7講-課程環境搭建:flume-ng-1.5.0-cdh5.3.6安裝 第8講-課程環境搭建:離線日誌採集流程介紹 第9講-課程環境搭建:即時資料採集流程介紹 第10講-課程環境搭建:Spark 1.5.1用戶端安裝以及基於YARN的提交模式
二、使用者訪問session分析: 第11講-使用者訪問session分析:模組介紹 第12講-使用者訪問session分析:基礎資料結構以及大資料平台架構介紹 第13講-使用者訪問session分析:需求分析 第14講-使用者訪問session分析:技術方案設計 第15講-使用者訪問session分析:資料表設計 第16講-使用者訪問session分析:Eclipse工程搭建以及工具類說明 第17講-使用者訪問session分析:開發組態管理組件 第18講-使用者訪問session分析:JDBC原理介紹以及增刪改查示範 第19講-使用者訪問session分析:資料庫連接池原理 第20講-使用者訪問session分析:單例設計模式 第21講-使用者訪問session分析:內部類以及匿名內部類 第22講-使用者訪問session分析:開發JDBC輔助組件(上) 第23講-使用者訪問session分析:開發JDBC輔助組件(下) 第24講-使用者訪問session分析:JavaBean概念講解 第25講-使用者訪問session分析:DAO模式講解以及TaskDAO開發 第26講-使用者訪問session分析:原廠模式講解以及DAOFactory開發 第27講-使用者訪問session分析:JSON資料格式講解以及fastjson介紹 第28講-使用者訪問session分析:Spark上下文構建以及類比資料產生 第29講-使用者訪問session分析:按session粒度進行資料彙總 第30講-使用者訪問session分析:按篩選參數對session粒度彙總資料進行過濾 第31講-使用者訪問session分析:session彙總統計之自訂Accumulator 第32講-使用者訪問session分析:session彙總統計之重構實現思路與重構session彙總 第33講-使用者訪問session分析:session彙總統計之重構過濾進行統計 第34講-使用者訪問session分析:session彙總統計之計算統計結果並寫入MySQL 第35講-使用者訪問session分析:session彙總統計之本地測試 第36講-使用者訪問session分析:session彙總統計之使用Scala實現自訂Accumulator 第37講-使用者訪問session分析:session隨機抽取之實現思路分析 第38講-使用者訪問session分析:session隨機抽取之計算每天每小時session數量 第39講-使用者訪問session分析:session隨機抽取之按時間比例隨機抽取演算法實現 第40講-使用者訪問session分析:session隨機抽取之根據隨機索引進行抽取 第41講-使用者訪問session分析:session隨機抽取之擷取抽取session的詳細資料 第42講-使用者訪問session分析:session隨機抽取之本地測試 第43講-使用者訪問session分析:top10熱門品類之需求回顧以及實現思路分析 第44講-使用者訪問session分析:top10熱門品類之擷取session訪問過的所有品類 第45講-使用者訪問session分析:top10熱門品類之計算各品類點擊、下單和支付的次數 第46講-使用者訪問session分析:top10熱門品類之join品類與點擊下單支付次數 第47講-使用者訪問session分析:top10熱門品類之自訂二次排序key 第48講-使用者訪問session分析:top10熱門品類之進行二次排序 第49講-使用者訪問session分析:top10熱門品類之擷取top10品類並寫入MySQL 第50講-使用者訪問session分析:top10熱門品類之本地測試 第51講-使用者訪問session分析:top10熱門品類之使用Scala實現二次排序 第52講-使用者訪問session分析:top10活躍session之開發準備以及top10品類RDD產生 第53講-使用者訪問session分析:top10活躍session之計算top10品類被各sessoin點擊的次數 第54講-使用者訪問session分析:top10活躍session之分組取TopN演算法擷取top10活躍session 第55講-使用者訪問session分析:top10活躍session之本地測試以及階段總結
三、企業級效能調優、troubleshooting經驗與資料扭曲解決方案: 第56講-使用者訪問session分析:效能調優之在實際項目中分配更多資源 第57講-使用者訪問session分析:效能調優之在實際項目中調節並行度 第58講-使用者訪問session分析:效能調優之在實際項目中重構RDD架構以及RDD持久化 第59講-使用者訪問session分析:效能調優之在實際項目中廣播大變數 第60講-使用者訪問session分析:效能調優之在實際項目中使用Kryo序列化 第61講-使用者訪問session分析:效能調優之在實際項目中使用fastutil最佳化資料格式 第62講-使用者訪問session分析:效能調優之在實際項目中調節資料本地化等待時間長度 第63講-使用者訪問session分析:JVM調優之原理概述以及降低cache操作的記憶體佔比 第64講-使用者訪問session分析:JVM調優之調節executor堆外記憶體與串連等待時間長度 第65講-使用者訪問session分析:Shuffle調優之原理概述 第66講-使用者訪問session分析:Shuffle調優之合并map端輸出檔案 第67講-使用者訪問session分析:Shuffle調優之調節map端記憶體緩衝與reduce端記憶體佔比 第68講-使用者訪問session分析:Shuffle調優之HashShuffleManager與SortShuffleManager 第69講-使用者訪問session分析:運算元調優之MapPartitions提升Map類操作效能 第70講-使用者訪問session分析:運算元調優之filter過後使用coalesce減少分區數量 第71講-使用者訪問session分析:運算元調優之使用foreachPartition最佳化寫資料庫效能 第72講-使用者訪問session分析:運算元調優之使用repartition解決Spark SQL低並行度的效能問題 第73講-使用者訪問session分析:運算元調優之reduceByKey本地彙總介紹 第74講-使用者訪問session分析:troubleshooting之控制shuffle reduce端緩衝大小以避免OOM 第75講-使用者訪問session分析:troubleshooting之解決JVM GC導致的shuffle檔案拉取失敗 第76講-使用者訪問session分析:troubleshooting之解決YARN隊列資源不足導致的application直接失敗 第77講-使用者訪問session分析:troubleshooting之解決各種序列化導致的報錯 第78講-使用者訪問session分析:troubleshooting之解決運算元函數返回NULL導致的問題 第79講-使用者訪問session分析:troubleshooting之解決yarn-client模式導致的網卡流量激增問題 第80講-使用者訪問session分析:troubleshooting之解決yarn-cluster模式的JVM棧記憶體溢出問題 第81講-使用者訪問session分析:troubleshooting之錯誤的持久化方式以及checkpoint的使用 第82講-使用者訪問session分析:資料扭曲解決方案之原理以及現象分析 第83講-使用者訪問session分析:資料扭曲解決方案之彙總來源資料以及過濾導致傾斜的key 第84講-使用者訪問session分析:資料扭曲解決方案之提高shuffle操作reduce並行度 第85講-使用者訪問session分析:資料扭曲解決方案之使用隨機key實現雙重彙總 第86講-使用者訪問session分析:資料扭曲解決方案之將reduce join轉換為map join 第87講-使用者訪問session分析:資料扭曲解決方案之sample採樣傾斜key單獨進行join 第88講-使用者訪問session分析:資料扭曲解決方案之使用隨機數以及擴容表進行join
四、頁面單跳轉化率統計: 第89講-頁面單跳轉化率:模組介紹 第90講-頁面單跳轉化率:需求分析、技術方案設計、資料表設計 第91講-頁面單跳轉化率:編寫基礎代碼 第92講-頁面單跳轉化率:頁面切片產生以及頁面流匹配演算法實現 第93講-頁面單跳轉化率:計算頁面流起始頁面的pv 第94講-頁面單跳轉化率:計算頁面切片的轉化率 第95講-頁面單跳轉化率:將頁面切片轉化率寫入MySQL 第96講-頁面單跳轉化率:本地測試 第97講-頁面單跳轉化率:生產環境測試 第98講-使用者訪問session分析:生產環境測試
五、各地區熱門商品統計: 第99講-各地區熱門商品統計:模組介紹 第100講-各地區熱門商品統計:需求分析、技術方案設計以及資料設計 第101講-各地區熱門商品統計:查詢使用者指定日期範圍內的點擊行為資料 第102講-各地區熱門商品統計:異構資料來源之從MySQL中查詢城市資料 第103講-各地區熱門商品統計:關聯城市資訊以及RDD轉換為DataFrame後註冊暫存資料表 第104講-各地區熱門商品統計:開發自訂UDAF彙總函式之group_concat_distinct() 第105講-各地區熱門商品統計:查詢各地區各商品的點擊次數並拼接城市列表 第106講-各地區熱門商品統計:關聯商品資訊並使用自訂get_json_object函數和內建if函數標記經營類型 第106講-各地區熱門商品統計:使用開窗函數統計各地區的top3熱門商品 第107講-各地區熱門商品統計:使用內建case when函數給各個地區打上層級標記 第108講-各地區熱門商品統計:將結果資料寫入MySQL中 第109講-各地區熱門商品統計:Spark SQL資料扭曲解決方案 第110講-各地區熱門商品統計:生產環境測試
六、廣告點選流量即時統計: 第111講-廣告點選流量即時統計:需求分析、技術方案設計以及資料設計 第112講-廣告點選流量即時統計:為動態黑名單即時計算每天各使用者對各廣告的點擊次數 第113講-廣告點選流量即時統計:使用高效能方式將即時計算結果寫入MySQL中 第114講-廣告點選流量即時統計:過濾出每個batch中的黑名單使用者以產生動態黑名單 第115講-廣告點選流量即時統計:基於動態黑名單進行點擊行為過濾 第116講-廣告點選流量即時統計:計算每天各省各城市各廣告的點擊量 第117講-廣告點選流量即時統計:計算每天各省的top3熱門廣告 第118講-廣告點選流量即時統計:計算每天各廣告最近1小時滑動視窗內的點擊趨勢 第119講-廣告點選流量即時統計:實現即時計算程式的HA高可用性 第120講-廣告點選流量即時統計:對即時計算程式進行效能調優 第121講-廣告點選流量即時統計:生產環境測試 第122講-課程總結:都學到了什嗎?目標一. 掌握大資料集群環境的搭建目標二. 掌握企業級大資料項目架構的搭建目標三. 掌握J2EE+Spark的互動式大資料分 析系統架構目標四. 掌握企業級大資料項目的開發流程目標五. 將Spark Core、Spark SQL、Spark Streaming的90%以上的技術點和知 識點應用在項目中,技術與項目融 會貫通目標六. 使用進階的Spark技術開發各種複 雜的大資料統計與分析類的業務需 求和功能目標七. 掌握企業級的高端效能調優方案、 troubleshooting解決線上故障能 力以及資料扭曲解決方案 亮點一、全網唯一的高端Spark大資料項目。亮點二、按照企業級的標準搭建大資料項目的架構。亮點三、按照高端的J2EE與Spark結合的互動式分析大資料平台的架構,講解Spark開發。 亮點四、採用真實的企業級大資料項目開發流程,包括近10個步驟。亮點五、技術點覆蓋廣泛,一套課程覆蓋Spark Core、Spark SQL與Spark Streaming高達90%以上的技術點。亮點六、真實的企業級效能調優方案、troubleshooting解決線上故障經驗、高端的資料扭曲解決方案。亮點七、業務功能極其複雜,全部採用真實的企業級業務需求。亮點八、包含大量全網唯一的Spark技術點。亮點九、貫穿了大量講師行業從業的經驗與經曆,以及感想。亮點十、贈送全套完整商業層級的原始碼,稍加改造即可應用,商業價值在百萬以上。
1.課程針對人群本課程針對有Java編程基礎(不要求J2EE)、有紮實Spark技術基礎的學員。 2.我該怎麼學,如何才能學好這門課程,給些建議。
4.1、時間上的安排建議本課程共120多講,如果您時間上充分,建議以每天2-3講的進度往前學習。如果時間特別充裕,建議將重點理論知識的相關視頻看2~3遍。
4.2、學習要求學習的時候, 可以要自己邊看邊做筆記,建議看視頻的同時,電腦上開啟一個記事本即可。所有理論知識的剖析和講解一定要反覆思考和理解,如果不理解,建議看2~3遍;所有代碼,全部都要求跟著視頻,手動敲一遍代碼,脫開視頻,自己再敲一遍,爭取能夠自己完全將項目敲出來。
4.3、講師建議1.最好看完視頻之後,拋開視頻,獨立自己去把上課中的樣本寫一遍,看自己是否理解,如果不正確,可以回過頭看再看下視頻,如果反覆,達到真正理解和熟練掌握的目的。2.對於案例實戰部分,一定要自己親自動手做一遍,不要滿足聽完就OK了3. 建議一般聽視頻,一般拿個紙和筆,做一些記錄和筆記,這是一種非常好的學習習慣。4. 一定不要過於依賴視頻,要學會看API和使用百度,學會思考,學會舉一反三5. 最後祝您學有所成!
Spark大型項目實戰:電商使用者行為分析大資料平台