大數據時(shí)代,你在干什么?大家都知道數據本身并沒(méi)有什么價(jià)值,由于分析方法的存在,使得海量的數據變得如同一座永遠開(kāi)采不完的礦,是金礦還是銀礦,得看你怎么分析和怎么利用了,和小編一起來(lái)了解一下怎么學(xué)習大數據吧。以下是小編為你整理的學(xué)大數據必須學(xué)什么 ?
【了解自身學(xué)習大數據的目的】每個(gè)人都有自己的想法,學(xué)習大數據的目的是什么,是學(xué)會(huì )分析,還是學(xué)會(huì )管理呢。 ?
【制定學(xué)習大數據的計劃】,在學(xué)習的過(guò)程中,沒(méi)有計劃,估計是達不到理想的彼岸的。一個(gè)好的計劃是詳細合理的,是張弛有度的。 ?
【三人必有我師】向他人學(xué)習,在現代社會(huì )里,大數據的思維,每個(gè)人都會(huì )擁有,只有不斷向他人學(xué)習,才能更好的提高之間,多問(wèn)為什么,根究5個(gè)w原則去做吧。
【互聯(lián)網(wǎng)很強大】利用網(wǎng)絡(luò )資源去學(xué)習,網(wǎng)絡(luò )時(shí)代,各種網(wǎng)絡(luò )視頻教學(xué)平臺都有資料、信息,只有跟上時(shí)代節奏,才不會(huì )落伍。 ?
【樂(lè )于操作、沉得下來(lái)】如果你學(xué)習大數據沉不下來(lái),建議你別學(xué),因為這需要很大的耐心,去處理、分析、解決大量的數據,需要不斷去思考,沉得下來(lái),才能進(jìn)步。 ?
【學(xué)好數學(xué)及建?!繑祵W(xué)來(lái)源于生活,數據也是來(lái)源于生活,計算機以邏輯說(shuō)話(huà),數學(xué)乃邏輯的先祖,學(xué)好數學(xué),懂得原理,學(xué)會(huì )建立相關(guān)模型是非常有必要的。 ?
大數據的學(xué)習基礎 ?
你可以先從Python看起,Python結構簡(jiǎn)單思路,這主要是建立你的編程思想。初學(xué)者學(xué)Python,不但入門(mén)容易,而且將來(lái)深入下去,可以編寫(xiě)那些非常非常復雜的程序。網(wǎng)上有很多免費的視頻隨便一搜就出來(lái)了! ?
當你有了一定基礎之后可以學(xué)習下C語(yǔ)言或者JAVA語(yǔ)言這兩種語(yǔ)言都是很優(yōu)秀的。雖然跟你要說(shuō)的大數據差的很遠但是底層的一些東西和一些思想還是要懂一些的 ?
學(xué)到這里就可以學(xué)習一些架構知識了。我們就以JAVA為例,很多語(yǔ)言都是相通的所以不必糾結語(yǔ)言,我們就以JAVA為例。下面是我認為比較好的一些學(xué)習路線(xiàn)。 ?
能把上述東西學(xué)好,你毫無(wú)疑問(wèn)已經(jīng)初入門(mén)檻小有成就了,這時(shí)候你就可以學(xué)習一下爬蟲(chóng)和數據庫高級應用之類(lèi)的課程了。這時(shí)候就好比黎明前的黑暗有好多人就在這里放棄了,不過(guò)也有部分人認為很輕松,個(gè)人覺(jué)得一部分是天賦另一部分就是努力了。 ?
接下來(lái)就可以學(xué)習算法、加密、數據挖掘等等一系列高級課程了。不管哪種語(yǔ)言都有它存在的必然,存在即真理,所以一定盡可能多學(xué)幾門(mén)語(yǔ)言當你真正學(xué)好一種語(yǔ)言的時(shí)候學(xué)另一種語(yǔ)言很快的。還有如果有精力可以學(xué)習一下匯編語(yǔ)言熟悉一下底層知識,為你將來(lái)更上一層樓打下基礎。 ?
不管你怎么學(xué)習知識總是無(wú)窮的,而且也是相互聯(lián)系的,當你學(xué)會(huì )一方面東西學(xué)習與它相近的東西有事半功倍的效果,所以與其說(shuō)是大數據入門(mén)不如說(shuō)是這一個(gè)行業(yè)的入門(mén)。加油學(xué)習吧 ?
初級MapReduce ?
這是你成為Hadoop開(kāi)發(fā)人員的基礎課程。 ?
MapReduce提供了以下的主要功能: ?
1)數據劃分和計算任務(wù)調度: ?
2)數據/代碼互定位: ?
3)系統優(yōu)化: ?
4)出錯檢測和恢復: ?
這種編程模型主要用于大規模數據集(大于1TB)的并行運算。 ?
1、如何理解map、reduce計算模型 ?
2、剖析偽分布式下MapReduce作業(yè)的執行過(guò)程 ?
3、Yarn模型
?
4、序列化 ?
5、MapReduce的類(lèi)型與格式 ?
6、MapReduce開(kāi)發(fā)環(huán)境搭建 ?
7、MapReduce應用開(kāi)發(fā) ?
8、熟悉MapReduce算法原理 ?
Zookeeper ?
這是個(gè)萬(wàn)金油,安裝Hadoop的HA的時(shí)候就會(huì )用到它,以后的Hbase也會(huì )用到它。它一般用來(lái)存放一些相互協(xié)作的信息,這些信息比較小一般不會(huì )超過(guò)1M,都是使用它的軟件對它有依賴(lài),對于我們個(gè)人來(lái)講只需要把它安裝正確,讓它正常的run起來(lái)就可以了。 ?
Mysql:我們學(xué)習完大數據的處理了,接下來(lái)學(xué)習學(xué)習小數據的處理工具mysql數據庫,因為一會(huì )裝hive的時(shí)候要用到,mysql需要掌握到什么層度那?你能在Linux上把它安裝好,運行起來(lái),會(huì )配置簡(jiǎn)單的權限,修改root的密碼,創(chuàng )建數據庫。這里主要的是學(xué)習SQL的語(yǔ)法,因為hive的語(yǔ)法和這個(gè)非常相似。 ?
Sqoop:這個(gè)是用于把Mysql里的數據導入到Hadoop里的。當然你也可以不用這個(gè),直接把Mysql數據表導出成文件再放到HDFS上也是一樣的,當然生產(chǎn)環(huán)境中使用要注意Mysql的壓力。 ?
Hive:這個(gè)東西對于會(huì )SQL語(yǔ)法的來(lái)說(shuō)就是神器,它能讓你處理大數據變的很簡(jiǎn)單,不會(huì )再費勁的編寫(xiě)MapReduce程序。有的人說(shuō)Pig那?它和Pig差不多掌握一個(gè)就可以了。 ?
Oozie:既然學(xué)會(huì )Hive了,我相信你一定需要這個(gè)東西,它可以幫你管理你的Hive或者M(jìn)apReduce、Spark腳本,還能檢查你的程序是否執行正確,出錯了給你發(fā)報警并能幫你重試程序,最重要的是還能幫你配置任務(wù)的依賴(lài)關(guān)系。我相信你一定會(huì )喜歡上它的,不然你看著(zhù)那一大堆腳本,和密密麻麻的crond是不是有種想屎的感覺(jué)。 ?
Hbase:這是Hadoop生態(tài)體系中的NOSQL數據庫,他的數據是按照key和value的形式存儲的并且key是*的,所以它能用來(lái)做數據的排重,它與MYSQL相比能存儲的數據量大很多。所以他常被用于大數據處理完成之后的存儲目的地。 ?
Kafka:這是個(gè)比較好用的隊列工具,隊列是干嗎的?排隊買(mǎi)票你知道不?數據多了同樣也需要排隊處理,這樣與你協(xié)作的其它同學(xué)不會(huì )叫起來(lái),你干嗎給我這么多的數據(比如好幾百G的文件)我怎么處理得過(guò)來(lái),你別怪他因為他不是搞大數據的,你可以跟他講我把數據放在隊列里你使用的時(shí)候一個(gè)個(gè)拿,這樣他就不在抱怨了馬上灰流流的去優(yōu)化他的程序去了,因為處理不過(guò)來(lái)就是他的事情。而不是你給的問(wèn)題。當然我們也可以利用這個(gè)工具來(lái)做線(xiàn)上實(shí)時(shí)數據的入庫或入HDFS,這時(shí)你可以與一個(gè)叫Flume的工具配合使用,它是專(zhuān)門(mén)用來(lái)提供對數據進(jìn)行簡(jiǎn)單處理,并寫(xiě)到各種數據接受方(比如Kafka)的。 ?
Spark:它是用來(lái)彌補基于MapReduce處理數據速度上的缺點(diǎn),它的特點(diǎn)是把數據裝載到內存中計算而不是去讀慢的要死進(jìn)化還特別慢的硬盤(pán)。特別適合做迭代運算,所以算法流們特別稀飯它。它是用scala編寫(xiě)的。Java語(yǔ)言或者Scala都可以操作它,因為它們都是用JVM的。 ?