1. 程式人生 > >Hadoop概念學習系列之Hadoop、Spark學習路線(很值得推薦)(十八)

Hadoop概念學習系列之Hadoop、Spark學習路線(很值得推薦)(十八)

   不多說,直接上乾貨!

說在前面的話

  此筆,對於僅對於Hadoop和Spark初中學者。高手請忽略!

1 Java基礎:

    視訊方面:
          推薦《畢向東JAVA基礎視訊教程》。學習hadoop不需要過度的深入,java學習到javase,在Java虛擬機器的記憶體管理、以及多執行緒、執行緒池、設計模式、並行化多多理解實踐即可。

    書籍方面:

          推薦李興華的《java開發實戰經典》

2 Linux基礎:

    視訊方面:

           (1)馬哥的高薪Linux視訊課程-Linux入門、

   (2)兄弟連的新版Linux視訊教程、

           (3)老段的講解鳥哥Linux基礎+私房菜、

           (4)老男孩的Linux。

           看的過程中,不可只看不同步操作,這是最危險的一件事!不需全部看完。如:基本的Linux作業系統官網下載、安裝(命令列介面和圖形介面)、基本命令、網路配置、快照、VM tools工具安裝、虛擬機器的選單熟悉等等。這是必須要首先完成的。之後,可回過來再根據需要使用到哪些,再來學習即可。當作工具書!

    書籍方面:

            (1)《鳥哥的linux私房菜》,

            (2)之後,進一步可以看書籍《鳥哥的服務架設篇》。

            (3)Linux隨身指南

     (4)老男孩Linux運維

       系統學習只要多多實踐,學習linux並不枯燥。

3 hadoop書籍:

            (1)《Hadoop實戰  (第1版)  陸嘉恆》、《Hadoop實戰  (第2版)  陸嘉恆》

            (2) 《hadoop definitive guide 》,

                  中文書名是《Hadoop權威指南 (第1版)曾大聃譯》,《Hadoop權威指南 (第2版) 周敏奇譯》,《Hadoop權威指南 (第3版 ) 華東師範大學資料科學與工程學院譯》,當然現在應該是第4版了。

            (3)Hadoop技術內幕:《深入解析Hadoop common和HDFS架構設計與實現原理》 蔡斌  

            (4)hadoop技術內幕:《深入解析YARN架構設計與實現原理》董西成  

            (5)Hadoop技術內幕:《深入理解MapReduce架構設計與實現原理》 董西成 

            (5)《Hadoop in Action》,

                    中文書名是《Hadoop實戰》,

            (6) 《Hadoop應用開發技術詳解    劉剛》 

            (7)《Hadoop 核心技術》 翟周偉 

      平常多看看hadoop的官網,雖然是官網,但儘量多學習計算機方面的單詞,對後續學習幫助極大。

      平常多看看他人的部落格和社群論壇。
      平常多總結和做好筆記,及時回過頭來再次多次整理。

4 Maven書籍:

        強烈推薦書籍:Maven實戰   許曉斌著。目前是第一版 

5、spark書籍:

    (1)《Spark大資料處理  技術、應用與效能優化   高彥傑》

    (2)《深入理解Spark核心思想與原始碼分析   耿嘉安》

              (3)《圖解Spark:核心技術與案例實戰》

摘要: 致目前想要學習大資料,但是卻不瞭解大資料,也不知道該從哪開始學起的同學,希望這篇文章能夠幫到你們。

  最近群裡有很多朋友問我,"初學大資料,不知道怎麼開始學","不知道大資料具體是什麼東西,只是聽說很厲害的樣子","學習大資料,需要學習哪些框架,只學習spark可以嗎?" 等等...類似的問題,針對這些問題,一兩句話解釋不清楚,所以,就在這裡寫一些我自己的看法吧,希望可以幫助到初學者的你。

大資料初學者,總結下來,大致有這麼幾種情況:

  • 跨行業轉過來的(這一種是最難的,之前可能都沒接觸過程式設計,這種屬於真正的0基礎)
  • 即將畢業的大四學員(包含計算機專業或者其他專業,這一種稍微好點,最起碼大學的時候多少會接觸一點程式設計)
  • 有軟體開發經驗的老司機(包含,javaweb,.net,c 等)

  上面這幾種情況的同學都有一個共性,對大資料都是0基礎,相對而言,有軟體開發經驗的老司機學習起來不會很吃力,其餘的剛開始學起來會比較吃力,但只要肯比別人多花點時間,多下點功夫,其實並沒有你想象的那麼難。有付出,才會有回報!

  好了,廢話不多說了,下面就直接說一下,針對所有大資料初學者的一些學習建議吧【適用於上面三種基礎的同學】

