色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql虛擬子查詢,大數(shù)據(jù)主要學(xué)習什么內(nèi)容

林玟書2年前16瀏覽0評論
mysql虛擬子查詢,大數(shù)據(jù)主要學(xué)習什么內(nèi)容?

前言

要從事計算機行業(yè)的工作,不管是什么工作,開發(fā)、測試、還是算法等,都是要有一門自己比較熟練的編程語言,編程語言可以是C語言、Java、C++等,只要是和你后續(xù)工作所相關(guān)的就可以(后續(xù)用到其他語言的話,你有一門語言基礎(chǔ)了,學(xué)起來就快了)。一般初學(xué)者入門語言大多都會選擇Java、C語言、C++或者Python,而且現(xiàn)在網(wǎng)上有很多好的視頻,可以供初學(xué)者學(xué)習使用。關(guān)于學(xué)習視頻或者資料的選擇,知乎或者百度等都有很多講解了,也可以跟師兄師姐咨詢,這樣可以少走很多彎路,當然,有人說,走一些彎路總是有好處的,但是我這里說的彎路不是說不犯錯誤,不調(diào)bug,而是指學(xué)習資料以及一些知識點的偏重點,這樣可以盡量節(jié)約一部分時間,剛開始時,總會有點迷,而且當你真正投入進去學(xué)習時,會發(fā)現(xiàn)時間總是不夠用。

我前面是做的Java后端,后續(xù)才轉(zhuǎn)的大數(shù)據(jù),所以一些Java開發(fā)所需要的東西自己也有學(xué)習過,也都是按照正常的路線走的,JavaSE階段,然后數(shù)據(jù)庫,SSM框架,接著做了一些網(wǎng)上找的項目,之后發(fā)現(xiàn)對大數(shù)據(jù)比較感興趣,就開始找大數(shù)據(jù)相關(guān)的資料學(xué)習,看視頻,看博客,敲代碼,前期大概花了3-4個月吧(公眾號的這些資料就是我當時看過的),也是一步步艱難走過來的,剛剛開始接觸大數(shù)據(jù)相關(guān)的東西時,一度懷疑這么多東西自己能否學(xué)得完,是不是能用得到,學(xué)完又忘了,忘了又回頭看,不過還好,堅持過來了,還好沒有放棄,工作也還ok,找的大數(shù)據(jù)開發(fā)崗,待遇也還不錯吧。

下面就說一下我自己從Java開發(fā)到大數(shù)據(jù)開發(fā)的曲折學(xué)習之路(狗頭保命.jpg)。因為我現(xiàn)在是做大數(shù)據(jù)相關(guān)的工作了,所以Java后端涉及到的一些SSM框架等知識點我就不介紹了,畢竟后續(xù)一段時間也沒有做了。自己看過的大數(shù)據(jù)學(xué)習相關(guān)的視頻+資料大概是200G-300G吧,從Linux->Hadoop->。。。->Spark->項目,還有就是一些面試文檔,面經(jīng)等。一些視頻看了兩遍或者更多,跟著學(xué),跟著敲代碼,做項目,準備面試。涉及到需要學(xué)習的東西包括:JavaSE,數(shù)據(jù)結(jié)構(gòu)與算法(計算機行業(yè)必備),MySQL,Redis,ES(數(shù)據(jù)庫這些可以看項目,也可以自己熟練一兩個),Linux,Shell(這個可以后期補),Hadoop,Zookeeper,Hive,F(xiàn)lume,Kafka,HBase,Scala(Spark是Scala寫的,會Scala做相關(guān)的項目會更容易入手),Spark,F(xiàn)link(這個是找工作時有面試官問過幾次liao不liao解,所以找完工作才開始接觸學(xué)習),相關(guān)項目。

編程語言階段學(xué)習

