大數(shù)據最佳學習路線總結

一坑鱼,題記

要說當下IT行業(yè)什么最火?ABC無出其右絮缅。所謂ABC者鲁沥,AI + Big Data + Cloud也,即人工智能耕魄、大數(shù)據和云計算(云平臺)画恰。每個領域目前都有行業(yè)領袖在引領前行,今天我們來討論下大數(shù)據Big Data這個方向吸奴。

二允扇,大數(shù)據里面的角色

角色一:大數(shù)據工程

大數(shù)據工程需要解決數(shù)據的定義缠局、收集、計算與保存的工作考润,因此大數(shù)據工程師們在設計和部署這樣的系統(tǒng)時首要考慮的是數(shù)據高可用的問題狭园,即大數(shù)據工程系統(tǒng)需要實時地為下游業(yè)務系統(tǒng)或分析系統(tǒng)提供數(shù)據服務;

角色二:大數(shù)據分析

大數(shù)據分析角色定位于如何利用數(shù)據——即從大數(shù)據工程系統(tǒng)中接收到數(shù)據之后如何為企業(yè)或組織提供有產出的數(shù)據分析糊治,并且確實能夠幫助到公司進行業(yè)務改善或提升服務水平妙啃,所以對于大數(shù)據分析師來說,他們首要解決的問題是發(fā)現(xiàn)并利用數(shù)據的價值俊戳,具體可能包括:趨勢分析揖赴、模型建立以及預測分析等。

這兩類角色相互依存但又獨立運作抑胎,何意燥滑?沒有大數(shù)據工程,大數(shù)據分析便無從談起阿逃;但倘若沒有大數(shù)據分析铭拧,我也實在想不出大數(shù)據工程存在的理由。這就類似于結婚和談戀愛——戀愛的目的是為了結婚恃锉,且不以結婚為目的的談戀愛都是耍流氓搀菩。

簡單總結一下,大數(shù)據工程角色需要考慮數(shù)據的收集破托、計算(或是處理)和保存肪跋;大數(shù)據分析角色則是執(zhí)行數(shù)據的高級計算。

三土砂,大數(shù)據工程師

針對角色一:大數(shù)據工程說州既,對應的工作崗位就叫大數(shù)據工程師,對于大數(shù)據工程師而言萝映,您至少要掌握以下技能:

linux基礎

因為大數(shù)據體系吴叶,基本都是開源軟件,這些開源軟件都是在開源的linux系統(tǒng)上運行的序臂,所以你必須會基本的linux操作蚌卤,比如用戶管理,權限奥秆,shell編程之類的

一門JVM系語言:

當前大數(shù)據生態(tài)JVM系語言類的比重極大逊彭,某種程度上說是壟斷也不為過。這里我推薦大家學習Java或Scala吭练,至于Clojure這樣的語言上手不易诫龙,其實并不推薦大家使用析显。另外鲫咽,如今是“母以子貴”的年代签赃,某個大數(shù)據框架會帶火它的編程語言的流行,比如Docker之于Go分尸、Kafka之于Scala锦聊。

因此這里建議您至少要精通一門JVM系的語言。值得一提的箩绍,一定要弄懂這門語言的多線程模型和內存模型孔庭,很多大數(shù)據框架的處理模式其實在語言層面和多線程處理模型是類似的,只是大數(shù)據框架把它們引申到了多機分布式這個層面材蛛。

建議:學習Java或Scala

計算處理框架:

嚴格來說圆到,這分為離線批處理和流式處理。流式處理是未來的趨勢卑吭,建議大家一定要去學習芽淡;而離線批處理其實已經快過時了,它的分批處理思想無法處理無窮數(shù)據集豆赏,因此其適用范圍日益縮小挣菲。事實上,Google已經在公司內部正式廢棄了以MapReduce為代表的離線處理掷邦。

因此如果要學習大數(shù)據工程白胀,掌握一門實時流式處理框架是必須的。當下主流的框架包括:Apache Samza, Apache Storm, Apache Spark Streaming以及最近一年風頭正勁的Apache Flink抚岗。當然Apache Kafka也推出了它自己的流式處理框架:Kafka Streams

