在這里將某項目學(xué)習(xí)筆記整理分享給大家
課程介紹
本套課程主要講解一個真實系谐、復(fù)雜的大型企業(yè)級大數(shù)據(jù)項目。是Spark的大型項目實戰(zhàn)課程。通過本套課程的學(xué)習(xí)籍铁,學(xué)員可以積累大量的Spark項目經(jīng)驗郁妈。在學(xué)員本身Spark技術(shù)就很好的情況下浑玛,學(xué)習(xí)完本套課程之后,可以達到有2年Spark大數(shù)據(jù)開發(fā)經(jīng)驗的水平噩咪。
本課程可以正式讓學(xué)員邁入Spark高級開發(fā)工程師的行列顾彰!在跳槽或者面試的時候极阅,精湛的Spark技術(shù)以及復(fù)雜的Spark大數(shù)據(jù)項目的經(jīng)驗,足以讓你應(yīng)付國內(nèi)任何公司的面試(包括BAT等頂級互聯(lián)網(wǎng)公司的面試難度)拘央,從而讓學(xué)員通過學(xué)習(xí)掌握自己的人生涂屁!
特別聲明的是,本套課程的學(xué)習(xí)灰伟,是需要Java拆又、Hadoop和Spark基礎(chǔ)的。如果沒有相關(guān)基礎(chǔ)的同學(xué)栏账,需要自己先自學(xué)相關(guān)的基礎(chǔ)知識帖族。在課程中,對于一些Java的高級知識點挡爵,也會加以講解竖般,但是學(xué)員還是必須有Java編程的基礎(chǔ)。
項目介紹
本項目主要用于互聯(lián)網(wǎng)電商企業(yè)中茶鹃,使用Spark技術(shù)開發(fā)的大數(shù)據(jù)統(tǒng)計分析平臺涣雕,對電商網(wǎng)站的各種用戶行為(訪問行為、購物行為闭翩、廣告點擊行為等)進行復(fù)雜的分析挣郭。用統(tǒng)計分析出來的數(shù)據(jù),輔助公司中的PM(產(chǎn)品經(jīng)理)疗韵、數(shù)據(jù)分析師以及管理人員分析現(xiàn)有產(chǎn)品的情況兑障,并根據(jù)用戶行為分析結(jié)果持續(xù)改進產(chǎn)品的設(shè)計,以及調(diào)整公司的戰(zhàn)略和業(yè)務(wù)蕉汪。最終達到用大數(shù)據(jù)技術(shù)來幫助提升公司的業(yè)績流译、營業(yè)額以及市場占有率的目標。
項目主要采用目前大數(shù)據(jù)領(lǐng)域最流行者疤、最熱門的技術(shù)——Spark福澡,具有普通項目無法比擬的技術(shù)前瞻性與尖端性。本項目使用了Spark技術(shù)生態(tài)棧中最常用的三個技術(shù)框架宛渐,Spark Core竞漾、Spark SQL和Spark Streaming,進行離線計算和實時計算業(yè)務(wù)模塊的開發(fā)窥翩。實現(xiàn)了包括用戶訪問session分析业岁、頁面單跳轉(zhuǎn)化率統(tǒng)計、熱門商品離線統(tǒng)計寇蚊、廣告流量實時統(tǒng)計4個業(yè)務(wù)模塊笔时。
項目中所有的業(yè)務(wù)功能模塊都是直接從實際企業(yè)項目中抽取出來的,業(yè)務(wù)復(fù)雜度絕對沒有任何縮水仗岸,只是為了更好的貼近大數(shù)據(jù)實戰(zhàn)課程的需要允耿,進行了一定程度上的技術(shù)整合和業(yè)務(wù)整合借笙。該項目的真實性、業(yè)務(wù)復(fù)雜性以及實戰(zhàn)型较锡,絕對不是市面上現(xiàn)有的僅幾個課時的Demo級的大數(shù)據(jù)項目可以比擬的业稼。
通過合理的將實際業(yè)務(wù)模塊進行技術(shù)整合與改造,該項目完全涵蓋了Spark Core蚂蕴、Spark SQL和Spark Streaming這三個技術(shù)框架中低散,幾乎所有的功能點、知識點以及性能優(yōu)化點骡楼,僅一個項目熔号,即可全面掌握Spark技術(shù)在實際項目中如何實現(xiàn)各種類型的業(yè)務(wù)需求!在項目中鸟整,重點講解了實際企業(yè)項目中積累下來的寶貴的性能調(diào)優(yōu)引镊、troubleshooting以及數(shù)據(jù)傾斜等知識和技術(shù),幾乎所有知識和技術(shù)都是全網(wǎng)唯一篮条,是任何其他視頻課程以及書本中都沒有包含的珍貴經(jīng)驗積累弟头!同時以企業(yè)級大數(shù)據(jù)項目開發(fā)流程貫穿每個業(yè)務(wù)模塊的講解,涵蓋了項目開發(fā)全流程涉茧,包括需求分析亮瓷、方案設(shè)計、數(shù)據(jù)設(shè)計降瞳、編碼實現(xiàn)、測試以及性能調(diào)優(yōu)等環(huán)節(jié)蚓胸,全面還原真實大數(shù)據(jù)項目的開發(fā)流程挣饥。該項目的整體商業(yè)價值絕對在百萬元以上!
課程特色
1沛膳、市面上目前完全沒有任何高端的大數(shù)據(jù)項目實戰(zhàn)類課程扔枫,更沒有Spark大數(shù)據(jù)項目實戰(zhàn)類課程,本課程是全網(wǎng)唯一的企業(yè)級大型Spark大數(shù)據(jù)實戰(zhàn)項目課程锹安!
2短荐、項目中全面覆蓋了Spark Core、Spark SQL和Spark Streaming這三個技術(shù)框架幾乎全部的初級和高級的技術(shù)點和知識點叹哭。真正讓學(xué)員學(xué)以致用忍宋,通過一套課程,即掌握如何將Spark所有的技術(shù)點和知識點應(yīng)用在真實的項目中风罩,來實現(xiàn)業(yè)務(wù)需求糠排!
3、項目中的4個功能模塊超升,全部是實際企業(yè)項目中提取出來的入宦,并進行技術(shù)整合和改良過的功能模塊哺徊。全部是企業(yè)級的復(fù)雜和真實的需求,業(yè)務(wù)模塊非常之復(fù)雜乾闰,絕對不是市面上的Demo級別的大數(shù)據(jù)項目能夠想比擬的落追。學(xué)習(xí)過后,真正幫助學(xué)員增加實際企業(yè)級項目的實戰(zhàn)經(jīng)驗涯肩!
4轿钠、項目中通過實際的功能模塊和業(yè)務(wù)場景,以及講師曾經(jīng)開發(fā)過的處理十億宽菜、甚至百億以上數(shù)據(jù)級別的Spark作業(yè)的經(jīng)驗積累谣膳,貫穿講解了大量的高級復(fù)雜的性能調(diào)優(yōu)技術(shù)和知識、troubleshooting解決線上報錯和故障的經(jīng)驗铅乡、高端的全方位數(shù)據(jù)傾斜處理和解決方案继谚。真正幫助學(xué)員掌握高精尖的Spark技術(shù)!
5阵幸、項目中采用完全還原企業(yè)大數(shù)據(jù)項目開發(fā)場景的方式來講解花履,每一個業(yè)務(wù)模塊的講解都包括了需求分析、方案設(shè)計挚赊、數(shù)據(jù)設(shè)計诡壁、編碼實現(xiàn)、功能測試荠割、性能調(diào)優(yōu)等環(huán)節(jié)妹卿,真實還原企業(yè)級大數(shù)據(jù)項目開發(fā)場景。讓學(xué)員掌握真實大數(shù)據(jù)項目的開發(fā)流程和經(jīng)驗蔑鹦!
模塊簡介
1夺克,用戶session分析:
該模塊主要是對用戶訪問session進行統(tǒng)計分析,包括session的聚合指標計算嚎朽、按時間比例隨機抽取session铺纽、獲取每天點擊、下單和購買排名前10的品類哟忍、并獲取top10品類的點擊量排名前10的session狡门。該模塊可以讓產(chǎn)品經(jīng)理、數(shù)據(jù)分析師以及企業(yè)管理層形象地看到各種條件下的具體用戶行為以及統(tǒng)計指標锅很,從而對公司的產(chǎn)品設(shè)計以及業(yè)務(wù)發(fā)展戰(zhàn)略做出調(diào)整其馏。主要使用Spark Core實現(xiàn)。
2爆安,頁面單跳轉(zhuǎn)化率統(tǒng)計:
該模塊主要是計算關(guān)鍵頁面之間的單步跳轉(zhuǎn)轉(zhuǎn)化率尝偎,涉及到頁面切片算法以及頁面流匹配算法。該模塊可以讓產(chǎn)品經(jīng)理、數(shù)據(jù)分析師以及企業(yè)管理層看到各個關(guān)鍵頁面之間的轉(zhuǎn)化率致扯,從而對網(wǎng)頁布局肤寝,進行更好的優(yōu)化設(shè)計。主要使用Spark Core實現(xiàn)抖僵。
3鲤看,熱門商品離線統(tǒng)計:
該模塊主要實現(xiàn)每天統(tǒng)計出各個區(qū)域的top3熱門商品。然后使用Oozie進行離線統(tǒng)計任務(wù)的定時調(diào)度耍群;使用Zeppeline進行數(shù)據(jù)可視化的報表展示义桂。該模塊可以讓企業(yè)管理層看到公司售賣的商品的整體情況,從而對公司的商品相關(guān)的戰(zhàn)略進行調(diào)整蹈垢。主要使用Spark SQL實現(xiàn)慷吊。
4,廣告流量實時通知:
該模塊負責(zé)實時統(tǒng)計公司的廣告流量曹抬,包括廣告展現(xiàn)流量和廣告點擊流量溉瓶。實現(xiàn)動態(tài)黑名單機制,以及黑名單過濾谤民;實現(xiàn)滑動窗口內(nèi)的各城市的廣告展現(xiàn)流量和廣告點擊流量的統(tǒng)計堰酿;實現(xiàn)每個區(qū)域每個廣告的點擊流量實時統(tǒng)計;實現(xiàn)每個區(qū)域top3點擊量的廣告的統(tǒng)計张足。主要使用Spark Streaming實現(xiàn)触创。
環(huán)境介紹
1,centos 6.4
2为牍,cdh 5.3.6
3哼绑,spark 1.5.1
4,zookeeper 3.4.5
5碉咆, Kafka
6凌那,flume
7,java吟逝、scala
8、eclipse
java與scala的選擇說明
本課程的編碼實現(xiàn)采用Java赦肋。
1块攒、因為Java語言具有高度的穩(wěn)定性,語法簡潔佃乘,更容易理解囱井。
2、最重要的一點是趣避,Java并不只是一門編程語言庞呕,而是一個生態(tài)體系!使用Java開發(fā)復(fù)雜的大型Spark工程項目,可以讓Spark與Redis住练、Memcaced地啰、Kafka、Solr讲逛、MongoDB亏吝、HBase、MySQL等第三方技術(shù)進行整合使用盏混,因為Java就是一個生態(tài)系統(tǒng)蔚鸥,這些第三方的技術(shù)無一例外,全部都會包含了Java的API许赃,可以無縫與Spark項目進行整合使用止喷。
3、Java是目前最主流的語言混聊,絕大多數(shù)公司里都有一批Java工程師弹谁。使用Java開發(fā)Spark工程,在項目進行交接技羔、遷移僵闯、維護、新人加入時藤滥,只要懂得Java的人鳖粟,都能快速接手和上手Spark開發(fā)和項目。更利于項目的交接與維護拙绊。
對于Scala向图,本課程僅僅會在部分重要技術(shù)點的使用,比如自定義Accumulator标沪、二次排序等榄攀,用Scala輔助講解一下如何實現(xiàn)。
1金句、因為Scala的高級語法復(fù)雜檩赢,學(xué)習(xí)曲線非常陡峭,不利于學(xué)習(xí)违寞,容易造成迷惑贞瞒。
2、因為Scala僅僅只是一門編程語言趁曼,而沒有達到技術(shù)生態(tài)的程度军浆。當Spark要與第三方技術(shù),比如Redis挡闰、HBase等配合使用時乒融,就只能混合使用Java掰盘。此時就會造成一個項目兩種語言混編,可維護性與可擴展性大幅度降低赞季。
3愧捕、Scala目前遠遠沒有達到普及的程度,會的人很少碟摆,在進行項目交接時晃财,如果是Scala的項目,交接過程會很痛苦典蜕,甚至導(dǎo)致項目出現(xiàn)問題断盛。
本人正在學(xué)習(xí)大數(shù)據(jù),將學(xué)習(xí)的相關(guān)知識整理成筆記分享給大家愉舔,行百里者钢猛,半九十,現(xiàn)在我的計劃是這樣先簡略的把這套項目過一遍轩缤,堅持每天發(fā)一篇命迈,之后再進行回顧整理,將相關(guān)代碼進行發(fā)布火的,由于時間倉促壶愤,有些章節(jié)暫時列個提綱,或者直接截圖馏鹤,整套項目有了一個大的框架之后征椒,我再進行相關(guān)知識點的補充,如果您看到有誤的知識點或希望早點看到完善的筆記湃累,可以給我留言勃救,我會盡快完善相關(guān)章節(jié)。本人正在找有關(guān)java web 和 大數(shù)據(jù)的相關(guān)工作治力,坐標北京蒙秒,如果您的公司正好缺個小弟,歡迎留言或發(fā)簡信騷擾宵统。