大資料是什麼?

  有很多朋友問過我,大資料到底是什麼?一句話來概括

  • 針對非軟體行業的朋友
    • 根據你平時在超市,加油站,飯店等地方的一些消費行為,通過大資料這個技術,我們可以知道你現在的年齡範圍,是否婚配,是否有孩子,孩子大致是幾歲,是否有固定住宅,車大致是什麼價位的等資訊。
  • 針對軟體行業的朋友
    • 平時我們寫的程式都是在一臺機器上執行,處理能力有限,當然,資料量也是有限的。大資料這個技術,其實就是可以實現把我們的程式碼分佈在很多臺機器上去並行處理海量的資料,然後從這些海量資料中獲取有價值,有意義的資訊。

學習大資料需要的基本功

  1. linux基礎是必須的,最起碼需要掌握linux命令列下的基本操作命令

  2. javase基礎【包含mysql】,注意是javase,不是javaee。javaweb那一塊的知識針對大資料工程師而言不是必須的

大資料技術板塊劃分

  • 資料採集
    • flume kafka logstash filebeat ...
  • 資料儲存
    • mysql redis hbase hdfs ...
      • 雖然mysql不屬於大資料範疇 但是我在這也列出來了,因為你在工作中離不開它
  • 資料查詢
    • hive impala elasticsearch kylin ...
  • 資料計算
    • 實時計算
      • storm sparkstreaming flink ...
    • 離線計算
      • hadoop spark ...
  • 其他框架
    • zookeeper ...

下面有一張圖,大致列出來了大資料生態圈周邊的一些技術框架[不夠全面,僅供參考]

  其實這張圖中主要列出來了hadoop生態圈的框架,後期有時間的話重新整理一份完整的 。

   這個圖中列出來了很多框架,其實,學習大資料,就是要學習大資料生態圈周邊的各種框架。

大資料學習步驟

  上面雖然列出來了很多框架,但是最開始學習的時候沒必要全部都學,就算是在工作中,這些框架也不一定會全部用到。

  下面我就大致列一下,各種框架的一個學習步驟吧:

  注意:下面列出來的順序只是個人建議,可以根據個人實際情況來調整順序

  1. linux基礎和javase基礎【包含mysql】

    • 這些是基本功,剛開始也不可能學的很精通,最起碼要對linux中的一些基本的命令混個臉熟,後面學習各種框架的時候都會用到,用多了就熟悉了。javase的話建議主要看面向物件,集合,io,多執行緒,以及jdbc操作即可。
  2. zookeeper

    • zookeeper是很多大資料框架的基礎,中文名稱是動物園的意思,因為目前的大資料框架的圖示很多都是動物的形狀,所以zookeeper其實就是可以管理很多大資料框架的。針對這個框架,主要掌握如何搭建單節點和叢集,以及掌握如何在zkcli客戶端下對zookeeper的節點進行增刪改查操作即可。
  3. hadoop

    • 目前企業中一般都是用hadoop2.x的版本了,所以就沒有必要再去學hadoop1.x版本了,hadoop2.x主要包含三大塊
      • hdfs 前期,主要學習hdfs的一些命令即可,上傳,下載,刪除,移動,檢視等命令...
      • mapreduce 這個需要重點學習下,要理解mr的原理以及程式碼實現,雖然現在工作中真正寫mr的程式碼次數很少了,但是原理還是要理解的。
      • 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 是一個訊息佇列,在工作中常用於實時處理的場景中,作為一箇中間緩衝層,例如,flume->kafka->storm/sparkstreaming。學習kafka主要掌握topic,partition,replicate等的概念和原理。
  9. storm

    • storm是一個實時計算框架,和hadoop的區別就是,hadoop是對離線的海量資料進行處理,而storm是對實時新增的每一條資料進行處理,是一條一條的處理,可以保證資料處理的時效性。學習storm主要學習topology的編寫,storm並行度的調整,以及storm如何整合kafka實時消費資料。
  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 mlib和spark graphx 可以等後期工作需要或者有時間了在研究即可。
  11. elasticsearch

    • elasticsearch是一個適合海量資料實時查詢的全文搜尋引擎,支援分散式叢集,其實底層是基於lucene的。在查詢的時候支援快速模糊查詢,求count,distinct,sum,avg等操作,但是不支援join操作。elasticsearch目前也有一個生態圈,elk(elasticsearch logstash kibana)是一個典型的日誌收集,儲存,快速查詢出圖表的一整套解決方案。在學習elasticsearch的時候,前期主要學習如何使用es進行增刪改查,es中的index,type,document的概念,以及es中的mapping的設計。

  目前暫且列出來這麼多吧,大資料生態圈目前還有很多比較好的技術框架,這個就需要等大家以後工作之後再去擴充套件了。

  其實上面列出來的這十幾個框架,在學習的時候,要專門挑一兩個著重研究一下,最好針對,底層原理,優化,原始碼等部分有所涉獵,這麼的話可以在面試過程中脫穎而出。不要想著把每一個框架都搞精通,目前是不現實的,其實就算是在工作中也不會每一個框架都會用的很深。

  如果能過對上面的框架都大致會使用,並且對某一兩個框架研究的比較深的話,其實想去找一份滿意的大資料工作也就水到渠成了。

  上面說的這麼多,是根據博主最近幾年的一些經驗總結吧,如果大家有什麼觀點可以在下面留言討論。

    最終,大家還是要落於找專案來提升自己,必須要有做專案的經驗。現在網際網路時代,別跟我說,找不到學習的資源。谷歌百度你懂的... !!!

  其實,說白了,大家還是要在入門之後,有了一定經驗,更多還是要去看官網。這是最重要!包括動手去實踐,多敲命令!

 福利: 歡迎大家,加入我建立的公益技術交流群   和  個人微信公眾號 ,必須免費!

 