? 如果是零基礎(chǔ)的話,建議還是從視頻開始入門比較好,畢竟一上來就看教材,這樣有些代碼的來龍去脈可能不是很了解。如果是有一些編程語言基礎(chǔ)的話,從視頻開始也會更簡單,一些for、while循環(huán)你都知道了,學(xué)起來也會快很多。? JavaSE我是選擇的某馬劉意的為主,因為剛剛開始學(xué)Java看過一本從《Java從入門到精通》,沒什么感覺,后續(xù)又在看了某課網(wǎng)的Java初級視頻,還是沒感覺出來啥(當時就有點懷疑自己了。。。),可能有點沒進入狀態(tài)。? 還好后續(xù)找了某馬劉意老師的JavaSE視頻(我是看的2015年版本,那時候19版還沒出),覺得他講的真的是很好很詳細,每個知識點都會有例子,也都會帶你敲代碼,做測試,可能前面有C語言基礎(chǔ),然后也看過Java的一些語法,所以學(xué)起來還是比較順利,后面的IO流、多線程等知識點時,也有看書看博客,或者看看其他老師的課程,講解的可能自己比較容易接受就可以,反正都是多嘗試(下面會給出視頻鏈接),盡量懂一些,后續(xù)可以回頭來復(fù)習。JavaSE相關(guān)的視頻,先看一遍,后續(xù)有時間建議再看一遍,而且這些經(jīng)典的視頻,看兩遍真的是享受。? 如果有一定基礎(chǔ)了的,JavaSE前面七八天的視頻可以加速看,但是不懂的一定要停下開仔細想想,零基礎(chǔ)的還是盡量不要加速吧,慢慢來穩(wěn)些。后面的視頻建議還是跟著視頻來,盡量不要加速,代碼盡量都敲一敲,第一遍基本上一個月到一個半月可以結(jié)束。? JavaSE可以說是很基礎(chǔ)也很重要的東西,主要重點包括面向?qū)ο蟆⒓希↙ist、Map等),IO流,String/StringBuilder/StringBuffer、反射、多線程,這些最好是都要熟悉一些,面試也是重點。? JavaSE之后,如果你是要走前端或后端開發(fā)路線的話,可以跟著一些網(wǎng)上的視頻繼續(xù)學(xué)習,這里我就不多做介紹了。

===========分割線,Scala可以后續(xù)Spark階段再接觸學(xué)習=============

? Scala的學(xué)習,Scala是一門多范式 (multi-paradigm) 的編程語言,Scala支持面向?qū)ο蠛秃瘮?shù)式編程,最主要的是后續(xù)Spark的內(nèi)容需要用到Scala,所以前面學(xué)習了JavaSE,到Spark學(xué)習之前,再把Scala學(xué)習一波,美滋滋,而且Scala可以和Java進行無縫對接,混合使用,更是爽歪歪。后續(xù)Spark學(xué)習時基本都是用的Scala,也可能是和Java結(jié)合使用,所以Spark之前建議還是先學(xué)一波Scala,而且Scala用起來真是很舒服(wordcount一行代碼搞定),適合迭代式計算,對數(shù)據(jù)處理有很大幫助,不過Scala看代碼很容易看懂,但是學(xué)起來還是挺難的,比如樣例類(case class)用起來真是nice,但是隱式轉(zhuǎn)換學(xué)起來就相對比較難。學(xué)習Scala的建議:1. 學(xué)習scala 特有的語法,2. 搞清楚scala和java區(qū)別,3. 了解如何規(guī)范的使用scala。Scala對學(xué)習Spark是很重要的(后面Flink也是要用),雖然現(xiàn)在很多公司還是用Java開發(fā)比較多,而且Spark是Scala寫的,如果要讀源碼,會Scala還是很重要的(至少要看得懂代碼)。? Scala主要重點包括:隱式轉(zhuǎn)換和隱式參數(shù)、模式匹配、函數(shù)式編程。這里我看的是某硅谷韓老師的Scala視頻,韓老師講的真的很不錯,五星推薦,哈哈。? 也許有人會覺得Python也是需要的,但是學(xué)習階段,可能用Java還是比較多,面試也基本都是問Java相關(guān)的內(nèi)容,所以Python后續(xù)工作會用到的話,再看看Python的內(nèi)容吧。

大數(shù)據(jù)框架階段學(xué)習

? 大數(shù)據(jù)這方面的知識點自己可以說真的是從零開始的,剛剛開始學(xué)那會Linux基本都沒用過,心里那個虛啊,而且時間也緊迫,想起來都是一把辛酸淚。? 剛剛開始學(xué)的時候,看了廈門大學(xué)林子雨的《 大數(shù)據(jù)技術(shù)原理與應(yīng)用》課程,可能這個課程是面對上課的,所以看了一些,感覺對自己幫助不是很大(并不是說課程不好,可能不太適合自己,如果是要了解理論知識,很透徹,但是俺時間緊迫啊),所以就繼續(xù)在網(wǎng)上找視頻,然后發(fā)現(xiàn)某硅谷的培訓(xùn)視頻很多人去參加,而且知識點也很齊全,大數(shù)據(jù)相關(guān)組件都有講課,還有一些項目比較好,所以就找了它相關(guān)的視頻,當時看的是2018年的,所以視頻不算舊。? 來一張推薦系統(tǒng)架構(gòu)的圖,先看看

