搞大資料,Java 工程師需要掌握哪些知識?

沉默王二發表於2020-08-06

先看再點贊,給自己一點思考的時間,微信搜尋【沉默王二】關注這個有顏值卻假裝靠才華苟且的程式設計師。
本文 GitHub github.com/itwanger 已收錄,裡面還有一線大廠整理的面試題,以及我的系列文章。

題目是一名叫“截然不同”的同學私信我的一個問題,原話是,“搞大資料,java 需要掌握哪些技術點?”,我稍微調整了一下。必須得承認一點,我本人沒有搞過大資料,所在這方面的經驗為零。

但同學既然問了,我們就不能假裝不知道啊,雖然真的是不知道。但要變強,就必須無所畏懼,迎難而上,對吧?

幸好我身邊有一些朋友是做大資料的,我可以向他們請教,瞭解清楚後,我現在就把他們給我的建議整理一下發出來,希望給有需求的同學們一點幫助。

01、大資料的就業方向有哪些?

現實點,我們掌握任何技能都是為了就業,為了能夠找份工作餬口;立志不打工的同學們請繞行哈。

那大資料的就業方向都有哪些呢?

  • 大資料工程師

  • 大資料科學家

  • 資料分析師

那針對這些不同的就業方向,都需要哪些技能呢?我們來一一的分析下。

02、大資料工程師的技能要求

大資料工程師的門檻相對其他兩個較低一些,所以同學們可以重點關注一下這個方向。

先說一些必備的技能吧。

  • 對 Java 虛擬機器有著深入的研究,推薦書籍,周志明的《深入理解 Java 虛擬機器》。

  • 對 Java 併發掌握得很透徹,推薦書籍,《Java 併發程式設計實戰》。

  • 掌握 Hadoop。Hadoop 是一款支援資料密集型分散式應用程式並以 Apache 2.0 許可協議釋出的開源軟體框架,可以使應用程式與成千上萬的獨立計算的電腦和 PB 級的資料連線起來,整個 Hadoop “平臺”還包括 MapReduce、Hadoop 分散式檔案系統(HDFS)。

  • 掌握 HBase。HBase 是一個開源的非關係型分散式資料庫,是 Hadoop 專案的一部分,執行於 HDFS 檔案系統之上,對稀疏檔案提供極高的容錯率。

  • 掌握 Hive。Hive 是一個建立在 Hadoop 架構之上的資料倉儲,能夠提供資料的精煉,查詢和分析。

  • 掌握 Kafka。Kafka 的目標是為處理實時資料提供一個統一、高吞吐、低延遲的平臺。

  • 掌握 Storm。Storm 是一個分散式計算框架,使用使用者建立的“管”和“螺栓”來定義資訊源和操作,允許批量、分散式處理流式資料。

  • 瞭解 Scala。Scala 是一門多正規化的程式語言,設計初衷是要整合物件導向程式設計和函數語言程式設計的各種特性。可以和 Java 相容,執行在 Java 虛擬機器上。

  • 掌握 Spark。Spark 是一個開源叢集運算框架,相對於 Hadoop 的 MapReduce 會在執行完工作後將中介資料存放到磁碟中,Spark 使用了儲存器內運算技術,能在資料尚未寫入硬碟時即在儲存器內分析運算。

  • 會用 Linux。推薦書籍,鳥哥的《Linux 私房菜》。

再來說一些高階的技能吧。

  • 會用 Python。

  • 會用 R 語言。

  • 精通演算法和資料結構。

03、大資料科學家的技能要求

“科學家”,這個 title 聽起來就很牛逼,不會出乎同學們的意料,我小時候的夢想之一除了成為一名作家之外,就是成為一名“科學家”。

那大資料科學家,要求的技能就會超出絕大多數普通人的能力。首先,要對“統計機器學習方法”有著很深入的研究,既要會預測,還要能解釋為什麼要這樣預測,對吧?

如果要預測股票是漲還是跌,就必須得有一套可以解釋給客戶聽的理論,還要有一套預測方法,讓程式能夠按照這個方法去執行,並得出預期的結論。

現如今,資料已經不值錢了,哪裡都是大量的資料,值錢的是通過對這些資料進行分析,得出指導性的建議——這就要求科學家要有資料處理的能力。

不多說了,這方面的要求非常高,最起碼也得考個研究生吧。

04、資料分析師的技能要求

資料分析也可以細分為兩個領域,一個類似產品經理,更注重業務,對業務能力要求比較高;一個偏向資料探勘,更注重技術,對演算法和資料結構要求比較高。

那不管是產品經理還是做資料探勘,SQL 是必知必會的,因為資料分析師每天都要處理海量的資料,而這些資料來自哪呢?就是資料庫。那怎麼把資料從資料庫中取出來呢?SQL 語句(select * from xxx,哈哈),別無其他。

那還需要什麼技能呢?統計學基礎,對,沒錯,資料和時間的關係,資料的動態分佈,資料的最大值、最小值、平均值,這些都需要一定的統計學基礎。

當然了,做資料分析最好的程式語言是 R 語言或者 Python,所以還需要學習一下這兩門語言。不過,有了 Java 作為基礎,學 Python 就會更容易些,因為 Python 本身的語言更簡潔。(R 語言主要用於統計分析、繪圖、資料探勘)

推薦兩本書吧,《深入淺出資料分析》和《精益資料分析》。

05、最後

好了,我已經把要學習的技能告訴同學們了,接下來,就靠同學們自己的修行了。看書,或者網上找資料(按照關鍵字去搜尋),都可以,關鍵就看你願不願意沉下心,去花時間鑽研了。

執行力,很重要,對吧?


我是沉默王二,一枚有顏值卻假裝靠才華苟且的程式設計師。關注即可提升學習效率,別忘了三連啊,點贊、收藏、留言,我不挑,奧利給?

注:如果文章有任何問題,歡迎毫不留情地指正。

如果你覺得文章對你有些幫助,歡迎微信搜尋「沉默王二」第一時間閱讀,回覆關鍵字「小白」可以免費獲取我肝了 4 萬+字的 《Java 小白從入門到放肆》2.0 版;本文 GitHub github.com/itwanger 已收錄,歡迎 star。

相關文章