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

先看再點贊,給本身一點思考的時間,微信搜索【 沉默王二】關注這個有顏值卻僞裝靠才華苟且的程序員。
本文  GitHub  github.com/itwanger 已收錄,裏面還有一線大廠整理的面試題,以及個人系列文章。

題目是一名叫「大相徑庭」的同窗私信個人一個問題,原話是,「搞大數據,java 須要掌握哪些技術點?」,我稍微調整了一下。必須得認可一點,我本人沒有搞過大數據,所在這方面的經驗爲零。java

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

幸虧我身邊有一些朋友是作大數據的,我能夠向他們請教,瞭解清楚後,我如今就把他們給個人建議整理一下發出來,但願給有需求的同窗們一點幫助。程序員

0一、大數據的就業方向有哪些?

現實點,咱們掌握任何技能都是爲了就業,爲了可以找份工做餬口;立志不打工的同窗們請繞行哈。github

那大數據的就業方向都有哪些呢?面試

  • 大數據工程師
  • 大數據科學家
  • 數據分析師

那針對這些不一樣的就業方向,都須要哪些技能呢?咱們來一一的分析下。算法

0二、大數據工程師的技能要求

大數據工程師的門檻相對其餘兩個較低一些,因此同窗們能夠重點關注一下這個方向。數據庫

先說一些必備的技能吧。編程

  • 對 Java 虛擬機有着深刻的研究,推薦書籍,周志明的《深刻理解 Java 虛擬機》。
  • 對 Java 併發掌握得很透徹,推薦書籍,《Java 併發編程實戰》。
  • 掌握 Hadoop。Hadoop 是一款支持數據密集型分佈式應用程序並以 Apache 2.0 許可協議發佈的開源軟件框架,可使應用程序與成千上萬的獨立計算的電腦和 PB 級的數據鏈接起來,整個 Hadoop 「平臺」還包括 MapReduce、Hadoop 分佈式文件系統(HDFS)。
  • 掌握 HBase。HBase 是一個開源的非關係型分佈式數據庫,是 Hadoop 項目的一部分,運行於 HDFS 文件系統之上,對稀疏文件提供極高的容錯率。
  • 掌握 Hive。Hive 是一個創建在 Hadoop 架構之上的數據倉庫,可以提供數據的精煉,查詢和分析。
  • 掌握 Kafka。Kafka 的目標是爲處理實時數據提供一個統1、高吞吐、低延遲的平臺。
  • 掌握 Storm。Storm 是一個分佈式計算框架,使用用戶建立的「管」和「螺栓」來定義信息源和操做,容許批量、分佈式處理流式數據。
  • 瞭解 Scala。Scala 是一門多範式的編程語言,設計初衷是要集成面向對象編程和函數式編程的各類特性。能夠和 Java 兼容,運行在 Java 虛擬機上。
  • 掌握 Spark。Spark 是一個開源集羣運算框架,相對於 Hadoop 的 MapReduce 會在運行完工做後將中介數據存放到磁盤中,Spark 使用了存儲器內運算技術,能在數據還沒有寫入硬盤時即在存儲器內分析運算。
  • 會用 Linux。推薦書籍,鳥哥的《Linux 私房菜》。

再來講一些高階的技能吧。微信

  • 會用 Python。
  • 會用 R 語言。
  • 精通算法和數據結構。

0三、大數據科學家的技能要求

「科學家」,這個 title 聽起來就很牛逼,不會出乎同窗們的意料,我小時候的夢想之一除了成爲一名做家以外,就是成爲一名「科學家」。數據結構

那大數據科學家,要求的技能就會超出絕大多數普通人的能力。首先,要對「統計機器學習方法」有着很深刻的研究,既要會預測,還要能解釋爲何要這樣預測,對吧?

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

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

很少說了,這方面的要求很是高,最起碼也得考個研究生吧。

0四、數據分析師的技能要求

數據分析也能夠細分爲兩個領域,一個相似產品經理,更注重業務,對業務能力要求比較高;一個偏向數據挖掘,更注重技術,對算法和數據結構要求比較高。

那不論是產品經理仍是作數據挖掘,SQL 是必知必會的,由於數據分析師天天都要處理海量的數據,而這些數據來自哪呢?就是數據庫。那怎麼把數據從數據庫中取出來呢?SQL 語句(select * from xxx,哈哈),別無其餘。

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

固然了,作數據分析最好的編程語言是 R 語言或者 Python,因此還須要學習一下這兩門語言。不過,有了 Java 做爲基礎,學 Python 就會更容易些,由於 Python 自己的語言更簡潔。(R 語言主要用於統計分析、繪圖、數據挖掘)

推薦兩本書吧,《深刻淺出數據分析》和《精益數據分析》。

0五、最後

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

執行力,很重要,對吧?


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

注:若是文章有任何問題,歡迎絕不留情地指正。

若是你以爲文章對你有些幫助,歡迎微信搜索「沉默王二」第一時間閱讀;本文 GitHub github.com/itwanger 已收錄,歡迎 star。

相關文章
相關標籤/搜索