首先需要了解Java語言和Linux操作系統,這是學習大數據的基礎,學習的順序沒有先後。樓主JAVA畢業,無疑是壹個極好的開端和基石。可以說他贏在了起跑線上,接收和吸收大數據領域的知識會比普通人更加得心應手。
Java?只要懂壹些基礎,做大數據不需要很深的Java技術。學習java SE相當於學習大數據。基礎
Linux:因為大數據相關的軟件運行在Linux上,所以要把Linux學紮實。學好Linux對妳快速掌握大數據相關技術有很大的幫助,能讓妳更好的了解hadoop、hive、hbase、spark等大數據軟件的運行環境和網絡環境配置。,讓妳少踩很多坑,學會理解腳本,讓妳更容易理解和配置大數據集群。它還可以讓您在未來更快地學習新的大數據技術。
好了,說完了基礎,我們來說說需要學習哪些大數據技術,可以按照我寫的順序來學習。
Hadoop:這是壹個流行的大數據處理平臺,幾乎成了大數據的代名詞,所以這是必須的。Hadoop包括幾個組件:HDFS、MapReduce和YARN。HDFS是存儲數據的地方,就像我們電腦的硬盤壹樣。MapReduce處理和計算數據。它有壹個特點就是只要給定時間就可以運行所有的數據,但是時間可能不會很快,所以叫數據批處理。
記住這裏的學習可以作為妳學習大數據的壹個節點。
動物園管理員:這是靈丹妙藥。安裝Hadoop的HA時會用到,以後的Hbase也會用到。壹般用來存儲壹些合作信息,比較小,壹般不超過1M。所有使用它的軟件都依賴於它。對於我們個人來說,只需要正確安裝,讓它正常運行就可以了。
Mysql:我們已經學完了大數據的處理,接下來還要學習小數據的處理工具mysql數據庫,因為後面安裝hive的時候會用到。mysql需要掌握什麽水平?您可以在Linux上安裝它,運行它,配置簡單的權限,修改root的密碼,並創建壹個數據庫。這裏主要是學習SQL的語法,因為hive的語法和這個很像。
Sqoop:用於將數據從Mysql導入Hadoop。當然,妳也可以將Mysql數據表直接導出到壹個文件中,放在HDFS上,不用這個。當然,妳要註意Mysql在生產環境下使用的壓力。
Hive:這個東西是懂SQL語法的人的神器。它可以讓妳輕松處理大數據,妳也不用費勁去寫MapReduce程序了。有人說豬?簡直像豬壹樣。掌握壹個就好。
Oozie:既然妳已經學會了Hive,我肯定妳需要這個東西。它可以幫助妳管理妳的Hive或者MapReduce和Spark腳本,檢查妳的程序是否正確執行,如果出現問題會給妳報警,幫助妳重試程序,最重要的是,幫助妳配置任務依賴。我相信妳會喜歡的,不然妳看著那壹堆腳本和密密麻麻的crond就覺得自己是狗屎。
Hbase:這是Hadoop生態系統中的NOSQL數據庫。它的數據以鍵和值的形式存儲,鍵是唯壹的,所以可以用來復制數據。與MYSQL相比,它可以存儲更多的數據。因此,它通常用於大數據處理完成後的存儲目的地。
卡夫卡:這是壹個很好的排隊工具。排隊是為了什麽?排隊買票知道嗎?如果數據太多,還需要排隊處理,這樣其他和妳合作的同學就不會尖叫了。妳為什麽給我這麽多數據(例如,數百千兆字節的文件)?我該怎麽處理?不要因為他不處理大數據而責怪他。妳可以告訴他,我把數據放在隊列裏,妳用的時候壹個壹個拿,這樣他就不會抱怨了,馬上優化他的程序,因為不處理是他的事。不是妳問的問題。當然,我們也可以用這個工具把在線實時數據存入存儲器或HDFS。這時候可以配合壹個叫Flume的工具,專門用來提供簡單的數據處理,寫給各種數據接收者(比如卡夫卡)。
Spark:用來彌補基於MapReduce的數據處理速度的不足。它的特點是將數據加載到內存中進行計算,而不是讀取壹個慢到死,進化特別慢的硬盤。特別適合叠代運算,所以算法流特別稀飯。它是用scala寫的。Java語言或者Scala都可以操作,因為都用JVM。