建議:學習Flink或杠、Spark Streaming或Kafka Streams中的一個。

分布式存儲框架

雖說MapReduce有些過時了宣蔚,但Hadoop的另一個基石HDFS依然堅挺廷痘,并且是開源社區(qū)最受歡迎的分布式存儲,絕對您花時間去學習件已。

資源調度框架:

Docker可是整整火了最近一兩年笋额。各個公司都在發(fā)力基于Docker的容器解決方案,最有名的開源容器調度框架就是K8S了篷扩,但同樣著名的還有Hadoop的YARN和Apache Mesos兄猩。后兩者不僅可以調度容器集群,還可以調度非容器集群鉴未,非常值得我們學習枢冤。

分布式協(xié)調框架:

有一些通用的功能在所有主流大數(shù)據分布式框架中都需要實現(xiàn),比如服務發(fā)現(xiàn)铜秆、領導者選舉淹真、分布式鎖、KV存儲等连茧。這些功能也就催生了分布式協(xié)調框架的發(fā)展核蘸。最古老也是最有名的當屬Apache Zookeeper了巍糯,新一些的包括Consul,etcd等客扎。學習大數(shù)據工程祟峦,分布式協(xié)調框架是不能不了解的, 某種程度上還要深入了解徙鱼。

列式存儲數(shù)據庫:

曾經花了很長的時間學習Oracle宅楞,但不得不承認當下關系型數(shù)據庫已經慢慢地淡出了人們的視野,有太多的方案可以替代rdbms了袱吆。人們針對行式存儲不適用于大數(shù)據ad-hoc查詢這種弊端開發(fā)出了列式存儲厌衙,典型的列式存儲數(shù)據庫就是開源社區(qū)的HBASE。

消息隊列:

大數(shù)據工程處理中消息隊列作為“削峰填谷”的主力系統(tǒng)是必不可少的绞绒,當前該領域內的解決方案有很多迅箩,包括ActiveMQ,Kafka等处铛。國內阿里也開源了RocketMQ饲趋。這其中的翹楚當屬Apache Kafka了。Kafka的很多設計思想都特別契合分布流式數(shù)據處理的設計理念撤蟆。這也難怪奕塑,Kafka的原作者Jay Kreps可是當今實時流式處理方面的頂級大神。

建議:學習Kafka家肯,不僅僅好找工作(幾乎所有大數(shù)據招聘簡歷都要求會Kafka:-) )龄砰,還能觸類旁通進一步理解基于備份日志方式的數(shù)據處理范型

四,大數(shù)據分析師Or數(shù)據科學家

針對角色二:大數(shù)據分析讨衣,對應的工作崗位就叫大數(shù)據分析師或者數(shù)據科學家换棚,作為數(shù)據科學家的我們必須要掌握以下技能:

數(shù)學功底:

微積分是嚴格要掌握的。不一定要掌握多元微積分反镇,但一元微積分是必須要熟練掌握并使用的固蚤。另外線性代數(shù)一定要精通,特別是矩陣的運算歹茶、向量空間夕玩、秩等概念。當前機器學習框架中很多計算都需要用到矩陣的乘法惊豺、轉置或是求逆燎孟。雖然很多框架都直接提供了這樣的工具,但我們至少要了解內部的原型原理尸昧,比如如何高效判斷一個矩陣是否存在逆矩陣并如何計算等揩页。

重溫同濟版《高等數(shù)學》,有條件可以去Coursea學習賓夕法尼亞大學的微積分課程

推薦學習Strang的線性代數(shù):《Introduction to Linear Algebra》——這是最經典的教材烹俗,沒有之一爆侣!

數(shù)理統(tǒng)計

概率和各種統(tǒng)計學方法要做到基本掌握萍程,比如貝葉斯概率如何計算?概率分布是怎么回事累提?雖不要求精通,但對相關背景和術語一定要了解

找一本《概率論》重新學習下

交互式數(shù)據分析框架:

