從0到1,成為大資料行業領袖

JAVA全棧發表於2018-03-26

目前最火的大資料,很多人想往大資料方向發展,想問該學哪些技術,學習路線是什麼樣的,覺得大資料很火,就業很好,薪資很高。如果自己很迷茫,為了這些原因想往大資料方向發展,也可以,那麼我就想問一下,你的專業是什麼,對於計算機/軟體,你的興趣是什麼?是計算機專業,對作業系統、硬體、網路、伺服器感興趣?是軟體專業,對軟體開發、程式設計、寫程式碼感興趣?還是數學、統計學專業,對資料和數字特別感興趣。

其實這就是想告訴你的大資料的三個發展方向,平臺搭建/優化/運維/監控、大資料開發/ 設計/ 架構、資料分析/挖掘。請不要問我哪個容易,哪個前景好,哪個錢多。

先扯一下大資料的4V特徵:

資料量大,TB->PB

資料型別繁多,結構化、非結構化文字、日誌、視訊、圖片、地理位置等;

商業價值高,但是這種價值需要在海量資料之上,通過資料分析與機器學習更快速的挖掘出來;

處理時效性高,海量資料的處理需求不再侷限在離線計算當中。

現如今,正式為了應對大資料的這幾個特點,開源的大資料框架越來越多,越來越強,先列舉一些常見的:

檔案儲存:Hadoop HDFS、Tachyon、KFS

離線計算:Hadoop MapReduce、Spark

流式、實時計算:Storm、Spark Streaming、S4、Heron

K-V、NOSQL資料庫:HBase、Redis、MongoDB

資源管理:YARN、Mesos

日誌收集:Flume、Scribe、Logstash、Kibana

訊息系統:Kafka、StormMQ、ZeroMQ、RabbitMQ

查詢分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid

分散式協調服務:Zookeeper

叢集管理與監控:Ambari、Ganglia、Nagios、Cloudera Manager

資料探勘、機器學習:Mahout、Spark MLLib

資料同步:Sqoop

任務排程:Oozie

眼花了吧,上面的有30多種吧,別說精通了,全部都會使用的,估計也沒幾個。就我個人而言,主要經驗是在第二個方向(開發/設計/架構),且聽聽我的建議吧,有安裝教程。

初識Hadoop

1.1 學會百度與Google

不論遇到什麼問題,先試試搜尋並自己解決。Google首選,翻不過去的,就用百度吧。

1.2 參考資料首選官方文件

特別是對於入門來說,官方文件永遠是首選文件。相信搞這塊的大多是文化人,英文湊合就行,實在看不下去的,請參考第一步。

1.3 先讓Hadoop跑起來

Hadoop可以算是大資料儲存和計算的開山鼻祖,現在大多開源的大資料框架都依賴Hadoop或者與它能很好的相容。

關於Hadoop,你至少需要搞清楚以下是什麼:

Hadoop 1.0、Hadoop 2.0

MapReduce、HDFS

NameNode、DataNode

JobTracker、TaskTracker

Yarn、ResourceManager、NodeManager

自己搭建Hadoop,請使用第一步和第二步,能讓它跑起來就行。建議先使用安裝包命令列安裝,不要使用管理工具安裝。另外:Hadoop1.0知道它就行了,現在都用Hadoop 2.0.

1.4 試試使用Hadoop

HDFS目錄操作命令;上傳、下載檔案命令;提交執行MapReduce示例程式;開啟Hadoop WEB介面,檢視Job執行狀態,檢視Job執行日誌。知道Hadoop的系統日誌在哪裡。

1.5 你該瞭解它們的原理了

MapReduce:如何分而治之;HDFS:資料到底在哪裡,什麼是副本;

Yarn到底是什麼,它能幹什麼;NameNode到底在幹些什麼;Resource Manager到底在幹些什麼;

1.6 自己寫一個MapReduce程式

請仿照WordCount例子,自己寫一個(照抄也行)WordCount程式,

打包並提交到Hadoop執行。你不會Java?Shell、Python都可以,有個東西叫Hadoop Streaming。如果你認真完成了以上幾步,恭喜你,你的一隻腳已經進來了。

大資料方向的工作目前分為三個主要方向:

01.大資料工程師

02.資料分析師

03.大資料科學家

04.其他(資料探勘本質算是機器學習,不過和資料相關,也可以理解為大資料的一個方向吧)

總結如下:

必須技能10條:

01.Java高階(虛擬機器、併發)

02.Linux 基本操作

03.Hadoop(此處為俠義概念單指HDFS+MapReduce+Yarn )

04.HBase(JavaAPI操作+Phoenix )

05.Hive(Hql基本操作和原理理解)

06.Kafka

07.Storm

08.Scala需要

09.Python

10.Spark (Core+sparksql+Spark streaming )

高階技能6條:

11.機器學習演算法以及mahout庫加MLlib

12.R語言

13.Lambda 架構

14.Kappa架構

15.Kylin

16.Aluxio

二、學習路徑

由於本人是從Java開發通過大概3個月的自學轉到大資料開發的。所以我主要分享一下自己的學習路勁。

第一階段:

01.Linux學習(跟鳥哥學就ok了)

02.Java 高階學習(《深入理解Java虛擬機器》、《Java高併發實戰》)

第二階段:

03.Hadoop (董西成的書)

04.HBase(《HBase權威指南》)

05.Hive(《Hive開發指南》)

06.Scala(《快學Scala》)

07.Spark (《Spark 快速大資料分析》)

08.Python (跟著廖雪峰的部落格學習就ok了)

第三階段:

對應技能需求,到網上多蒐集一些資料就ok了,

我把最重要的事情(要學什麼告訴你了),

剩下的就是你去搜集對應的資料學習就ok了

當然如果你覺得自己看書效率太慢,你可以網上搜集一些課程,跟著課程走也OK 。這個完全根據自己情況決定。如果看書效率不高就很網課,相反的話就自己看書。

三,學習資源推薦:

01.Apache 官網

02.Stackoverflow

04.github

03.Cloudra官網

04.Databrick官網

05.過往的記憶(技術部落格)

06.CSDN,51CTO

07.至於書籍噹噹一搜會有很多,其實內容都差不多。

最後但卻很重要一點:要多關注技術動向,持續學習。

對大資料感興趣的朋友可以關注一下我的微信公共號“程式設計師OfHome”下方掃掃可關注。

從0到1,成為大資料行業領袖

相關文章