歡迎大家,加入我的微信公眾號:大資料躺過的坑        人工智慧躺過的坑

同時,大家可以關注我的個人部落格

   http://www.cnblogs.com/zlslch/   和     http://www.cnblogs.com/lchzls/      http://www.cnblogs.com/sunnyDream/   

   詳情請見:http://www.cnblogs.com/zlslch/p/7473861.html

  人生苦短,我願分享。本公眾號將秉持活到老學到老學習無休止的交流分享開源精神,匯聚於網際網路和個人學習工作的精華乾貨知識,一切來於網際網路,反饋回網際網路。
  目前研究領域:大資料、機器學習、深度學習、人工智慧、資料探勘、資料分析。 語言涉及:Java、Scala、Python、Shell、Linux等 。同時還涉及平常所使用的手機、電腦和網際網路上的使用技巧、問題和實用軟體。 只要你一直關注和呆在群裡,每天必須有收穫

      對應本平臺的討論和答疑QQ群:大資料和人工智慧躺過的坑(總群)(161156071) 

 

相關推薦

Hadoop概念學習系列HadoopSpark學習路線值得推薦

不多說,直接上乾貨! 說在前面的話   此筆,對於僅對於Hadoop和Spark初中學者。高手請忽略! 1 Java基礎:     視訊方面:           推薦《畢向東JAVA基礎視訊教程》。學習hadoop不需要過度的深入,java學習到

Hadoop概念學習系列HadoopSpark學習路線值得推薦

   不多說,直接上乾貨! 說在前面的話   此筆,對於僅對於Hadoop和Spark初中學者。高手請忽略! 1 Java基礎:     視訊方面:          推薦《畢向東JAVA基礎視訊教程》。學習hadoop不需要過度的深入,java學習到javase,在Java虛

大資料Hadoop學習系列HadoopSpark學習路線

1 Java基礎: 視訊方面:推薦畢老師《畢向東JAVA基礎視訊教程》。 學習hadoop不需要過度的深入,java學習到javase,在多執行緒和並行化多多理解實踐即可。 書籍方面:推薦李興華的《java開發實戰經典》 2 Linux基礎: 視訊方面:(1)馬哥的高薪Linux

FineBI學習系列FineBI與Spark數據連接圖文詳解

gpo 編碼轉換 nload -s div 語言 分享圖片 bre con 不多說,直接上幹貨!   這是來自FineBI官網提供的幫助文檔 http://help.finebi.com/http://help.finebi.com/doc-vie

機器學習系列偏差方差與交叉驗證

