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