? 一般來說,F(xiàn)lume+Kafka對數(shù)據(jù)進行采集聚合傳輸,一方面Spark對實時數(shù)據(jù)進行處理,傳輸給相應(yīng)的數(shù)據(jù)處理模塊(比如實時數(shù)據(jù)處理的算法模塊,Spark也有提供常見的機器學(xué)習算法的程序庫),另一方面采集的數(shù)據(jù)也可以放入數(shù)據(jù)庫(HBase、MongoDB等)中,后續(xù)MapReduce對離線數(shù)據(jù)進行離線處理,數(shù)據(jù)處理完畢用于后續(xù)的使用,數(shù)據(jù)采集處理的流程大概就是這樣。如果是推薦系統(tǒng),實時推薦會給用戶產(chǎn)生實時的推薦結(jié)果,讓用戶進行查閱選擇,比如你在界面瀏覽了或者看了新的物品,然后刷新下界面,可能給你展示的東西就有一些變成跟你剛剛瀏覽的相關(guān)了。離線推薦的話主要是對離線數(shù)據(jù)進行處理,為物品或種類做出相似的推薦,如果后續(xù)用戶搜索相應(yīng)的物品時,給用戶展示相應(yīng)的產(chǎn)品。

? 大數(shù)據(jù)學(xué)習路線:Linux -> Hadoop -> Zookeeper -> Hive -> Flume -> Kafka -> HBase -> Scala -> Spark -> 項目 - > Flink( 如果需要學(xué)習Storm,在Spark前面學(xué)習)

一、Linux(基本操作)

? 一般我們使用的都是虛擬機來進行操作,所以要安裝VM( Virtual Machine),我使用的是CentOS,所以VM和CentOS都要跟著安裝好,跟著視頻操作,一定要動手實踐,將一些Linux基本命令熟練掌握,一些VIM編輯器的命令也要會用,做相應(yīng)的一些配置,使用SecureCRT來做遠程登錄操作(也可以使用其他的,自己順手就行)。再強調(diào)一遍,基本操作命令盡量熟練一點,如果一下記不住,打印一些常用的,自己看看,多用多實踐,慢慢就會用了。還有一些軟件包的下載安裝卸載等,跟著操作一遍,熟悉下,后續(xù)都會使用,Shell編程可以后續(xù)補。

二、Hadoop(重點中的重點)

? Hadoop是一個分布式系統(tǒng)基礎(chǔ)框架,用于主要解決海量數(shù)據(jù)的存儲和海量數(shù)據(jù)的分析計算問題,也可以說Hadoop是后續(xù)整個集群環(huán)境的基礎(chǔ),很多框架的使用都是會依賴于Hadoop。主要是由HDFS、MapReduce、YARN組成。這個部分安裝Hadoop,Hadoop的三個主要組成部分是重點,對他們的概念要理解出來,知道他們是做什么的,搭建集群環(huán)境,偽分布式模式和完全分布式模式的搭建,重要的是完全分布式的搭建,這些部分一定要自己動手實踐,自己搭建集群,仔細仔細再仔細,Hadoop的NameNode,DataNode,YARN的啟動關(guān)閉命令一定要知道,以及他們的啟動關(guān)閉順序要記住,不要搞混。后續(xù)視頻會有一些案例操作,跟著寫代碼,做測試,把基本環(huán)境都配置好,后續(xù)這個集群(完全分布式需要三臺虛擬機)要一直使用。

三、Zookeeper

? Zookeeper是一個開源的分布式的,為分布式應(yīng)用提供協(xié)調(diào)服務(wù)的Apache項目。分布式安裝ZK,對ZK有一定的了解就可以了,了解它的應(yīng)用場景,以及內(nèi)部原理,跟著做一些操作,基本上有一些了解即可。

四、Hive(重點)

? Hive是基于Hadoop的數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張表,并提供類SQL查詢功能。Hive的安裝,它的數(shù)據(jù)類型,以及它的數(shù)據(jù)定義、數(shù)據(jù)操作有較好的了解,怎么操作表(創(chuàng)建表、刪除表,創(chuàng)建什么類型的表,他們有什么不同),怎么操作數(shù)據(jù)(加載數(shù)據(jù),下載數(shù)據(jù),對不同的表進行數(shù)據(jù)操作),對數(shù)據(jù)的查詢一定要進行實踐操作,以及對壓縮方式和存儲格式要有一些了解,用到時不懂也可以去查,最好是能理解清楚。這部分有什么面試可能會問,所以視頻后續(xù)的面試講解可以看看,理解清楚。

