大數據入門學習路線

来源:https://www.cnblogs.com/A12346/archive/2018/11/14/9957306.html
-Advertisement-
Play Games

現階段大數據如火如荼,很多人想要學習大數據,但是卻不瞭解大數據,也不知道該從哪開始學起的同學,希望這篇文章能夠幫到你們。 1. Linux基礎和JavaSE基礎【包含mysql】 這些是基本功,剛開始也不可能學的很精通,最起碼要對linux中的一些基本的命令混個臉熟,後面學習各種框架的時候都會用到, ...


現階段大數據如火如荼,很多人想要學習大數據,但是卻不瞭解大數據,也不知道該從哪開始學起的同學,希望這篇文章能夠幫到你們。 

1. Linux基礎和JavaSE基礎【包含mysql】

這些是基本功,剛開始也不可能學的很精通,最起碼要對linux中的一些基本的命令混個臉熟,後面學習各種框架的時候都會用到,用多了就熟悉了。javase的話建議主要看面向對象,集合,io,多線程,以及jdbc操作即可。mysql的話要熟悉最基礎的增刪改查。 

2. Zookeeper

zookeeper是一個分散式應用程式協服務,一般為分散式應用提供一致性服務,提供的功能包括:配置維護、功能變數名稱服務、分散式同步、組服務等。中文名稱是動物園的意思,因為目前的大數據框架的圖標很多都是動物的形狀,所以zookeeper其實就是可以管理很多大數據框架的。針對這個框架,主要掌握如何搭建單節點和集群,以及掌握如何在zkcli客戶端下對zookeeper的節點進行增刪改查操作即可。想要深入的話可以研究一下zookeeper的Paxos演算法。 

3. Hadoop

目前企業中一般都是用hadoop2.x的版本了,所以就沒有必要再去學hadoop1.x版本了,hadoop2.x主要包含三大塊:

hdfs 先學hdfs的架構,如何實現高可用等,接著主要學習hdfs的一些命令即可,上傳,下載,刪除,移動,查看等命令…
mapreduce 這個需要重點學習下,要理解mr的原理以及代碼實現,雖然現在工作中真正寫mr的代碼次數很少了(大部分用hive),但是原理還是要理解的。
yarn 前期瞭解即可,只需要知道yarn是一個資源調度平臺,主要負責給任務分配資源即可,yarn不僅可以給mapreduce任務調度資源,還可以為spark任務調度資源…yarn是一個公共的資源調度平臺,所有滿足條件的框架都可以使用yarn來進行資源調度。 

4. Hive

hive是一個數據倉庫,所有的數據都是存儲在hdfs上的,具體【數據倉庫和資料庫】的區別大家可以去網上搜索一下,有很多介紹。其實如果對mysql的使用比較熟悉的話,使用hive也就簡單很多了,使用hive主要是寫hql,hql是hive的sql語言,非常類似於mysql資料庫的sql,後續學習hive的時候主要理解一些hive的語法特性即可。其實hive在執行hql,底層在執行的時候還是執行的mapredce程式。 
註意:其實hive本身是很強大的,數據倉庫的設計在工作中也是很重要的,但是前期學習的時候,主要先學會如何使用就好了。後期可以好好研究一下hive。 

5. Hbase

hbase是一個在國內很火的nosql 資料庫,是一個key-value類型的資料庫,底層的數據存儲在hdfs上。在學習hbase的時候主要掌握 row-key的設計,以及列簇的設計。要註意一個特點就是,hbase基於rowkey查詢效率很快,可以達到秒級查詢,但是基於列簇中的列進行查詢,特別是組合查詢的時候,如果數據量很大的話,查詢性能會很差。 

離線項目練手

通常學到這裡就可以找一兩個離線項目練練手了,把上面學習的知識都串一下,加深理解,讓自己對於各個組件之間的配合使用有一個總體的瞭解(這點非常重要)。關於這種項目網上、淘寶上有很多資源。 

6. Redis

redis也是一個nosql 資料庫和key-value類型的資料庫,但是這個資料庫是純基於記憶體的,也就是redis資料庫中的數據都是存儲在記憶體中的,所以它的一個特點就是適用於快速讀寫的應用場景,讀寫可以達到10W次/秒,但是不適合存儲海量數據,畢竟機器的記憶體是有限的,當然,redis也支持集群,也可以存儲大量數據。在學習redis的時候主要掌握string,list,set,sortedset,hashmap這幾種數據類型的區別以及使用,還有pipeline管道,這個在批量入庫數據的時候是非常有用的,以及transaction事務功能。 

7. Flume

flume是一個日誌採集工具,這個還是比較常用的,最常見的就是採集應用產生的日誌文件中的數據。一般有兩個流程,一個是flume採集數據存儲到kafka中,為了後面使用storm或者sparkstreaming進行實時處理。另一個流程是flume採集的數據落盤到hdfs上,為了後期使用hadoop或者spark進行離線處理。在學習flume的時候其實主要就是學會看flume官網的文檔,學習各種組建的配置參數,因為使用flume就是寫各種的配置。 

8. Kafka

kafka 是一個非常優秀的消息隊列,幾乎所有做大數據的公司都會使用到Kafka,在工作中常用於作為一個中間緩衝層,例如,flume->kafka->storm/sparkstreaming。學習kafka主要掌握topic,partition,replicate等的概念和原理。如果有時間的話可以好好研究Kafka的源碼,相當重要! 

9. Scala

Scala是一門基於JVM的編程語言,不僅支持面向對象編程,而且還支持面向過程,具備了Java的所有特性,同時自己還支持強大的函數式編程,Spark和Kafka都是使用Scala編寫,這也是我們需要學習它的一大原因,因為想要深入理解Spark和Kafka,必須要剖析其源碼。可以預見未來Scala語言將在大數據領域大放光彩。 

10. Spark

Spark 經過前幾年的迅速發展,如今已經成了很多企業的首選大數據計算框架,也發展成了一個生態圈,spark裡面包含很多技術,spark core,spark steaming,spark mlib,spark graphx。 
spark生態圈裡麵包含的有離線處理spark core,和實時處理spark streaming,在這裡需要註意一下,storm和spark streaming ,兩個都是實時處理框架,但是主要區別是:storm是真正的一條一條的處理,而spark streaming 是一批一批的處理。 
spark中包含很多框架,在剛開始學習的時候主要學習spark core和spark streaming即可。這個一般搞大數據的都會用到。有時間的話可以好好讀讀Spark的源碼,提升自己的理解深度。spark mlib和spark graphx 可以等後期工作需要或者有時間了在研究即可。

Spark項目練手

Spark學習完後一定要找幾個項目練手,最好是一個離線項目一個實時項目,好讓你對於整個開發流程有了一定的認識。

至此你應該具備了作為初級大數據開發工程師的水平,開始找工作去吧!

註意:對於上面的各項技術而言,要挑一到兩個深入剖析其核心原理,研讀其源碼,這樣在面試中會更有競爭力。

其他技能推薦

Git & GitHub

Git對於程式員來說絕對是一門利器,不僅可以方便管理自己的代碼,而且還可以進行多人協助開發,早學早受用!
GitHub也是個好東西啊,這上面有很多很多優秀的開源項目,還有很多你意想不到的實用軟體和資料,是程式員的大寶藏啊,你可以為上面的開源項目貢獻自己的代碼,也可以創建上傳自己的項目代碼,這都是以後面試中的加分項。把刷朋友圈的時間用來刷GitHub吧,相信你會發現另一個世界。 

我還是要推薦下我自己創建的大數據資料分享群142973723,這是大數據學習交流的地方,不管你是小白還是大牛,小編都歡迎,不定期分享乾貨,包括我整理的一份適合零基礎學習大數據資料和入門教程。

Markdown

Markdown是一種可以使用普通文本編輯器編寫的標記語言,通過簡單的標記語法,它可以使普通文本內容具有一定的格式。使用了Markdown後你再不需要為文章的樣式而耗費時間了,專註於內容的創作,不得不說Markdown讓我愛上了寫作。

手機免打擾

咋一看你估計有點蒙,但確實這是一項非常有用的技能,在學習的時候把手機開啟免打擾,什麼微信、簡訊、電話(列個白名單)統統屏蔽,一個不容易受打擾的環境,瞬間學習效率提升了好幾倍,你最寶貴的東西就是你的註意力,不要讓他輕易的被他人收割!


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

-Advertisement-
Play Games
更多相關文章
  • Linux使用MySQL Yum存儲庫上安裝MySQL 5.6,適用於Oracle Linux,Red Hat Enterprise Linux和CentOS系統。 一、全新安裝MySQL 1、添加MySQL Yum存儲庫 將MySQL Yum存儲庫添加到系統的存儲庫列表中。這是一次性操作,可以通過 ...
  • --資料庫操作前的準備-- 創建資料庫-- create database python_test_1 charset=utf8; -- 使用資料庫-- use python_test_1; -- students表-- create table students(-- id int unsigne ...
  • 一 . MQ:message queue 消息隊列的作用: 1 通信解耦 2 高峰限流 原理分析: 一開始,認證系統是強耦合的,A系統傳遞認證系統消息接收計算結果的過程中 1 傳給認證系統 2 認證系統計算 3 返回計算結果 4 讀取A系統邏輯 只要當前計算沒有完成,對於認證系統來講消耗線程資源.並 ...
  • 一. 字元串對象編碼 Redis中字元串可以存儲3種類型,分別是位元組串(byte string)、整數、浮點數。在上章節中講到字元串對象的編碼可以是int, raw,embstr。 如果一個字元串對象保存的是整數值,那麼對象RedisObject結構的ptr 屬性裡面將void*轉換成long,字元 ...
  • 最近在調研關聯數據的一些東西,需要用到rdf資料庫,所以接觸了virtuoso資料庫。安裝的坑其實並不多,之前在windows 10上安過一次。這次在ubuntu 18.04上安裝一下,其他的linux發行版安裝的流程也差不多。 virtuoso資料庫的下載與使用 開源版本的virtuoso資料庫可 ...
  • 原創鏈接:https://www.cnblogs.com/junfly/articles/2798023.html SQL SERVER 基礎教程中關於伺服器登錄名、伺服器角色、資料庫用戶、資料庫角色、架構的關係。 我們要說的包括伺服器登錄名Server Login,伺服器角色Server Role ...
  • 摘要: 下文講述updatetext的功能及舉例說明 實驗環境:sql server 2008 R2 updatetext關鍵字功能及語法說明 updatetext功能說明: updatetext的功能為:更新當前的text,ntext,image欄位, 當我們可以使用updatetext更新列中的 ...
  • MySQL 屬於 關係型資料庫管理系統 (RDBMS),使用RDBMS時,最常見的系統結構就是 客戶端/伺服器類型 (C/S類型)這種結構。 指的是用來接收其他程式發出的請求,並對該請求進行相應處理的程式(軟體),或者是安裝了此類程式的設備(電腦)。在電腦上持續執行處理,並等待接收下一條請求。 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...