如何自学大数据开发?
大數(shù)據(jù)技術(shù)怎么自學(xué)?大數(shù)據(jù)開發(fā)如何自學(xué)?
我們?cè)趯W(xué)習(xí)大數(shù)據(jù)開發(fā)前需要先找到適合自己的方式方法,首先需要審視一下自身的情況,是否是以興趣為出發(fā)點(diǎn),對(duì)大數(shù)據(jù)是不是自己是真的感興趣嗎,目前對(duì)大數(shù)據(jù)的了解有多少,自己的學(xué)習(xí)能力和理解能力是否適合學(xué)習(xí)。如果是跨行業(yè)轉(zhuǎn)崗是否做好了心理準(zhǔn)備。根據(jù)不同基礎(chǔ)水平可以分為三類:
第一類:零基礎(chǔ)學(xué)員,對(duì)大數(shù)據(jù)行業(yè)和技術(shù)一無所知;
第二類:有一定的編程基礎(chǔ),對(duì)大數(shù)據(jù)行業(yè)略知一二,無發(fā)真正應(yīng)該用;
第三類:有工作經(jīng)驗(yàn)的工程師,對(duì)大數(shù)據(jù)行業(yè)了解,想轉(zhuǎn)行大數(shù)據(jù)開發(fā)。
在這里還是要推薦下我自己建的大數(shù)據(jù)學(xué)習(xí)交流群:199427210,群里都是學(xué)大數(shù)據(jù)開發(fā)的,如果你正在學(xué)習(xí)大數(shù)據(jù) ,小編歡迎你加入,大家都是軟件開發(fā)黨,不定期分享干貨(只有大數(shù)據(jù)軟件開發(fā)相關(guān)的),包括我自己整理的一份最新的大數(shù)據(jù)進(jìn)階資料和高級(jí)開發(fā)教程,歡迎進(jìn)階中和進(jìn)想深入大數(shù)據(jù)的小伙伴加入。
?
在搞清楚了自身的狀況之外,我們要針對(duì)不同階段、不同基礎(chǔ)的同學(xué)制定不同的學(xué)習(xí)方案。
對(duì)于零基礎(chǔ)想要自學(xué)大數(shù)據(jù),不是說不可能,但是很多以失敗告終,客觀原因:學(xué)習(xí)環(huán)境不好;主觀原因:基礎(chǔ)不好,看不懂,學(xué)不會(huì),枯燥無味直接放棄。
對(duì)于零基礎(chǔ)想要學(xué)習(xí)的大數(shù)據(jù)的同學(xué),最好的方案是:先關(guān)注一些大數(shù)據(jù)領(lǐng)域的動(dòng)態(tài),讓自己融入大數(shù)據(jù)這樣一個(gè)大的環(huán)境中。然后找一些編程語言的資料(大數(shù)據(jù)的基礎(chǔ)必備技能)和大數(shù)據(jù)入門的視頻和書籍,基本的技術(shù)知識(shí)還是要了解的。
在學(xué)習(xí)了一段時(shí)間之后,如果覺得自己還能應(yīng)付的來,就繼續(xù)尋找大數(shù)據(jù)基礎(chǔ)視頻和書籍,一步一個(gè)腳印的來;如果覺得覺得自己入門都很難,要么放棄,要么舍得為自己投資一把,去選擇一家靠譜的培訓(xùn)機(jī)構(gòu)。
數(shù)據(jù)科學(xué)特點(diǎn)與大數(shù)據(jù)學(xué)習(xí)誤區(qū)解析
1、大數(shù)據(jù)學(xué)習(xí)要業(yè)務(wù)驅(qū)動(dòng),不要技術(shù)驅(qū)動(dòng):數(shù)據(jù)科學(xué)的核心能力是解決問題。
大數(shù)據(jù)的核心目標(biāo)是數(shù)據(jù)驅(qū)動(dòng)的智能化,要解決具體的問題,不管是科學(xué)研究問題,還是商業(yè)決策問題,抑或是政府管理問題。
所以學(xué)習(xí)之前要明確問題,理解問題,所謂問題導(dǎo)向、目標(biāo)導(dǎo)向,這個(gè)明確之后再研究和選擇合適的技術(shù)加以應(yīng)用,這樣才有針對(duì)性,言必hadoop,spark的大數(shù)據(jù)分析是不嚴(yán)謹(jǐn)?shù)摹?/p>
不同的業(yè)務(wù)領(lǐng)域需要不同方向理論、技術(shù)和工具的支持。如文本、網(wǎng)頁要自然語言建模,隨時(shí)間變化數(shù)據(jù)流需要序列建模,圖像音頻和視頻多是時(shí)空混合建模;
大數(shù)據(jù)處理如采集需要爬蟲、倒入導(dǎo)出和預(yù)處理等支持,存儲(chǔ)需要分布式云存儲(chǔ)、云計(jì)算資源管理等支持,計(jì)算需要分類、預(yù)測、描述等模型支持,應(yīng)用需要可視化、知識(shí)庫、決策評(píng)價(jià)等支持。
所以是業(yè)務(wù)決定技術(shù),而不是根據(jù)技術(shù)來考慮業(yè)務(wù),這是大數(shù)據(jù)學(xué)習(xí)要避免的第一個(gè)誤區(qū)。
2、大數(shù)據(jù)學(xué)習(xí)要善用開源,不要重復(fù)造輪子:數(shù)據(jù)科學(xué)的技術(shù)基因在于開源。
IT前沿領(lǐng)域的開源化已成不可逆轉(zhuǎn)的趨勢,Android開源讓智能手機(jī)平民化,讓我們跨入了移動(dòng)互聯(lián)網(wǎng)時(shí)代,智能硬件開源將帶領(lǐng)跨入物聯(lián)網(wǎng)時(shí)代,以Hadoop和Spark為代表的大數(shù)據(jù)開源生態(tài)加速了去IOE(IBM、ORACLE、EMC)進(jìn)程,倒逼傳統(tǒng)IT巨頭擁抱開源,谷歌和OpenAI聯(lián)盟的深度學(xué)習(xí)開源(以Tensorflow,Torch,Caffe等為代表)正在加速人工智能技術(shù)的發(fā)展。
數(shù)據(jù)科學(xué)的標(biāo)配語言R和Python更是因開源而生,因開源而繁榮,諾基亞因沒把握開源大勢而衰落。
為什么要開源,這得益于IT發(fā)展的工業(yè)化和構(gòu)件化,各大領(lǐng)域的基礎(chǔ)技術(shù)棧和工具庫已經(jīng)很成熟,下一階段就是怎么快速組合、快速搭積木、快速產(chǎn)出的問題,不管是linux,anroid還是tensorflow,其基礎(chǔ)構(gòu)件庫基本就是利用已有開源庫,結(jié)合新的技術(shù)方法實(shí)現(xiàn),組合構(gòu)建而成,很少在重復(fù)造輪子。
另外,開源這種眾包開發(fā)模式,是一種集體智慧編程的體現(xiàn),一個(gè)公司無法積聚全球工程師的開發(fā)智力,而一個(gè)GitHub上的明星開源項(xiàng)目可以,所以要善用開源和集體智慧編程,而不要重復(fù)造輪子,這是大數(shù)據(jù)學(xué)習(xí)要避免的第二個(gè)誤區(qū)。
3、大數(shù)據(jù)學(xué)習(xí)要以點(diǎn)帶面,不貪大求全:數(shù)據(jù)科學(xué)要把握好碎片化與系統(tǒng)性。根據(jù)前文的大數(shù)據(jù)技術(shù)體系分析,我們可以看到大數(shù)據(jù)技術(shù)的深度和廣度都是傳統(tǒng)信息技術(shù)難以比擬的。
大數(shù)據(jù)只有和特定領(lǐng)域的應(yīng)用結(jié)合起來才能產(chǎn)生價(jià)值,數(shù)據(jù)科學(xué)還是數(shù)據(jù)工程是大數(shù)據(jù)學(xué)習(xí)要明確的關(guān)鍵問題。
大數(shù)據(jù)學(xué)習(xí)一定要清楚我是在做數(shù)據(jù)科學(xué)還是數(shù)據(jù)工程,各需要哪些方面的技術(shù)能力,現(xiàn)在處于哪一個(gè)階段等,不然為了技術(shù)而技術(shù),是難以學(xué)好和用好大數(shù)據(jù)的。
大數(shù)據(jù)學(xué)習(xí)路線:
?
?
第一階段linux+搜索+hadoop體系
Linux基礎(chǔ)→shell編程→高并發(fā)架構(gòu)→lucene,solr搜索→hadoop體系→HDFS→mapreduce→hbase→zookeeper→hive→flume→sqoop→項(xiàng)目實(shí)戰(zhàn)一
第二階段機(jī)器學(xué)習(xí)
R語言→mahout→項(xiàng)目實(shí)戰(zhàn)二
第三階段storm流式計(jì)算
kafka→storm→redis→項(xiàng)目實(shí)戰(zhàn)三
第四階段spark內(nèi)存計(jì)算
scala編程→spark core→spark sql→spark streaming→spark mllib→spark graphx→項(xiàng)目實(shí)戰(zhàn)四→python機(jī)器學(xué)習(xí)→spark python編程→項(xiàng)目實(shí)戰(zhàn)五→項(xiàng)目實(shí)戰(zhàn)六
第五階段云計(jì)算平臺(tái)
docker→kvm→openstack云計(jì)算→就業(yè)指導(dǎo)
第一階段:linux+搜索+hadoop體系Linux大綱這章是基礎(chǔ)課程,幫大家進(jìn)入大數(shù)據(jù)領(lǐng)域打好Linux基礎(chǔ),以便更好地學(xué)習(xí)Hadoop,hbase,NoSQL,Spark,Storm,docker,kvm,openstack等眾多課程。因?yàn)槠髽I(yè)中無一例外的是使用Linux來搭建或部署項(xiàng)目。1) Linux的介紹,Linux的安裝:VMware Workstation虛擬軟件安裝過程、CentOS虛擬機(jī)安裝過程
2) 了解機(jī)架服務(wù)器,采用真實(shí)機(jī)架服務(wù)器部署linux
3) Linux的常用命令:常用命令的介紹、常用命令的使用和練習(xí)
4) Linux系統(tǒng)進(jìn)程管理基本原理及相關(guān)管理工具如ps、pkill、top、htop等的使用;
5) Linux啟動(dòng)流程,運(yùn)行級(jí)別詳解,chkconfig詳解
6) VI、VIM編輯器:VI、VIM編輯器的介紹、VI、VIM扥使用和常用快捷鍵
7) Linux用戶和組賬戶管理:用戶的管理、組管理
8) Linux磁盤管理,lvm邏輯卷,nfs詳解
9) Linux系統(tǒng)文件權(quán)限管理:文件權(quán)限介紹、文件權(quán)限的操作
10) Linux的RPM軟件包管理:RPM包的介紹、RPM安裝、卸載等操作
11) yum命令,yum源搭建
12) Linux網(wǎng)絡(luò):Linux網(wǎng)絡(luò)的介紹、Linux網(wǎng)絡(luò)的配置和維護(hù)
13) Shell編程:Shell的介紹、Shell腳本的編寫
14) Linux上常見軟件的安裝:安裝JDK、安裝Tomcat、安裝mysql,web項(xiàng)目部署大型網(wǎng)站
高并發(fā)處理通過本章的學(xué)習(xí)大家將會(huì)了解大數(shù)據(jù)的源頭,數(shù)據(jù)從何而來,繼而更好的了解大數(shù)據(jù)。并且通過學(xué)習(xí)何果處理大型網(wǎng)站高并發(fā)問題反向更深入的學(xué)習(xí)了Linux,同時(shí)站在了更高的角度去觸探了架構(gòu)。1) 第四層負(fù)載均衡
a) Lvs負(fù)載均衡
i. 負(fù)載算法,NAT模式,直接路由模式(DR),隧道模式(TUN)
b) F5負(fù)載均衡器介紹
2) 第七層負(fù)載均衡
a) Nginx b) Apache
3) Tomcat、jvm優(yōu)化提高并發(fā)量
4) 緩存優(yōu)化
a) Java緩存框架
i. Oscache,ehcache
b) 緩存數(shù)據(jù)庫
i. Redis,Memcached
5) Lvs+nginx+tomcat+redis|memcache構(gòu)建二層負(fù)載均衡千萬并發(fā)處理
6) Haproxy
7) Fastdfs小文件獨(dú)立存儲(chǔ)管理
8) Redis緩存系統(tǒng)
a) Redis基本使用 b) Redis sentinel高可用 c) Redis好友推薦算法Lucene課程在大數(shù)據(jù)里面文本數(shù)據(jù)的搜索是很重要的一塊,特別是里面的分詞技術(shù),是后面機(jī)器學(xué)習(xí)里面文本挖掘的基石,我們需要深入學(xué)習(xí)java領(lǐng)域里面的搜索核心技術(shù)lucene,同時(shí)也可以了解到百度 google這樣的搜索系統(tǒng)是怎么架構(gòu)實(shí)現(xiàn)的。1) Lucene介紹
2) Lucene 倒排索引原理
>
3) 建索引 IndexWriter
4) 搜索 IndexSearcher
5) Query
6) Sort和 過濾 (filter)
7) 索引優(yōu)化和高亮Solr課程接著前面lucene技術(shù)搜索,如果把lucene技術(shù)比如為發(fā)動(dòng)機(jī),那solr就是一兩成型的汽車了。學(xué)習(xí)完solr可以幫助你在企業(yè)里面快速的架構(gòu)搜索系統(tǒng)。首先Solr是基于Lucene做的,Lucene是一套信息檢索工具包,但并不包含搜索引擎系統(tǒng),它包含了索引結(jié)構(gòu)、讀寫索引工具、相關(guān)性工具、排序等功能,因此在使用Lucene時(shí)你仍需要關(guān)注搜索引擎系統(tǒng),例如數(shù)據(jù)獲取、解析、分詞等方面的東西。而Solr的目標(biāo)是打造一款企業(yè)級(jí)的搜索引擎系統(tǒng),因此它更接近于我們認(rèn)識(shí)到的搜索引擎系統(tǒng),它是一個(gè)搜索引擎服務(wù),通過各種API可以讓你的應(yīng)用使用搜索服務(wù),而不需要將搜索邏輯耦合在應(yīng)用中。而且Solr可以根據(jù)配置文件定義數(shù)據(jù)解析的方式,更像是一個(gè)搜索框架,它也支持主從、熱換庫等操作。還添加了飄紅、facet等搜索引擎常見功能的支持。1) 什么是solr
2) 為什么工程中要使用solr
3) Solr的原理
4) 如何在tomcat中運(yùn)行solr
5) 如何利用solr進(jìn)行索引與搜索
6) solr的各種查詢
7) solr的Filter
8) solr的排序
9) solr的高亮
10) solr的某個(gè)域統(tǒng)計(jì)
11) solr的范圍統(tǒng)計(jì)
12) solrcloud集群搭建
Hadoop
離線計(jì)算大綱一、初識(shí)hadoop?聽過大數(shù)據(jù),必聽過hadoop,此部分帶領(lǐng)大家了解hadoop的用途,在大數(shù)據(jù)中的用途,以及快速搭建一個(gè)hadoop的實(shí)驗(yàn)環(huán)境,在本過程中不僅將用到前面的Linux知識(shí),而且會(huì)對(duì)hadoop的架構(gòu)有深入的理解,并為你以后架構(gòu)大數(shù)據(jù)項(xiàng)目打下堅(jiān)實(shí)基礎(chǔ)。1) Hadoop生態(tài)環(huán)境介紹
2) Hadoop云計(jì)算中的位置和關(guān)系
3) 國內(nèi)外Hadoop應(yīng)用案例介紹
4) Hadoop 概念、版本、歷史
5) Hadoop 核心組成介紹及hdfs、mapreduce 體系結(jié)構(gòu)
6) Hadoop 的集群結(jié)構(gòu)
7) Hadoop 偽分布的詳細(xì)安裝步驟
8) 通過命令行和瀏覽器觀察hadoop
二、 HDFS體系結(jié)構(gòu)和shell以及java操作詳細(xì)剖析HDFS,從知曉原理到開發(fā)網(wǎng)盤的項(xiàng)目讓大家打好學(xué)習(xí)大數(shù)據(jù)的基礎(chǔ),大數(shù)據(jù)之于分布式,分布式學(xué)習(xí)從學(xué)習(xí)分布式文件系統(tǒng)(HDFS)開始。1) HDFS底層工作原理
2) HDFS datanode,namenode詳解
3) Hdfs shell
4) Hdfs java api
三、 詳細(xì)講解MapreduceMapreduce可以說是任何一家大數(shù)據(jù)公司都會(huì)用到的計(jì)算框架,也是每個(gè)大數(shù)據(jù)工程師應(yīng)該熟練掌握的,此處的學(xué)習(xí)除了老師詳細(xì)的講解理論外,會(huì)通過大量的案例讓大家徹底掌握。1) Mapreduce四個(gè)階段介紹
2) Writable
3) InputSplit和OutputSplit
4) Maptask
5) Shuffle:Sort,Partitioner,Group,Combiner
6) Reducer
四、 Mapreduce案例案例1) 二次排序
2) 倒排序索引
3) 最優(yōu)路徑
4) 電信數(shù)據(jù)挖掘之-----移動(dòng)軌跡預(yù)測分析(中國棱鏡計(jì)劃)
5) 社交好友推薦算法
6) 互聯(lián)網(wǎng)精準(zhǔn)廣告推送 算法
7) 阿里巴巴天池大數(shù)據(jù)競賽 《天貓推薦算法》案例
8) Mapreduce實(shí)戰(zhàn)pagerank算法
五、 Hadoop2.x集群搭建前面帶領(lǐng)大家開發(fā)了大量的MapReduce程序,此部分將帶來大家讓開發(fā)的程序運(yùn)行在分布式集群中,并且運(yùn)行在健壯高可用的集群中。1) Hadoop2.x集群結(jié)構(gòu)體系介紹
2) Hadoop2.x集群搭建
3) NameNode的高可用性(HA)
4) HDFS Federation
5) ResourceManager 的高可用性(HA)
6) Hadoop集群常見問題和解決方法
7) Hadoop集群管理分布式數(shù)據(jù)庫
Hbase大數(shù)據(jù)中使用Hbase的案例多的舉不勝舉,也可凸顯大家學(xué)習(xí)的必要性。即使工作多年的大數(shù)據(jù)工程師Hbase的優(yōu)化也是需要好好學(xué)習(xí)的重點(diǎn)。1) HBase定義
2) HBase與RDBMS的對(duì)比
3) 數(shù)據(jù)模型
4) 系統(tǒng)架構(gòu)
5) HBase上的MapReduce
6) 表的設(shè)計(jì)
7) 集群的搭建過程講解
8) 集群的監(jiān)控
9) 集群的管理
10) HBase Shell以及演示
11) Hbase 樹形表設(shè)計(jì)
12) Hbase 一對(duì)多 和 多對(duì)多 表設(shè)計(jì)
13) Hbase 微博 案例
14) Hbase 訂單案例
15) Hbase表級(jí)優(yōu)化
16) Hbase 寫數(shù)據(jù)優(yōu)化
17) Hbase 讀數(shù)據(jù)優(yōu)化
數(shù)據(jù)倉庫HiveHive是使用sql進(jìn)行計(jì)算的hadoop框架,工作中最常用到的部分,也是面試的重點(diǎn),此部分大家將從方方面面來學(xué)習(xí)Hive的應(yīng)用,任何細(xì)節(jié)都將給大家涉及到。1) 數(shù)據(jù)倉庫基礎(chǔ)知識(shí)
2) Hive定義
3) Hive體系結(jié)構(gòu)簡介
4) Hive集群
5) 客戶端簡介
6) HiveQL定義
7) HiveQL與SQL的比較
8) 數(shù)據(jù)類型
9) 外部表和分區(qū)表
10) ddl與CLI客戶端演示
11) dml與CLI客戶端演示
12) select與CLI客戶端演示
13) Operators 和 functions與CLI客戶端演示
14) Hive server2 與jdbc
15) 用戶自定義函數(shù)(UDF 和 UDAF)的開發(fā)與演示
16) Hive 優(yōu)化
數(shù)據(jù)遷移工具Sqoopsqoop適用于關(guān)系型數(shù)據(jù)庫和HDFS分布式數(shù)據(jù)系統(tǒng)之間進(jìn)行數(shù)據(jù)轉(zhuǎn)換,在企業(yè)中,是構(gòu)建數(shù)據(jù)倉庫的一大工具。1) 介紹 和 配置Sqoop
2) Sqoop shell使用
3) Sqoop-import
a) DBMS-hdfs b) DBMS-hive c) DBMS-hbase
4) Sqoop-exportFlume分布式
日志框架Flume最早是Cloudera提供的日志收集系統(tǒng),目前是Apache下的一個(gè)孵化項(xiàng)目,Flume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù)。大家學(xué)習(xí)完此節(jié)后不但可以掌握Flume的使用,而且可以進(jìn)行對(duì)于Flume的開發(fā)。1) flume簡介-基礎(chǔ)知識(shí)
2) flume安裝與測試
3) flume部署方式
4) flume source相關(guān)配置及測試
5) flume sink相關(guān)配置及測試
6) flume selector 相關(guān)配置與案例分析
7) flume Sink Processors相關(guān)配置和案例分析
8) flume Interceptors相關(guān)配置和案例分析
9) flume AVRO Client開發(fā)
10) flume 和kafka 的整合
Zookeeper
開發(fā)Zookeeper在分布式集群(Hadoop生態(tài)圈)中的地位越來越突出,對(duì)分布式應(yīng)用的開發(fā)也提供了極大便利,這也是這里我們帶領(lǐng)大家深入學(xué)習(xí) Zookeeper的原因。本課程主要內(nèi)容包括Zookeeper深入、客戶端開發(fā)(Java編程,案例開發(fā))、日常運(yùn)維、Web界面監(jiān)控。大家這里學(xué)好Zookeeper,對(duì)后面學(xué)習(xí)其他技術(shù)至關(guān)重要。1) Zookeeper java api開發(fā)
2) Zookeeper rmi高可用分布式集群開發(fā)
3) Zookeeper redis高可用監(jiān)控實(shí)現(xiàn)
4) Netty 異步io通信框架
5) Zookeeper實(shí)現(xiàn)netty分布式架構(gòu)的高可用項(xiàng)目實(shí)戰(zhàn)某大型電商日志分析和訂單管理在實(shí)戰(zhàn)中學(xué)習(xí),技術(shù)點(diǎn)非常多,怎么樣實(shí)際運(yùn)用這些點(diǎn)是我們?cè)谧詫W(xué)過程中體驗(yàn)不到的。電商日志分析包括:pv、uv,跳出率,二跳率、廣告轉(zhuǎn)化率、搜索引擎優(yōu)化等,訂單模塊有:產(chǎn)品推薦,商家排名,歷史訂單查詢,訂單報(bào)表統(tǒng)計(jì)等。項(xiàng)目技術(shù)架構(gòu)體系:
a) Web項(xiàng)目和云計(jì)算項(xiàng)目的整合
b) Flume通過avro實(shí)時(shí)收集web項(xiàng)目中的日志
c) 數(shù)據(jù)的ETL
d) Hive 批量 sql執(zhí)行
e) Hive 自定義函數(shù)
f) Hive和hbase整合。
g) Hbase 數(shù)據(jù)支持 sql查詢分析
h) Mapreduce數(shù)據(jù)挖掘
i) Hbase dao處理
j) Sqoop 在項(xiàng)目中的使用。
k) Mapreduce 定時(shí)調(diào)用和監(jiān)控
第二階段:機(jī)器學(xué)習(xí)R語言
機(jī)器學(xué)習(xí)R本身是一款十分優(yōu)秀的數(shù)據(jù)分析和數(shù)據(jù)可視化軟件,同時(shí)作為第一代機(jī)器學(xué)習(xí)的工具,其中包括大量用于機(jī)器學(xué)習(xí)的添加包。此部分帶領(lǐng)大家學(xué)習(xí)R語言更是帶領(lǐng)大家進(jìn)入機(jī)器學(xué)習(xí)的領(lǐng)域,機(jī)器學(xué)習(xí)算法為主線的同時(shí),通過案例學(xué)習(xí)將會(huì)讓大家對(duì)內(nèi)容脈絡(luò)掌握的更加清晰。1) R語言介紹,基本函數(shù),數(shù)據(jù)類型
2) 線性回歸
3) 樸素貝葉斯聚類
4) 決策樹分類
5) k均值聚類 a) 離群點(diǎn)檢測
6) 關(guān)聯(lián)規(guī)則探索
7) 神經(jīng)網(wǎng)絡(luò)Mahout
機(jī)器學(xué)習(xí)Mahout提供一些可擴(kuò)展的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實(shí)現(xiàn),很多公司會(huì)使用Mahout方便快捷地創(chuàng)建智能應(yīng)用程序。Mahout包含許多實(shí)現(xiàn),包括聚類、分類、推薦過濾、頻繁子項(xiàng)挖掘。Mahout通過使用 Apache Hadoop,可以有效地?cái)U(kuò)展到云中。被業(yè)界奉為第二代機(jī)器學(xué)習(xí)工具。此部分過后大家不僅會(huì)學(xué)習(xí)到mahout的組件而且會(huì)有項(xiàng)目讓大家真正把它應(yīng)用到工作中。1) 介紹為什么使用它,它的前景
a) 簡單介紹Mahout b) 簡單介紹機(jī)器學(xué)習(xí) c) 實(shí)例演示Mahout單機(jī)推薦程序
2) 配置安裝(hadoop2.x版本的)編譯安裝步驟說明
a) 命令行中測試運(yùn)行協(xié)同過濾概念
3) 推薦
a) 講解基于用戶的協(xié)同過濾 b) 講解基于物品的協(xié)同過濾
4) 分類
a) 分類概念 b) 分類的應(yīng)用及Mahout分類優(yōu)勢 c) 分類和聚類、推薦的區(qū)別 d) 分類工作原理
e) 分類中概念術(shù)語 f) 分類項(xiàng)目工作流 g) 如何定義預(yù)測變量 h) 線性分類器的介紹,及貝葉斯分類器
i) 決策樹分類器的介紹,及隨機(jī)森林分類器 j) 如何使用貝葉斯分類器和隨機(jī)森林分類器的代碼展示
5) 聚類
a) 聚類概念 b) 聚類步驟流程 c) 聚類中的距離測度 d) 講解K-means聚類 e) K-means聚類算法展示
f) 聚類其他算法 g) 介紹TF-IDF h) 歸一化 i) 微博聚類案例項(xiàng)目實(shí)戰(zhàn)微博營銷數(shù)據(jù)挖掘項(xiàng)目使用數(shù)據(jù)來自微博平臺(tái),項(xiàng)目目標(biāo)通過機(jī)器學(xué)習(xí)所學(xué)知識(shí)挖掘目標(biāo)客戶群體,找到代言人進(jìn)行微博營銷廣告投放。項(xiàng)目技術(shù)架構(gòu)體系:
a) 分布式平臺(tái) Hadoop,MapReduce
b) 數(shù)據(jù)采集 Flume
c) 數(shù)據(jù)清洗 ETL
d) 數(shù)據(jù)庫 Hbase,Redis
e) 機(jī)器學(xué)習(xí) Mahout
第三階段:storm流式計(jì)算redis緩存
系統(tǒng)課程大綱1) redis特點(diǎn)、與其他數(shù)據(jù)庫的比較
2) 如何安裝redis
3) 如何使用命令行客戶端
4) redis的字符串類型
5) redis的散列類型
6) redis的列表類型
7) redis的集合類型
8) 如何使用java訪問redis【a.python訪問redis,scala訪問redis】
9) redis的事務(wù)(transaction)
10) redis的管道(pipeline)
11) redis持久化(AOF+RDB)
12) redis優(yōu)化
13) redis的主從復(fù)制
14) redis的sentinel高可用
15) twemproxy,codis實(shí)戰(zhàn)
16) redis3.x集群安裝配置
Kafka課程Kafka是當(dāng)下流行的隊(duì)列,可以說是從數(shù)據(jù)采集到大數(shù)據(jù)計(jì)算承上啟下的重要環(huán)節(jié),大家在此部分將會(huì)詳細(xì)學(xué)習(xí)它的架構(gòu),kafka在大家大數(shù)據(jù)的項(xiàng)目中幾乎都會(huì)涉及到。1) kafka是什么
2) kafka體系結(jié)構(gòu)
3) kafka配置詳解
4) kafka的安裝
5) kafka的存儲(chǔ)策略
6) kafka分區(qū)特點(diǎn)
7) kafka的發(fā)布與訂閱
8) zookeeper協(xié)調(diào)管理
9) java編程操作kafka
10) scala編程操作kafka
11) flume 和kafka 的整合
12) Kafka 和storm 的整合
Storm
實(shí)時(shí)數(shù)據(jù)處理本部分學(xué)習(xí)過后,大家將全面掌握Storm內(nèi)部機(jī)制和原理,通過大量項(xiàng)目實(shí)戰(zhàn),讓大家擁有完整項(xiàng)目開發(fā)思路和架構(gòu)設(shè)計(jì),掌握從數(shù)據(jù)采集到實(shí)時(shí)計(jì)算到數(shù)據(jù)存儲(chǔ)再到前臺(tái)展示,所有工作一個(gè)人搞定!譬如可以一個(gè)人搞定淘寶雙11大屏幕項(xiàng)目!不光從項(xiàng)目的開發(fā)的層次去實(shí)現(xiàn),并可以從架構(gòu)的層次站在架構(gòu)師的角度去完成一個(gè)項(xiàng)目。項(xiàng)目技術(shù)架構(gòu)體系:
1) Storm的基本概念
2) Storm的應(yīng)用場景
3) Storm和Hadoop的對(duì)比
4) Storm集群的安裝的linux環(huán)境準(zhǔn)備
5) zookeeper集群搭建
6) Storm集群搭建
7) Storm配置文件配置項(xiàng)講解
8) 集群搭建常見問題解決
9) Storm常用組件和編程API:Topology、 Spout、Bolt
10) Storm分組策略(stream groupings)
11) 使用Strom開發(fā)一個(gè)WordCount例子
12) Storm程序本地模式debug、Storm程序遠(yuǎn)程debug
13) Storm事物處理
14) Storm消息可靠性及容錯(cuò)原理
15) Storm結(jié)合消息隊(duì)列Kafka:消息隊(duì)列基本概念(Producer、Consumer、Topic、Broker等)、消息隊(duì)列Kafka使用場景、Storm結(jié)合Kafka編程API
16) Storm Trident概念
17) Trident state 原理
18) Trident開發(fā)實(shí)例
19) Storm DRPC(分布式遠(yuǎn)程調(diào)用)介紹
20) Storm DRPC實(shí)戰(zhàn)講解
21) Storm和Hadoop 2.x的整合:Storm on Yarn
Storm開發(fā)實(shí)戰(zhàn): Kafka+Storm+Hbase+redis項(xiàng)目實(shí)戰(zhàn),以及多個(gè)案例項(xiàng)目實(shí)戰(zhàn)中國移動(dòng)基站保障平臺(tái)一個(gè)市級(jí)移動(dòng)公司,每天的產(chǎn)生海量話務(wù)數(shù)據(jù)(一線城市更高),通過大數(shù)實(shí)時(shí)分析,監(jiān)控每個(gè)基站的掉話率,基站通話總數(shù),基站掉話總數(shù),基站告警,3g/4g上網(wǎng)流量實(shí)時(shí)監(jiān)控。對(duì)以上維度進(jìn)行實(shí)時(shí)分析以達(dá)到對(duì)基站工作情況的監(jiān)控。項(xiàng)目技術(shù)架構(gòu)體系:
Storm+hbase+kafka+flume+echarts
a) flume實(shí)時(shí)采集日志
b) kafka緩沖隊(duì)列
c) storm實(shí)時(shí)處理
d) Hbase dao存儲(chǔ)處理結(jié)果
e) 前端Web實(shí)時(shí)展示報(bào)表
第四階段:spark內(nèi)存計(jì)算Python課程Python語言的部分大家在學(xué)習(xí)后可以完全掌握Python的精髓,并通過這部分的學(xué)習(xí)給大家打好一個(gè)基礎(chǔ),在其他計(jì)算框架中多語言的使用上都會(huì)涉及到Python這門流行的語言。同時(shí)課程里會(huì)通過機(jī)器學(xué)習(xí)的案例讓大家學(xué)習(xí)Python的同時(shí)去更好的理解機(jī)器學(xué)習(xí)。1) 介紹Python以及特點(diǎn)
2) Python的安裝
3) Python基本操作(注釋、邏輯、字符串使用等)
4) Python數(shù)據(jù)結(jié)構(gòu)(元組、列表、字典)
5) 使用Python進(jìn)行批量重命名小例子
6) Python常見內(nèi)建函數(shù)
7) 更多Python函數(shù)及使用常見技巧
8) 異常
9) Python函數(shù)的參數(shù)講解
10) Python模塊的導(dǎo)入
11) Python中的類與繼承
12) 網(wǎng)絡(luò)爬蟲案例
13) 數(shù)據(jù)庫連接,以及pip安裝模塊
14) Mongodb基礎(chǔ)入門
15) 講解如何連接mongodb
16) Python的機(jī)器學(xué)習(xí)案例
Scala課程在此部分內(nèi),將更注重scala的各種語言規(guī)則與簡單直接的應(yīng)用,而不在于其是如何具體實(shí)現(xiàn),通過學(xué)習(xí)本課程能具備初步的Scala語言實(shí)際編程能力。本部分課程也可以視為大家下面學(xué)習(xí)Spark課程的鋪墊,供大家掃盲熟悉Scala,提前進(jìn)行熱身運(yùn)動(dòng)。1) scala解釋器、變量、常用數(shù)據(jù)類型等
2) scala的條件表達(dá)式、輸入輸出、循環(huán)等控制結(jié)構(gòu)
3) scala的函數(shù)、默認(rèn)參數(shù)、變長參數(shù)等
4) scala的數(shù)組、變長數(shù)組、多維數(shù)組等
5) scala的映射、元組等操作
6) scala的類,包括bean屬性、輔助構(gòu)造器、主構(gòu)造器等
7) scala的對(duì)象、單例對(duì)象、伴生對(duì)象、擴(kuò)展類、apply方法等
8) scala的包、引入、繼承等概念
9) scala的特質(zhì)
10) scala的操作符
11) scala的高階函數(shù)
12) scala的集合
13) scala數(shù)據(jù)庫連接
Spark
大數(shù)據(jù)處理本部分內(nèi)容全面涵蓋了Spark生態(tài)系統(tǒng)的概述及其編程模型,深入內(nèi)核的研究,Spark on Yarn,Spark Streaming流式計(jì)算原理與實(shí)踐,Spark SQL,Spark的多語言編程以及SparkR的原理和運(yùn)行。不僅面向項(xiàng)目開發(fā)人員,甚至對(duì)于研究Spark的學(xué)員,此部分都是非常有學(xué)習(xí)指引意義的課程。1) Spark介紹
2) Spark應(yīng)用場景
3) Spark和Hadoop MR、Storm的比較和優(yōu)勢
4) RDD
5) Transformation
6) Action
7) Spark計(jì)算PageRank
8) Lineage
9) Spark模型簡介
10) Spark緩存策略和容錯(cuò)處理
11) 寬依賴與窄依賴
12) Spark配置講解
13) Spark集群搭建
14) 集群搭建常見問題解決
15) Spark原理核心組件和常用RDD
16) 數(shù)據(jù)本地性
17) 任務(wù)調(diào)度
18) DAGScheduler
19) TaskScheduler
20) Spark源碼解讀
21) 性能調(diào)優(yōu)
22) Spark和Hadoop2.x整合:Spark on Yarn原理
Spark Streaming
實(shí)時(shí)計(jì)算1) Spark Streaming:數(shù)據(jù)源和DStream
2) 無狀態(tài)transformation與有狀態(tài)transformation
3) Streaming Window的操作
4) sparksql 編程實(shí)戰(zhàn)
5) spark的多語言操作
6) spark最新版本的新特性
Spark MLlib
機(jī)器學(xué)習(xí)前面課程大家已經(jīng)掌握第一代機(jī)器學(xué)習(xí)工具R,而后又學(xué)習(xí)了第二代機(jī)器學(xué)習(xí)工具M(jìn)ahout,這里大家將會(huì)學(xué)習(xí)第三代機(jī)器學(xué)習(xí)工具M(jìn)Llib,大家不僅將會(huì)了解MLlib的組件及其調(diào)用,而且會(huì)通過Spark的項(xiàng)目深入了解MLlib的現(xiàn)實(shí)使用。通過此部分大家也可以看出課程不僅著眼于現(xiàn)在,更是著眼于大家的未來在行業(yè)中的發(fā)展。1) 介紹
a) Spark MLlib組件介紹 b) 基本數(shù)據(jù)類型
2) 回歸算法
c) 廣義線性模型 d) 邏輯回歸
3) 分類算法
e) 樸素貝葉斯 f) 決策樹 g) 隨機(jī)森林
4) 第四章 推薦系統(tǒng)
5) 第五章 聚類
h) Kmeans i) Sparse kmeans j) Kmeans++ k) Kmeans II
l) Streaming kmeans m) Gaussian Mixture ModelSparkt GraphX
圖計(jì)算a) 二分圖
b) 概述
c) 構(gòu)造圖
d) 屬性圖
e) PageRank
項(xiàng)目實(shí)戰(zhàn)智慧城市大數(shù)據(jù)分析項(xiàng)目城市中每時(shí)每刻都會(huì)產(chǎn)生海量數(shù)據(jù),應(yīng)用數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)和可視化技術(shù),分析出的數(shù)據(jù)可以改進(jìn)城市規(guī)劃,緩解交通擁堵,抓捕罪犯。項(xiàng)目會(huì)使用真實(shí)的數(shù)據(jù)。涉及到所學(xué)知識(shí)如下:項(xiàng)目技術(shù)架構(gòu)體系:
a) 實(shí)時(shí)流處理 Kafka,Spark Streaming
b) 分布式運(yùn)算 Hadoop,Spark
c) 數(shù)據(jù)庫 Hbase,Redis
d) 機(jī)器學(xué)習(xí) Spark Mllib
e) 前臺(tái)web展示數(shù)據(jù) Struts2,echart
手機(jī)軟件推薦系統(tǒng)項(xiàng)目使用數(shù)據(jù)來自某互聯(lián)網(wǎng)平臺(tái)手機(jī)助手,項(xiàng)目目標(biāo)通過機(jī)器學(xué)習(xí)所學(xué)知識(shí)挖掘平臺(tái)手機(jī)用戶喜好,給用戶準(zhǔn)確推薦手機(jī)軟件,類似360手機(jī)助手、華為手機(jī)助手、百度手機(jī)助手推薦功能。項(xiàng)目技術(shù)架構(gòu)體系:
a) 分布式平臺(tái) Hadoop,Spark
b) 數(shù)據(jù)清洗 Hive
c) 數(shù)據(jù)分析 R RStudio
d) 推薦服務(wù) Dubbox
e) 規(guī)則過濾 Drools
f) 機(jī)器學(xué)習(xí) MLlib
網(wǎng)絡(luò)流量異常檢測項(xiàng)目項(xiàng)目目標(biāo)通過機(jī)器學(xué)習(xí)所學(xué)知識(shí)檢測出異常,包括檢測欺詐,網(wǎng)絡(luò)攻擊,服務(wù)器傳感器故障燈(本項(xiàng)目用戶現(xiàn)在熱門的電商網(wǎng)站的流量分析檢測,比如京東,天貓,淘寶等)。項(xiàng)目功能應(yīng)用于各大互聯(lián)網(wǎng)平臺(tái)中,各大互聯(lián)網(wǎng)平臺(tái)均需要網(wǎng)絡(luò)安全予以重視和預(yù)防以及檢測。項(xiàng)目技術(shù)架構(gòu)體系:
a) 數(shù)據(jù)存儲(chǔ) Hadoop
b) 數(shù)據(jù)準(zhǔn)備 Spark
c) 數(shù)據(jù)分析 R RStudio
d) 機(jī)器學(xué)習(xí) MLlib
e) 數(shù)據(jù)評(píng)價(jià)及調(diào)參
第五階段:云計(jì)算平臺(tái)
Docker 課程Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口(類似 iPhone 的 app)。幾乎沒有性能開銷,可以很容易地在機(jī)器和數(shù)據(jù)中心中運(yùn)行。最重要的是,他們不依賴于任何語言、框架包括系統(tǒng)。1) 基本介紹
2) vm docker 對(duì)比
3) docker基本架構(gòu)介紹
4) unfs cgroup namespace
5) 進(jìn)程虛擬化 輕量級(jí)虛擬化
6) docker 安裝
7) docker 鏡像制作
8) docker 常用命令
9) docker 鏡像遷移
10) docker pipework【i.openvswitch】
11) docker weave
虛擬化KVM云計(jì)算算平臺(tái),比如openstack,cloudstack 底層采用的技術(shù)都是虛擬化方案,現(xiàn)在以kvm市場占有率最高,我們要深入的去學(xué)習(xí)這些原生的虛擬化,才能深入了解和架構(gòu)openstack這樣的云計(jì)算的平臺(tái),也才更有能力去開發(fā)自己的云計(jì)算平臺(tái)。1) 虛擬化介紹,虛擬化適用場景等等
2) Qemu Libvirt & KVM
3) 安裝KVM, Qemu, Libvirt
4) QEMU-KVM: 安裝第一個(gè)能上網(wǎng)的虛擬機(jī)
5) Kvm虛擬機(jī) nat,網(wǎng)橋基本原理
6) kvm虛擬機(jī)克隆
7) kvm虛擬機(jī)vnc配置
8) kvm虛擬機(jī)擴(kuò)展磁盤空間
9) Kvm快照
10) Kvm 遷移
11) Java,python,c語言編程控制kvm
12) 構(gòu)建自己的虛擬云平臺(tái)
云平臺(tái)OpenStack在實(shí)戰(zhàn)中學(xué)習(xí),課程絕不紙上談兵,通過搭建和調(diào)試一個(gè)真實(shí)的openstack平臺(tái),深入淺出, 詳細(xì)講解openstack的各個(gè)組成模塊:keystone, glance, nova, cinder, neutron, horizen。課程中遇到的各種實(shí)際問題,不僅演示了如何解決,更是要教會(huì)大家學(xué)會(huì)去找到解決問題的方法。難點(diǎn)問題全面講解。在云計(jì)算的各種技術(shù)當(dāng)中,網(wǎng)絡(luò)部分是最難,也是最復(fù)雜多樣的。課程中針對(duì)虛擬網(wǎng)絡(luò)進(jìn)行了詳細(xì)的講解,包括基本原理,以及實(shí)際環(huán)境搭建,問題的跟蹤和解決。講師擁有豐富的移動(dòng)集團(tuán)工作經(jīng)驗(yàn),負(fù)責(zé)云平臺(tái)的各方面工作,講課內(nèi)容完全貼近企業(yè)需求,絕不紙上談兵。1) openstack介紹和模塊基本原理分析
2) openstack多節(jié)點(diǎn)安裝部署【a.采用centos6.x系統(tǒng)】
3) Keystone基本原理
4) glance
5) Cinder
6) Swift
7) Neutron
8) Openstack api 二次開發(fā)
總結(jié)
以上是生活随笔為你收集整理的如何自学大数据开发?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 教你快速分割每段视频并自动分段导出保存
- 下一篇: Unity:Firebase接入Goog