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


先看再點贊,給自己一點思考的時間,微信搜索【沉默王二】關注這個有顏值卻假裝靠才華苟且的程序員。
本文 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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM