大數據學習路線

来源: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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...