這里并不是指SQL或數(shù)據庫查詢磁浇,而是像Apache Hive或Apache Kylin這樣的分析交互框架斋陪。開源社區(qū)中有很多這樣類似的框架,可以使用傳統(tǒng)的數(shù)據分析方式對大數(shù)據進行數(shù)據分析或數(shù)據挖掘置吓。

有過使用經驗的是Hive和Kylin无虚。不過Hive特別是Hive1是基于MapReduce的,性能并非特別出色衍锚,而Kylin采用數(shù)據立方體的概念結合星型模型友题,可以做到很低延時的分析速度,況且Kylin是第一個研發(fā)團隊主力是中國人的Apache孵化項目戴质,因此日益受到廣泛的關注度宦。

首先學習Hive,有時間的話了解一下Kylin以及背后的數(shù)據挖掘思想告匠。

機器學習框架:

機器學習當前真是火爆宇宙了戈抄,人人都提機器學習和AI,但筆者一直認為機器學習恰似幾年前的云計算一樣后专,目前雖然火爆划鸽,但沒有實際的落地項目,可能還需要幾年的時間才能逐漸成熟戚哎。

不過在現(xiàn)在就開始儲備機器學習的知識總是沒有壞處的裸诽。說到機器學習的框架,大家耳熟能詳?shù)挠泻芏喾N, 信手拈來的就包括TensorFlow型凳、Caffe8丈冬、Keras9、CNTK10甘畅、Torch711等殷蛇,其中又以TensorFlow領銜。

當前建議大家選取其中的一個框架進行學習橄浓,但以我對這些框架的了解粒梦,這些框架大多很方便地封裝了各種機器學習算法提供給用戶使用,但對于底層算法的了解其實并沒有太多可學習之處荸实。因此還是建議可以從機器學習算法的原理來進行學習匀们,比如:

目前機器學習領域最NB的入門課程:吳恩達博士的Machine Learning


想學習大數(shù)據或者想學習大數(shù)據的朋友,我整理了一套大數(shù)據的學習視頻這里免費分享給大家准给,從入門到實戰(zhàn)都有泄朴,大家可以加微信:Lxiao_28獲取重抖,還可以拉微信群交流學習!(備注領取資料祖灰,真實有效)钟沛。


五,大數(shù)據必備技能詳細

因為本身是偏Java應用方向的局扶,所以整理的大數(shù)據必備技能詳細恨统,也是偏向于大數(shù)據工程師方向∪瑁總共分為五大部分畜埋,分別是:

離線計算Hadoop

流式計算Storm

內存計算Spark

機器學習算法


linux操作基礎

linux系統(tǒng)簡介與安裝

linux常用命令–文件操作

linux常用命令–用戶管理與權限

linux常用命令–系統(tǒng)管理

linux常用命令–免密登陸配置與網絡管理

linux上常用軟件安裝

linux本地yum源配置及yum軟件安裝

linux防火墻配置

linux高級文本處理命令cut、sed畴蒲、awk

linux定時任務crontab


shell編程

shell編程–基本語法

shell編程–流程控制

shell編程–函數(shù)

shell編程–綜合案例–自動化部署腳本


內存數(shù)據庫redis

redis和nosql簡介

redis客戶端連接

redis的string類型數(shù)據結構操作及應用-對象緩存

redis的list類型數(shù)據結構操作及應用案例-任務調度隊列

redis的hash及set數(shù)據結構操作及應用案例-購物車

redis的sortedset數(shù)據結構操作及應用案例-排行榜


布式協(xié)調服務zookeeper

zookeeper簡介及應用場景

zookeeper集群安裝部署

zookeeper的數(shù)據節(jié)點與命令行操作

zookeeper的java客戶端基本操作及事件監(jiān)聽

zookeeper核心機制及數(shù)據節(jié)點

zookeeper應用案例–分布式共享資源鎖

zookeeper應用案例–服務器上下線動態(tài)感知

zookeeper的數(shù)據一致性原理及l(fā)eader選舉機制


java高級特性增強

Java多線程基本知識

Java同步關鍵詞詳解