五、Flume

? Flume是一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng)。對于Flume,對它的組成架構(gòu),以及對Flume Agent的內(nèi)部原理要理解清楚,Source、Channel、Sink一定要知道它們的各種類型以及作用,有哪些拓撲結(jié)構(gòu)是常見常用的,例如一對一,單Source、多Channel、多Sink等,它們有什么作用,要理解清楚。還有一個重點,就是對Flume的配置文件一定要了解清楚,不懂的可以上官網(wǎng)查看案例,對于不同的情況,它的配置文件要做相應(yīng)的修改,才能對數(shù)據(jù)進行采集處理,視頻中的實踐案例一定要跟著做。

六、Kafka(重點)

? Kafka是一個分布式消息隊列,用來緩存數(shù)據(jù)的。比如說實時計算中可以通過Flume+Kafka對數(shù)據(jù)進行采集處理之后,Spark Streaming再使用Kafka相應(yīng)的Topic中的數(shù)據(jù),用于后續(xù)的計算使用。對于Kafka,要理解Kafka的架構(gòu),什么是Kafka,為什么需要Kafka,應(yīng)用場景。基本的命令行操作要掌握,比如怎么創(chuàng)建刪除Topic,怎么通過生產(chǎn)者生成數(shù)據(jù),消費者怎么消費數(shù)據(jù)等基本操作,官網(wǎng)也是有一些案例可以查閱的。

七、HBase(重點)

? HBase是一個分布式的、基于列存儲的開源數(shù)據(jù)庫。HBase適合存儲PB級別的海量數(shù)據(jù),也可以說HBase是很適合大數(shù)據(jù)的存儲的,它是基于列式存儲數(shù)據(jù)的,列族下面可以有非常多的列,列族在創(chuàng)建表的時候就必須指定。所以對HBase的數(shù)據(jù)結(jié)構(gòu)要有一定的理解,特別是RowKey的設(shè)計部分(因為面試被問到過,咳咳,所以點一下),對于它的原理要了解,一些基本操作也要都會,比如創(chuàng)建表,對表的操作,基本的API使用等。

八、Spark(重點中的重點)

? Spark是快速、易用、通用的大數(shù)據(jù)分析引擎。一說到Spark,就有一種哪哪都是重點感覺,哈哈。? Spark的組成可以看下圖

? Spark是基于內(nèi)存計算的,對于數(shù)據(jù)的處理速度要比MapReduce快很多很多,而且數(shù)據(jù)挖掘這些都是要對數(shù)據(jù)做迭代式計算,MapReduce對數(shù)據(jù)的處理方式也不適合,而Spark是可以進行迭代式計算,很適合數(shù)據(jù)挖掘等場景。Spark的Spark SQL能夠?qū)Y(jié)構(gòu)化數(shù)據(jù)進行處理,Spark SQL的DataFrame或DataSet可以作為分布式SQL查詢引擎的作用,可以直接使用Hive上的表,對數(shù)據(jù)進行處理。Spark Streaming主要用于對應(yīng)用場景中的實時流數(shù)據(jù)進行處理,支持多種數(shù)據(jù)源,DStream是Spark Streaming的基礎(chǔ)抽象,由一系列RDD組成,每個RDD中存放著一定時間段的數(shù)據(jù),再對數(shù)據(jù)進行處理,而且是基于內(nèi)存計算,速度快,所以很適合實時數(shù)據(jù)的處理。Spark MLlib提供常見的機器學(xué)習(ML)功能的程序庫。包括分類、回歸、聚類、協(xié)同過濾等,還提供了模型評估、數(shù)據(jù) 導(dǎo)入等額外的支持功能。對Spark的核心組件、部署模式(主要是Standalone模式和YARN模式)、通訊架構(gòu)、任務(wù)調(diào)度要有一定了解(面試問到了可以說一波),Spark Shuffle要好好理解,還有內(nèi)存管理要知道,對Spark的內(nèi)核原理一定要好好理解,不僅面試可能要用,以后工作也是有幫助的。

九、Flink(重點中的重點)

