大數據學習路線

来源:https://www.cnblogs.com/jake-jin/archive/2020/05/19/12916284.html
-Advertisement-
Play Games

前言 數據科學部為想從事大數據方向學習的小伙伴總結了一下大數據的學習路線,供大家學習參考。由於大數據是一個基礎門檻較高就業前景較好的學習方向。所以打算學習大數據的小伙伴要加油啦! 大數據學習路線: 首先我要瞭解大數據處理流程: 第一步:數據收集 第二部:數據存儲 第三步:數據分析 第四步:數據應用 ... ...


前言

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

大數據學習路線:

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

第一步:數據收集

第二部:數據存儲

第三步:數據分析

第四步:數據應用

數據收集

 

大數據處理的第一步是數據的收集。現在的中大型項目通常採用微服務架構進行分散式部署,所以數據的採集需要在多台伺服器上進行,且採集過程不能影響正常業務的開展。基於這種需求,就衍生了多種日誌收集工具,如 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:一款瀏覽器上免費的翻譯插件 (谷歌和火狐均支持)。它採用谷歌的翻譯介面,準確性非常高,支持劃詞翻譯,可以輔助進行官方文檔的閱讀。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在Oracle和SQL Server資料庫中,可以設置一些複雜的賬號密碼策略,例如在失敗登錄超過N次即可鎖定賬號,那麼在MySQL中能否也有這樣的功能呢?答案是MySQL也有類似這樣的功能,只不過在MySQL中是在其登錄失敗超過閥值後,延遲響應時間,而不是鎖定賬號,在MySQL 5.7.17 以後提... ...
  •  JDBC基本使用方法 JDBC固定步驟: 載入驅動 連接資料庫,代表資料庫 向資料庫發送SQL的對象Statement: CRUD 編寫SQL (根據業務, 不同的SQL) 執行SQL 遍歷結果集 關閉連接 補充: statement.executeQuery(); //執行查詢操作 state ...
  • Redis伺服器負責與多個客戶端建立網路通信,處理客戶端發送的命令請求,在資料庫中保存客戶端執行命令所產生的數據,並通過資源管理來維持伺服器自身的運轉。 命令請求過程(以set命令為例) 1、客戶端向伺服器發送命令請求 SET KEY VALUE。 Redis伺服器的命令請求來自於Redis客戶端, ...
  • 數據中台、相信這四個字大家一定不陌生。因為在2019年、數據中台可謂是最火的概念之一,很多大公司都在佈局自己的數據中台。 那麼數據中台到底是什麼?它和我們熟知的數據平臺有啥區別?它為什麼會這麼火、能給企業帶來什麼價值呢?數據中台整體架構和全景圖又是什麼呢? 筆者有幸參與了公司數據中台從0到N的建設, ...
  • 今天導一些數據從Excel中至Sqlserver 資料庫中,在做數據合併去重的時候發現,有兩條數據一模一樣,竟然沒有進行合併; 最後發現有一條後面有個“空格”,正是因為這個“空格”讓我抓狂許久,因為它是個假“空格”! 普通的空格移除方法: SELECT ltrim(' 移除掉左邊的空格 ') SEL ...
  • utf8mb4是4個位元組。utf8是3個位元組。utf8mb4相容性更好,占用空間更大。 主要從排序準確性和性能兩方面看: 準確性utf8mb4_unicode_ci 是基於標準的Unicode來排序和比較,能夠在各種語言之間精確排序utf8mb4_general_ci 沒有實現Unicode排序規則 ...
  • --ORACLE表被鎖原因:具體操作某一個FORM界面,或者後臺資料庫操作某一個表時發現一直出於"假死"狀態, --可能是該表被某一用戶鎖定,導致其他用戶無法繼續操作 --查詢被鎖的表 select b.owner, b.object_name, a.session_id, a.locked_mod ...
  • 資料庫索引: 索引有單列索引複合索引之說 如何某表的某個欄位有主鍵約束和唯一性約束,則Oracle 則會自動在相應的約束列上建議唯一索引。資料庫索引主要進行提高訪問速度。 建設原則: 1、索引應該經常建在Where 子句經常用到的列上。如果某個大表經常使用某個欄位進行查詢,並且檢索行數小於總表行數的 ...
一周排行
    -Advertisement-
    Play Games
  • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
  • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
  • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
  • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
  • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
  • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
  • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
  • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
  • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
  • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...