一、偏差與方差 在機器學習中,我們用訓練資料集去訓練(學習)一個model(模型),通常的做法是定義一個Loss function(誤差函式),通過將這個Loss(或者叫error)的最小化過程,來提高模型的效能(performance)。然而我們學習一個模型的目的是為了解決實際的問題(或者說是

Python3.5.2 document學習系列02The Python Standard Librarypython 標準庫——介紹

1.介紹Python庫包含幾種不同種類的組成部分。它包含通常被認為是一種語言“核心”部分的資料型別,如數字和列表。對這些型別來說,Python語言核心定義了書寫上的格式和位置以及一些語義上的約束,但沒有完全定義語法(另一方面,語言核心定義了語法特性像拼寫和操作優先順序)這個庫

FineBI學習系列FineBI的Windows裏安裝後的一些配置事宜圖文詳解

fine left text -a 得到 幹貨 圖文詳解 註冊 博客   不多說,直接上幹貨!   前期博客   第一步:需要點擊獲取激活碼     第二步:點擊註冊   註冊的

IDEA學習系列IDEA裏項目的任意目錄進行類型標註五種自定義這個知識點非常非常重要,必須會 圖文詳解

找到 關註 軟件 多說 微信公眾 提示 log 反饋 問題   不多說,直接上幹貨! 前言   對項目的任意目錄進行這五種目錄類型標註,這個知識點非常非常重要,必須會。   1、File ->

JVM深度學習系列位元組碼檔案學習(二)

1. 首先javac編譯java檔案  javac aa.java 2. 使用javap 反編譯class檔案得到位元組碼檔案   javap -v aa.class   Javap 相關idea外掛   jclasslib

大數據學習系列六 ----- Hadoop+Spark環境搭建

csdn jdk sts htm ps命令 sta cnblogs 環境變量設置 lib 引言 在上一篇中 大數據學習系列之五 ----- Hive整合HBase圖文詳解 : http://www.panchengming.com/2017/12/18/pancm62/

大數據學習系列七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集

pat 修改配置文件 防止 聲明 mir rac detail jre_home true 引言 在之前的大數據學習系列中,搭建了Hadoop+Spark+HBase+Hive 環境以及一些測試。其實要說的話,我開始學習大數據的時候,搭建的就是集群,並不是單機模式和

大資料學習系列七 ----- Hadoop+Spark+Zookeeper+HBase+Hive叢集搭建 圖文詳解

引言 在之前的大資料學習系列中,搭建了Hadoop+Spark+HBase+Hive 環境以及一些測試。其實要說的話,我開始學習大資料的時候,搭建的就是叢集,並不是單機模式和偽分散式。至於為什麼先寫單機的搭建,是因為作為個人學習的話,單機已足以,好吧,

Hadoop Hive概念學習系列hive裡的JDBC程式設計入門

Hive與JDBC示例         在使用 JDBC 開發 Hive 程式時, 必須首先開啟 Hive 的遠端服務介面。在hive安裝目錄下的bin,使用下面命令進行開啟:     hive -service hiveserver &  //Hive低版本提供的服務是:Hivese

hadoop入門學習系列hadoop學習sqoop安裝

1.7 sqoop安裝 opc 2.6 clas jdb -m -- error 1.下載安裝包及解壓 tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz 2.配置環境變量和配置文件 cd 到 sqoop

Spark2.0機器學習系列3:決策樹及Spark 2.0-MLlibScikit程式碼分析

概述 分類決策樹模型是一種描述對例項進行分類的樹形結構。 決策樹可以看為一個if-then規則集合,具有“互斥完備”性質 。決策樹基本上都是 採用的是貪心(即非回溯)的演算法,自頂向下遞迴分治構造。 生成決策樹一般包含三個步驟: 特徵選擇 決策樹生成 剪枝

大資料入門教程系列Hadoop環境搭建軟體準備

本篇文章主要介紹大資料入門教程環境搭建所需要的軟體、環境配置等,為後面的學習做準備。 完成目標: 1、安裝VMware及新建虛擬機器 安裝VMware及新建虛擬機器 2、VMware中安裝centons7 虛擬機器VMware中安裝linux系統CentOS

Hadoop入門學習系列三】YARN原理和資源排程

一.Hadoop YARN產生背景 Mapreduce1.0版本固有的問題 擴充套件性受限 單點故障 難以支援MR之外的計算 資源利用率 運維成本和資料共享【多計算框架各自為戰,資料共享困難】  MR:離線計算框架  Storm:實時計算框

大數據系列Hadoop框架

apr png 關系型 big sqoop ted 服務器 定制 操作 Hadoop框架中,有很多優秀的工具,幫助我們解決工作中的問題。 Hadoop的位置 從上圖可以看出,越往右,實時性越高,越往上,涉及到算法等越多。 越往上,越往右就越火…… Hadoop框架中一

Microsoft Power BI Desktop概念學習系列Microsoft Power BI Desktop的下載和安裝圖文詳解

-c gpo mic sof mage pos microsoft body 技術分享   不多說,直接上幹貨!   官網 https://powerbi.microsoft.com/zh-cn/downloads/

Hadoop學習系列(2.Hadoop框架介紹與搜索技術體系介紹)

消息 監控系統 mapreduce spa 文件系統 sql 平時 偽分布式 自己 第一天2.Hadoop框架介紹與搜索技術體系介紹1.大數據典型特性與分布式開發難點2.Hadoop框架介紹與搜索技術體系介紹3.Hadoop版本與特性介紹4.Hadoop核心模塊之HDFS分