java并發(fā)包線程池及在開源軟件中的應用

Java并發(fā)包消息隊里及在開源軟件中的應用

Java JMS技術

Java動態(tài)代理反射

輕量級RPC框架開發(fā)


RPC原理學習

Nio原理學習

Netty常用API學習

輕量級RPC框架需求分析及原理分析

輕量級RPC框架開發(fā)


離線計算Hadoop

hadoop快速入門

hadoop背景介紹

分布式系統(tǒng)概述

離線數(shù)據分析流程介紹


集群搭建

集群使用初步

HDFS增強

HDFS的概念和特性

HDFS的shell(命令行客戶端)操作

HDFS的工作機制

NAMENODE的工作機制

java的api操作

案例1:開發(fā)shell采集腳本


MAPREDUCE詳解

自定義hadoop的RPC框架

Mapreduce編程規(guī)范及示例編寫

Mapreduce程序運行模式及debug方法

mapreduce程序運行模式的內在機理

mapreduce運算框架的主體工作流程

自定義對象的序列化方法

MapReduce編程案例


MAPREDUCE增強

Mapreduce排序

自定義partitioner

Mapreduce的combiner

mapreduce工作機制詳解


MAPREDUCE實戰(zhàn)

maptask并行度機制-文件切片

maptask并行度設置

倒排索引

共同好友


federation介紹和hive使用

Hadoop的HA機制

HA集群的安裝部署

集群運維測試之Datanode動態(tài)上下線

集群運維測試之Namenode狀態(tài)切換管理

集群運維測試之數(shù)據塊的balance

HA下HDFS-API變化

hive簡介

hive架構

hive安裝部署

hvie初使用


hive增強和flume介紹

HQL-DDL基本語法

HQL-DML基本語法

HIVE的join

HIVE 參數(shù)配置

HIVE 自定義函數(shù)和Transform

HIVE 執(zhí)行HQL的實例分析

HIVE最佳實踐注意點

HIVE優(yōu)化策略

HIVE實戰(zhàn)案例

Flume介紹

Flume的安裝部署

案例:采集目錄到HDFS

案例:采集文件到HDFS


流式計算Storm

Storm從入門到精通

Storm是什么

Storm架構分析

Storm架構分析

Storm編程模型悠鞍、Tuple源碼、并發(fā)度分析

Storm WordCount案例及常用Api分析

Storm集群部署實戰(zhàn)

Storm+Kafka+Redis業(yè)務指標計算

Storm源碼下載編譯

Strom集群啟動及源碼分析

Storm任務提交及源碼分析

Storm數(shù)據發(fā)送流程分析

Storm通信機制分析

Storm消息容錯機制及源碼分析

Storm多stream項目分析

編寫自己的流式任務執(zhí)行框架


Storm上下游及架構集成

消息隊列是什么

Kakfa核心組件

Kafka集群部署實戰(zhàn)及常用命令

Kafka配置文件梳理

Kakfa JavaApi學習

Kafka文件存儲機制分析

Redis基礎及單機環(huán)境部署

Redis數(shù)據結構及典型案例

Flume快速入門

Flume+Kafka+Storm+Redis整合


內存計算Spark


scala編程

scala編程介紹

scala相關軟件安裝

scala基礎語法

scala方法和函數(shù)

scala函數(shù)式編程特點

scala數(shù)組和集合

scala編程練習(單機版WordCount)

scala面向對象

scala模式匹配

actor編程介紹

option和偏函數(shù)

實戰(zhàn):actor的并發(fā)WordCount

柯里化

隱式轉換


AKKA與RPC

Akka并發(fā)編程框架

實戰(zhàn):RPC編程實戰(zhàn)

Spark快速入門

spark介紹

spark環(huán)境搭建

RDD簡介

RDD的轉換和動作

實戰(zhàn):RDD綜合練習

RDD高級算子

自定義Partitioner

實戰(zhàn):網站訪問次數(shù)

廣播變量

實戰(zhàn):根據IP計算歸屬地

自定義排序

利用JDBC RDD實現(xiàn)數(shù)據導入導出

