大數據學習路線


前言

數據科學部為想從事大數據方向學習的小伙伴總結了一下大數據的學習路線,供大家學習參考。由於大數據是一個基礎門檻較高就業前景較好的學習方向。所以打算學習大數據的小伙伴要加油啦!

大數據學習路線:

首先我要了解大數據處理流程:

第一步:數據收集

第二部:數據存儲

第三步:數據分析

第四步:數據應用

數據收集

 

大數據處理的第一步是數據的收集。現在的中大型項目通常采用微服務架構進行分布式部署,所以數據的采集需要在多台服務器上進行,且采集過程不能影響正常業務的開展。基於這種需求,就衍生了多種日志收集工具,如 Flume Logstash等,它們都能通過簡單的配置完成復雜的數據收集和數據聚合。

 

數據存儲

 

收集到數據后,下一個問題就是:數據該如何進行存儲?我們通常熟知的就是把數據存入MySQLOracle等傳統的關系型數據庫,這些傳統的數據庫的特點是能夠快速存儲結構化的數據,並支持隨機訪問。但大數據的數據結構通常是半結構化(如日志數據)、甚至是非結構化的(如視頻、音頻數據),為了解決海量半結構化和非結構化數據的存儲,衍生了 Hadoop HDFS KFSGFS 等分布式文件系統,它們都能夠支持結構化、半結構和非結構化數據的存儲,並可以通過增加機器進行橫向擴展。

分布式文件系統完美地解決了海量數據存儲的問題,但是一個優秀的數據存儲系統需要同時考慮數據存儲和訪問兩方面的問題,比如你希望能夠對數據進行隨機訪問,這是傳統的關系型數據庫所擅長的,但卻不是分布式文件系統所擅長的,那么有沒有一種存儲方案能夠同時兼具分布式文件系統和關系型數據庫的優點,基於這種需求,就產生了 HBaseMongoDB

數據分析

大數據處理最重要的環節就是數據分析,數據分析通常分為兩種:批處理和流處理。

批處理:對一段時間內海量的離線數據進行統一的處理,對應的處理框架有 Hadoop MapReduceSparkFlink 等;

流處理:對運動中的數據進行處理,即在接收數據的同時就對其進行處理,對應的處理框架有 StormSpark StreamingFlink Streaming 等。

批處理和流處理各有其適用的場景,時間不敏感或者硬件資源有限,可以采用批處理;時間敏感和及時性要求高就可以采用流處理。隨着服務器硬件的價格越來越低和大家對及時性的要求越來越高,流處理越來越普遍,如股票價格預測和電商運營數據分析等。

數據應用

 

數據分析完成后,接下來就是數據應用的范疇,這取決於你實際的業務需求。比如你可以將數據進行可視化展現,或者將數據用於優化你的推薦算法,這種運用現在很普遍,比如短視頻個性化推薦、電商商品推薦、頭條新聞推薦等。當然你也可以將數據用於訓練你的機器學習模型,這些都屬於其他領域的范疇,都有着對應的框架和技術棧進行處理,這里就不一一贅述。

 

學習路線

 

學習大數據門檻相對較高,首先要有一定的語言基礎

1.java

大數據框架大多采用 Java 語言進行開發,並且幾乎全部的框架都會提供 Java API Java 是目前比較主流的后台開發語言,所以網上免費的學習資源也比較多。

2.scala

Scala 是一門綜合了面向對象和函數式編程概念的靜態類型的編程語言,它運行在 Java 虛擬機上,可以與所有的 Java 類庫無縫協作,著名的 Kafka 就是采用 Scala 語言進行開發的。

為什么需要學習 Scala 語言 這是因為當前最火的計算框架 Flink Spark 都提供了 Scala 語言的接口,使用它進行開發,比使用 Java 8 所需要的代碼更少,且 Spark 就是使用 Scala 語言進行編寫的,學習 Scala 可以幫助你更深入的理解 Spark

 

Linux基礎

通常大數據框架都部署在 Linux 服務器上,所以需要具備一定的 Linux 知識。

 

構建工具

 

這里需要掌握的自動化構建工具主要是 MavenMaven 在大數據場景中使用比較普遍,主要在以下三個方面:

1.管理項目 JAR 包,幫助你快速構建大數據應用程序;

2.不論你的項目是使用 Java 語言還是 Scala 語言進行開發,提交到集群環境運行時,都需要使用 Maven 進行編譯打包;

3.大部分大數據框架使用 Maven 進行源碼管理,當你需要從其源碼編譯出安裝包時,就需要使用到 Maven

 

框架學習

 

我們對框架進行簡單的分類總結:

日志收集框架:Flume LogstashKibana

分布式文件存儲系統:Hadoop HDFS

數據庫系統:MongodbHBase

分布式計算框架:

  • 批處理框架:Hadoop MapReduce
  • 流處理框架:Storm
  • 混合處理框架:SparkFlink

查詢分析框架:Hive Spark SQL Flink SQL PigPhoenix

集群資源管理器:Hadoop YARN

分布式協調服務:Zookeeper

數據遷移工具:Sqoop

任務調度框架:AzkabanOozie

集群部署和監控:AmbariCloudera Manager

上面列出的都是比較主流的大數據框架,社區都很活躍,學習資源也比較豐富。建議從 Hadoop 開始入門學習,因為它是整個大數據生態圈的基石,其它框架都直接或者間接依賴於 Hadoop 。接着就可以學習計算框架,Spark Flink 都是比較主流的混合處理框架,Spark 出現得較早,所以其應用也比較廣泛。 Flink 是當下最火熱的新一代的混合處理框架,其憑借眾多優異的特性得到了眾多公司的青睞。兩者可以按照你個人喜好或者實際工作需要進行學習。

 

開發工具

 

這里推薦一些大數據常用的開發工具:

Java IDE:IDEA 和 Eclipse 都可以。從個人使用習慣而言,更傾向於 IDEA ;

VMware Workstation:在學習過程中,你可能經常要在虛擬機上搭建服務和集群。

MobaXterm:大數據的框架通常都部署在服務器上,這里推薦使用 MobaXterm 進行連接。同樣是免費開源的,支持多種連接協議,支持拖拽上傳文件,支持使用插件擴展;

Translate Man:一款瀏覽器上免費的翻譯插件 (谷歌和火狐均支持)。它采用谷歌的翻譯接口,准確性非常高,支持划詞翻譯,可以輔助進行官方文檔的閱讀。


免責聲明!

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



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