大數據學習計劃

轉發文章
做者:勾滿譽
連接:https://www.zhihu.com/question/52187221/answer/129439263
來源:知乎
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。


若是你畢業了, 去個什麼公司,應聘個「大數據開發工程師」什麼的,咱們來看看職位要求是什麼:

崗位職責:java

一、負責數據分析、監控、安全、風控等平臺設計與開發python

二、責基於spark平臺的用戶行爲分析、實時業務數據的開發linux

三、採用統計分析、數據建模、數據挖掘等方法,提供有價值的數據、模型、算法支持算法


崗位要求:shell

一、大學本科學歷,3年及以上相關工做經驗數據庫

二、熟悉java/scala的一種開發語言vim

三、熟悉spark/hadoop生態系統緩存

四、熟悉shell或python腳本安全

五、有數據挖掘、機器學習方面的項目經驗者優先bash

六、熟悉Redis、MongoDB、HBase等NOSQL數據庫

七、良好的溝通與技術學習能力,對開源技術充滿熱情


看到沒?


大數據開發一共幾個流程,大概歸納起來有:


收集、清洗、數倉(建模)、OLAP、可視化


這裏邊:


收集通常的技術是:Kafka、Flume、高性能HTTP開發(可能)、Avro協議(可能)、Thrift協議(可能),取決於所在公司的技術棧。


清洗:Spark、HiveSQL/SparkSQL、MapReduce(已通過時)


存儲:HDFS、Alluxio(分佈式內存存儲)、Redis(高速緩存)、mongoDB(文檔型數據庫)...


流式計算:Spark Streaming / Storm


數倉建模:Hive、MongoDB、HBase


OLAP:MySQL(經常使用),PostgreSQL(GreenPlum)MyCAT(小衆)...


數據可視化:通常來講這活不歸你管, 技術有 echarts.js hicharts.js d3.js ...


看眼花了吧?


其實很好理解, 從上到下就是:數據要怎麼存, 數據要怎麼查...


你須要學的是:


計算機體系基礎: 內存、CPU、指令、等等這些概念,得有個感受,否則別人一說,你都不知道咋回事,尷尬了。看《深刻理解計算機系統》。


網絡基礎: 這個我還真不知道有什麼書, 《TCP/IP詳解》有點深了,不過你有時間,慢慢啃下來挺好, 並且第一本就夠用,書也不厚。


數據庫基礎:RMDBS裏的MySQL其實我不推薦,可是這玩意已經爛大街了,是個公司就用,不學也得學。postgreSQL很不錯,可是用的人少。




Java系的語言你必須得會, 重要的就是Java和Scala, Java用來作傳統的開發(你總要寫幾個接口, 這個時候最經常使用的就是SpringMVC/Mybatis,這倆兄弟玩明白就好了, 可是什麼J2EE,什麼Hibernate,什麼HTML5,跟你一點關係也!沒!有!)。


Scala是我特別推崇的一門語言, 靈活、高效, Java搞懂了就把它也學了,之後寫Spark,甚至用Play寫Web,都很爽。


Python是必學的一門語言, 靈活的腳本, 之後想早點下班回家,少不了它。


Hadoop生態體系你必須得懂, 不須要一個組件一個組件的文檔去看, 先看個大概,知道啥玩意是幹啥的, 而後用的時候再去看文檔。 Hadoop想本身裝是有點蛋疼,跟你導師申請個阿里雲幾臺機, 慢慢折騰去吧。


哦對了, 你想折騰Hadoop,Linux的基礎必須得學,至少Shell得用的溜溜的,否則hadoop你怎麼裝... cd / mv/ cp/ mkdir / chmod / ls / ssh / touch / vim / awk / sed / ifconfig / du / df / 這亂七八糟一大堆命令,一個一個學了吧, linux的各類概念,文件、管道、bash、配置,你得整懂吧?學吧!趁着研究生時間多,短投資大回報!


做爲研究生,建議你多看一看機器學習,說到底大數據仍是一個「基礎設施」,但要創造價值,還得靠機器學習(數據挖掘的意思就是 機器學習 on 大數據)。


逼逼了這麼多,頭緒也比較亂(誰讓我剛起牀呢!), 照着我說的這些關鍵詞,一個一個技術的瞭解吧,哪一個不懂盡能夠私信我

 
哦對了,買個Mac,linux環境,還能裝b,另外遊戲就跟你告別了,你就能夠好好學習了。:)
相關文章
相關標籤/搜索