? Flink是一個框架和分布式處理引擎,用于對無界(有開始無結(jié)束)和有界(有開始有結(jié)束)數(shù)據(jù)流進行有狀態(tài)計算。現(xiàn)在主要是阿里系公司使用的比較多,很多公司使用的還是Spark居多,而且Flink基本上都是和Spark很多功能大體上一樣的,但是以后Flink和Spark孰強孰弱還有待時間的考驗,不過Flink近幾年越來越火了這是事實,所以如果有時間有精力的話,可以學(xué)一學(xué)Flink相關(guān)的內(nèi)容也是很不錯的。Spark和Flink主要都是在數(shù)據(jù)處理方面應(yīng)用,在數(shù)據(jù)處理方面的話,離線數(shù)據(jù)處理:Flink暫時比不上Spark,Spark SQL優(yōu)點在于可以和Hive進行無縫連接,Spark SQL可以直接使用Hive中的表;Flink暫時做不到這一步,因為官方不支持這一操作,F(xiàn)link只能將數(shù)據(jù)讀取成自己的表,不能直接使用Hive中的表。對于實時數(shù)據(jù)的處理:Flink和Spark可以說是平分秋色吧,而且Flink是以事件為驅(qū)動對數(shù)據(jù)進行處理,而Spark是以時間為驅(qū)動對數(shù)據(jù)進行處理,在一些應(yīng)用場景中,也許Flink的效果比Spark的效果還要好些,因為Flink對數(shù)據(jù)更加的敏感。比如一秒鐘如果觸發(fā)了成千上萬個事件,那么時間驅(qū)動型就很難對數(shù)據(jù)做細致的計算,而事件驅(qū)動型可以以事件為單位,一個個事件進行處理,相比而言延遲更低,處理效果更好。現(xiàn)在使用Flink的公司越來越多,有時間學(xué)習下,也算是有個準備。

項目階段

? 其實某硅谷的視頻里面有很多大數(shù)據(jù)相關(guān)的項目,而且都是文檔配代碼的,B站上也有視頻,學(xué)習期間可以跟著視頻做兩到三個項目,自己理清思路,把項目理解透徹,還是可以學(xué)到很多東西的。? 根據(jù)自己情況,選擇兩到三個項目重點跟著做,理解透徹一點

大數(shù)據(jù)項目實戰(zhàn)

? 某硅谷的視頻里面有很多大數(shù)據(jù)相關(guān)的項目,而且都是文檔配代碼的,學(xué)習期間可以跟著視頻做兩到三個項目,自己理清思路,把項目理解透徹,還是可以學(xué)到很多東西的。根據(jù)自己情況,選擇兩到三個項目重點跟著做,理解透徹一點。相關(guān)項目文檔資料我已經(jīng)放到網(wǎng)盤,GongZhongHao回復(fù)相應(yīng)關(guān)鍵字獲取領(lǐng)取方式。 ? 相關(guān)項目、涉及技術(shù)框架及其B站鏈接(B站鏈接主要是為了有些小伙伴網(wǎng)盤速度限制,這樣就下載文檔資料即可)

書籍

? 書籍部分直接云盤鏈接保存即可,這里我放兩張Java開發(fā)和大數(shù)據(jù)開發(fā)我自己的書單(很多,路漫漫,吾將上下而求索~)? Java后端書架:

? 大數(shù)據(jù)書架:

? 大概就這些,看完就需要很久了,大部分我也是需要的時候看相應(yīng)的部分,所以有時間可以好好看下,不然就需要哪一部分看哪一部分,有助于學(xué)習即可。

最后

? 大數(shù)據(jù)開發(fā)也是需要編程基礎(chǔ)的,并不是學(xué)會使用這些框架怎么樣就可以了,所以對于編程語言,數(shù)據(jù)結(jié)構(gòu)與算法,計算機網(wǎng)絡(luò)這些基礎(chǔ)也是要的,這些基礎(chǔ)知識也有助于自己以后的發(fā)展,如果是應(yīng)屆生校招的話,面試基本上都是JavaSE和數(shù)據(jù)結(jié)構(gòu)與算法等的知識點,還有大數(shù)據(jù)組件相關(guān)的知識點,以及對項目的理解,這些都是要自己面試前準備好的,多看面經(jīng),多找面試題看,面幾次,心里有譜了,后續(xù)面試就好了。? 不管是從事什么樣的計算機相關(guān)的崗位,編程都是很重要的,數(shù)據(jù)結(jié)構(gòu)與算法特別重要,還有就是leetcode等編程網(wǎng)站刷題,提升自己的編程思維,后續(xù)筆試面試都要要的。? 要將一行行代碼看做一疊疊rmb,但是一行行代碼能不能轉(zhuǎn)換成一疊疊rmb,自己就一定要:堅持,多敲代碼;多敲代碼,堅持;堅持。?