WorldCount執(zhí)行流程詳解


RDD詳解

RDD依賴關系

RDD緩存機制

RDD的Checkpoint檢查點機制

Spark任務執(zhí)行過程分析

RDD的Stage劃分

Spark-Sql應用

Spark-SQL

Spark結合Hive

DataFrame

實戰(zhàn):Spark-SQL和DataFrame案例


SparkStreaming應用實戰(zhàn)

Spark-Streaming簡介

Spark-Streaming編程

實戰(zhàn):StageFulWordCount

Flume結合Spark Streaming

Kafka結合Spark Streaming

窗口函數(shù)

ELK技術棧介紹

ElasticSearch安裝和使用

Storm架構分析

Storm編程模型模燥、Tuple源碼咖祭、并發(fā)度分析

Storm WordCount案例及常用Api分析


Spark核心源碼解析

Spark源碼編譯

Spark遠程debug

Spark任務提交行流程源碼分析

Spark通信流程源碼分析

SparkContext創(chuàng)建過程源碼分析

DriverActor和ClientActor通信過程源碼分析

Worker啟動Executor過程源碼分析

Executor向DriverActor注冊過程源碼分析

Executor向Driver注冊過程源碼分析

DAGScheduler和TaskScheduler源碼分析

Shuffle過程源碼分析

Task執(zhí)行過程源碼分析


機器學習算法


python及numpy庫

機器學習簡介

機器學習與python

python語言–快速入門

python語言–數(shù)據類型詳解

python語言–流程控制語句

python語言–函數(shù)使用

python語言–模塊和包

phthon語言–面向對象

python機器學習算法庫–numpy

機器學習必備數(shù)學知識–概率論


常用算法實現(xiàn)

knn分類算法–算法原理

knn分類算法–代碼實現(xiàn)

knn分類算法–手寫字識別案例

lineage回歸分類算法–算法原理

lineage回歸分類算法–算法實現(xiàn)及demo

樸素貝葉斯分類算法–算法原理

樸素貝葉斯分類算法–算法實現(xiàn)

樸素貝葉斯分類算法–垃圾郵件識別應用案例

kmeans聚類算法–算法原理

kmeans聚類算法–算法實現(xiàn)

kmeans聚類算法–地理位置聚類應用

決策樹分類算法–算法原理

決策樹分類算法–算法實現(xiàn)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蔫骂,隨后出現(xiàn)的幾起案子心肪,更是在濱河造成了極大的恐慌,老刑警劉巖纠吴,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件硬鞍,死亡現(xiàn)場離奇詭異,居然都是意外死亡戴已,警方通過查閱死者的電腦和手機固该,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來糖儡,“玉大人伐坏,你說我怎么就攤上這事∥樟” “怎么了桦沉?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長金闽。 經常有香客問我纯露,道長,這世上最難降的妖魔是什么代芜? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任埠褪,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘钞速。我一直安慰自己贷掖,他們只是感情好,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布渴语。 她就那樣靜靜地躺著苹威,像睡著了一般。 火紅的嫁衣襯著肌膚如雪驾凶。 梳的紋絲不亂的頭發(fā)上牙甫,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天,我揣著相機與錄音狭郑,去河邊找鬼腹暖。 笑死汇在,一個胖子當著我的面吹牛翰萨,可吹牛的內容都是我干的。 我是一名探鬼主播糕殉,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼亩鬼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了阿蝶?” 一聲冷哼從身側響起雳锋,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎羡洁,沒想到半個月后玷过,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡筑煮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年辛蚊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片真仲。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡袋马,死狀恐怖,靈堂內的尸體忽然破棺而出秸应,到底是詐尸還是另有隱情虑凛,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布软啼,位于F島的核電站桑谍,受9級特大地震影響,放射性物質發(fā)生泄漏祸挪。R本人自食惡果不足惜霉囚,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盈罐,春花似錦榜跌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至票顾,卻和暖如春础浮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背奠骄。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工豆同, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人含鳞。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓影锈,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蝉绷。 傳聞我的和親對象是個殘疾皇子鸭廷,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內容