{eval=Array;=+count(Array);}
Hadoop是目前被廣泛使用的大數(shù)據(jù)平臺(tái),Hadoop平臺(tái)主要有Hadoop Common、HDFS、Hadoop Yarn、Hadoop MapReduce和Hadoop Ozone。
Hadoop平臺(tái)目前被行業(yè)使用多年,有健全的生態(tài)和大量的應(yīng)用案例,同時(shí)Hadoop對硬件的要求比較低,非常適合初學(xué)者自學(xué)。目前很多商用大數(shù)據(jù)平臺(tái)也是基于Hadoop構(gòu)建的,所以Hadoop是大數(shù)據(jù)開發(fā)的一個(gè)重要內(nèi)容。
學(xué)習(xí)Hadoop開發(fā)需要有三個(gè)基礎(chǔ)知識(shí),下面進(jìn)行分別介紹:
第一:Linux操作系統(tǒng)知識(shí)。通常情況下,Hadoop平臺(tái)是構(gòu)建在Linux系統(tǒng)之上的,所以學(xué)習(xí)Hadoop首先要學(xué)習(xí)Linux操作系統(tǒng)的使用。目前比較流行的Linux操作系統(tǒng)包括CentOS和Ubuntu,這兩個(gè)Linux系列操作系統(tǒng)有廣泛的應(yīng)用場景。學(xué)習(xí)Linux并不復(fù)雜,通常情況下可以在虛擬機(jī)上完成,很多初學(xué)者都是在虛擬機(jī)上搭建一個(gè)偽分布式集群,然后完成Hadoop實(shí)驗(yàn)。
第二:編程語言。目前在Hadoop平臺(tái)下多采用Java和Python來完成程序的編寫,由于Hadoop本身是采用Java語言編寫的,所以在Hadoop平臺(tái)下采用Java語言是比較方便的選擇,Hadoop的官方demo往往也是采用Java語言實(shí)現(xiàn)的。Python語言由于比較簡單,同時(shí)Python有豐富的庫可以使用,所以目前使用Python完成Hadoop平臺(tái)的開發(fā)也是一個(gè)比較常見的選擇。另外,在Spark平臺(tái)下Scala也有廣泛的應(yīng)用。
第三:算法。大數(shù)據(jù)的核心就是數(shù)據(jù)價(jià)值化的過程,而算法設(shè)計(jì)則是數(shù)據(jù)價(jià)值化的基礎(chǔ)。因此,大數(shù)據(jù)平臺(tái)的開發(fā)離不開算法,要想學(xué)習(xí)Hadoop開發(fā)一定要有一個(gè)扎實(shí)的算法基礎(chǔ)。
Hadoop平臺(tái)自身有非常豐富的開發(fā)組件,所以學(xué)習(xí)Hadoop的過程還是比較漫長的,由于大數(shù)據(jù)開發(fā)有較強(qiáng)的場景特征,所以建議結(jié)合具體的場景來完成Hadoop平臺(tái)的學(xué)習(xí)。
大數(shù)據(jù)是我的主要研究方向之一,目前我也在帶大數(shù)據(jù)方向的研究生,我會(huì)陸續(xù)在頭條寫一些關(guān)于大數(shù)據(jù)方面的文章,感興趣的朋友可以關(guān)注我,相信一定會(huì)有所收獲。
如果有大數(shù)據(jù)方面的問題,也可以咨詢我。
謝謝!
我們都知道現(xiàn)在學(xué)習(xí)大數(shù)據(jù),Hadoop是其中一個(gè)必學(xué)的技術(shù),簡單來說,Hadoop是在分布式服務(wù)器集群上存儲(chǔ)海量數(shù)據(jù)并運(yùn)行分布式分析應(yīng)用的一種方法。那Hadoop該學(xué)習(xí)哪些內(nèi)容?需要了解什么呢?有Hadoop經(jīng)典學(xué)習(xí)資料嗎?
HDFS
HDFS(Hadoop Distributed File System,Hadoop分布式文件系統(tǒng)),它是一個(gè)高度容錯(cuò)性的系統(tǒng),適合部署在廉價(jià)的機(jī)器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問,適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序。
MapReduce
通俗說MapReduce是一套從海量源數(shù)據(jù)提取分析元素末后返回結(jié)果集的編程模型,將文件分布式存儲(chǔ)到硬盤是第一步,而從海量數(shù)據(jù)中提取分析我們需要的內(nèi)容就是MapReduce做的事了。
MapReduce的基本原理就是:將大的數(shù)據(jù)分析分成小塊逐個(gè)分析,然后再將提取出來的數(shù)據(jù)匯總分析,從而獲得我們想要的內(nèi)容。當(dāng)然怎么分塊分析,怎么做Reduce操作非常復(fù)雜,Hadoop已經(jīng)提供了數(shù)據(jù)分析的實(shí)現(xiàn),我們只需要編寫簡單的需求命令即可達(dá)成我們想要的數(shù)據(jù)。
關(guān)于Hadoop的使用方式:
感覺現(xiàn)在各個(gè)公司使用Hadoop的方式都不一樣,主要我覺得有兩種吧。
第一種是long running cluster形式,比如Yahoo,不要小看這個(gè)好像已經(jīng)沒什么存在感的公司,Yahoo可是Hadoop的元老之一。這種就是建立一個(gè)Data Center,然后有幾個(gè)上千Node的Hadoop Cluster一直在運(yùn)行。比較早期進(jìn)入Big Data領(lǐng)域的公司一般都在使用或者使用過這種方式。
另一種是只使用MapReduce類型。畢竟現(xiàn)在是Cloud時(shí)代,比如AWS的Elastic MapReduce。這種是把數(shù)據(jù)存在別的更便宜的地方,比如s3,自己的data center, sql database等等,需要分析數(shù)據(jù)的時(shí)候開啟一個(gè)Hadoop Cluster,Hive/Pig/Spark/Presto/Java分析完了就關(guān)掉。不用自己做Admin的工作,方便簡潔。
所以個(gè)人如果要學(xué)Hadoop的話我也建議第二種,AWS有免費(fèi)試用時(shí)間(但是EMR并不免費(fèi),所以不要建了幾千個(gè)Node一個(gè)月后發(fā)現(xiàn)破產(chǎn)了),可以在這上面學(xué)習(xí)。更重要的是你可以嘗試各種不同的配置對于任務(wù)的影響,比如不同的版本,不同的container size,memory大小等等,這對于學(xué)習(xí)Spark非常有幫助。
總的來說Hadoop適合應(yīng)用于大數(shù)據(jù)存儲(chǔ)和大數(shù)據(jù)分析的應(yīng)用,適合于服務(wù)器幾千臺(tái)到幾萬臺(tái)的集群運(yùn)行,支持PB級的存儲(chǔ)容量。Hadoop典型應(yīng)用有:搜索、日志處理、推薦系統(tǒng)、數(shù)據(jù)分析、視頻圖像分析、數(shù)據(jù)保存等。
大數(shù)據(jù)產(chǎn)業(yè)已進(jìn)入發(fā)展的“快車道”,急需大量優(yōu)秀的大數(shù)據(jù)人才作為后盾。能夠在大數(shù)據(jù)行業(yè)崛起的初期進(jìn)入到這個(gè)行業(yè)當(dāng)中來,才有機(jī)會(huì)成為時(shí)代的弄潮兒。千鋒大數(shù)據(jù)開發(fā)新進(jìn)企業(yè)級服務(wù)器實(shí)戰(zhàn)教學(xué),20周帶你一站式搞定匪夷所思的大數(shù)據(jù)開發(fā)技術(shù)。
接觸過Core Java,數(shù)據(jù)庫概念和任何Linux操作系統(tǒng)。(教程:http://codingdict.com/article/8105)
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答