-
1 # Echa攻城獅
-
2 # 嘉靖不上朝
hadoop、Hbase、hive、spark等框架使用來分析海量的資料,進行計算、統計、得出想要的結果。
條件:開發語言JAVA、作業系統Linux系統
-
3 # 大資料漫路求索
學習大資料需要循序漸進的學,掌握一套學習方法很重,把需要學習的內容分成幾個階段,系統學習。我簡單的列了一下需要學習的內容,僅供參考。
第一階段
JavaSE基礎核心
Java入門語法、面向物件核心、集合與泛型、執行緒機制、網路程式設計、流程控制結構、異常體系、反射體系、IO流、設計模式
第二階段
資料庫關鍵技術
MySql安裝和使用、DML(資料操縱語言)、DCL(資料控制語言)、儲存過程和函式、JDBC核心技術、SQL語言解析、DDL(資料定義語言)
第三階段
大資料基礎核心
Maven、Hadoop、Hive、Kafka、Linux、Shell、Zookeeper+HA、Flume、HBase
第四階段
Spark生態體系框架
Scala語言、Spark SQL、Kylin、Druid、Sqoop、Spark Core、Presto、Spark Streaming、Redis快取資料庫、GIT & GIT Hub、ElasticSearch
第五階段
Flink流式資料處理框架
Flink Environment、Flink DataSet、Flink Window、Flink State & Checkpoint、Flink on Yarn、Flink DataStream、Flink Watermark
-
4 # IT人劉俊明
作為一名IT從業者,同時也是一名計算機專業的教育工作者,我來回答一下這個問題。
首先,當前大資料的知識體系還是比較龐大的,隨著大資料技術生態的逐漸成熟和完善,大資料領域也逐漸形成了更多的崗位細分,從事不同的崗位細分方向則需要學習不同的知識。
從當前大的崗位劃分來看,通常包括以下幾個崗位:
第一:大資料開發崗位。從近兩年大資料方向研究生的就業情況來看,開發崗位的人才需求量還是比較大的,相關崗位的薪資待遇也比較高,其中從事大資料平臺開發的研發級崗位會有更高的薪資待遇。從事大資料開發崗位,通常需要學習三大塊內容,其一是程式開發技術,初學者可以從Java或者Python開始學起;其二是學習大資料平臺知識,初學者可以從Hadoop和Spark開始學起;其三是大資料開發實踐,這個過程需要掌握一定的行業知識。
第二:大資料分析崗位。大資料分析崗位的人才需求潛力是非常大的,不僅IT(網際網路)行業需要大量的大資料分析人才,傳統行業領域也需要大資料分析人才。選擇大資料分析方向需要具有一定的數學和統計學基礎,而且也有一定的學習難度。目前大資料分析的常見方式有兩種,分別是統計學方式和機器學習方式。
第三:大資料運維崗位。如果對於程式設計和演算法設計不感興趣,那麼也可以考慮學習大資料運維知識,未來可以從事大資料運維崗位。大資料運維崗位的任務相對比較雜,需要從業者具有較強的動手實踐能力。從知識結構上來看,大資料運維需要掌握網路知識、大資料平臺知識和伺服器知識。
-
5 # 資料世紀
華為有一款應用程式叫做“iLearningX”的APP,這個APP裡面主要包含了物聯網、大資料、資料中心、人工智慧、資訊保安、5G、儲存、雲服務等等學習內容。華為將這些內容分為職業認證、行業認證,華為的認證又分為HCIA(華為認證工程師)、HCIP(華為認證高階工程師)、HCIE(華為認證專家),這些認證可以說是華為對你 的一個認可,畢竟是華為推出來的,在一些領域還是有一定權威性的。
華為資料的學習內容也是分級別的,向工程師主要是掌握一些基礎架構,和一些簡單的操作,基本上有點計算機基礎就可以了;高階工程師就比較難了,向JAVA、以及平臺的操作、以及要有工程師的基礎;專家就更難了,我覺得專家好像什麼都要會。
我考的是華為認證大資料工程師,大約用了半年的時間來學習理解,還好不是很難,主要以HDFS、Flume、MapReduce、Yarn、Spark、Streaming、Flink、Zoopkeer、Loader為主的內容,我學這個一個是因為華為的大資料學習有一定的 層次性,讓我們逐漸的理解,比我們亂學、瞎學效率高很多;在一個以後是不是可以拿著這個證去華為打工呢?哈哈,請允許我做一個夢。
-
6 # 語凡提AI
大資料中也有多種崗位,有的偏向開發,有的偏向運維,有的偏向資料分析與挖掘。開發的話Java居多,不過只需要到JavaSE層面即可,也可以選用Scala/Python開發。資料分析與挖掘基本上就是Python了。所以建議學習Python了。要求與條件的話,如果是計算機/數學/統計相關專業最好,不過還是看個人的學習能力與是否堅持。
1) 簡單點評:
發展不錯,需求不少,不過需求中主要是資料分析相關崗位,牽涉到演算法建模等高階內容的話實際上不適合剛畢業的不同本科學生。建議普通本科或專科學生從資料分析入行,掌握Python,以後逐步向高階資料分析師、資料探勘工程師、人工智慧開發工程師方向走,
2)發展前景:
大資料類職位需求增幅僅次於AI崗位。眼下,幾乎所有網際網路企業均把資料人才列為團隊標配。許多公司在資料層面增加投入,大量招募具有演算法和建模能力的人才,力求透過資料沉澱與挖掘更好地推進產品的迭代。資料架構師、資料分析師成為企業爭搶物件,過去一年招聘需求提高150%以上。2017,網際網路公司對AI和資料人才的爭搶活躍度提高了30%以上,企業間相互挖角行為變得更加頻繁,人才爭奪激烈程度全面升級。物聯網、智慧城市、增強現實(AR)與虛擬現實(VR)、區塊鏈技術、語音識別、人工智慧、數字彙流是大資料未來應用的七大發展方向。
3)行業定位:
4)面向專業:
計算機、數學與統計、物理、電子、通訊工程、物聯網、網路工程等相關專業大專以上學生。推薦中上游學生學習。
5)薪酬分析:
我本人在IT行業混了二十多年,從事軟體開發與軟體教育,現在主要是管理,不過始終沒有脫離寫程式,有興趣可以交流哦!
-
7 # 加米穀大資料
大資料開發工程師是大資料領域一個比較熱門的崗位,有大量的傳統應用需要進行大資料改造,因此崗位有較多的人才需求。這個崗位需要掌握的知識結構包括大資料平臺體系結構,比如目前常見的Hadoop、Spark平臺,以及眾多元件的功能和應用,另外還需要掌握至少一門程式語言,比如Java、Python、Scala等。
大資料分析師是大資料領域非常重要的崗位,大資料分析師需要掌握的知識結構包括演算法設計、程式語言以及呈現工具,演算法設計是大資料分析師需要掌握的重點內容,而程式語言的作用則是完成演算法的實現。另外,大資料分析師還需要掌握一些常見的分析工具。
大資料運維工程師的主要工作內容是搭建大資料平臺、部署大資料功能元件、配置網路環境和硬體環境、維護大資料平臺,大資料運維工程師需要具備的知識結構包括計算機網路、大資料平臺體系結構、程式語言(編寫運維指令碼)等,通常情況下,大資料運維工程師也需要對資料庫有深入的瞭解。
大資料工程師是做什麼的?需要掌握哪些技能?
https://www.toutiao.com/i6711595957814821380/
-
8 # 科技老房
首先你要清楚自己為什麼想要學習大資料,其次現在的工作機會是不是你心儀的工作,然後想要學習大資料是感興趣還是盲目跟風,最後如果是想往大資料方面發展的話那麼一定要了解大資料的職業劃分和薪資情況,到底想從事大資料工作的哪個方向。
我的建議:IT技術更新迭代速度很快,所以一定要做到未雨綢繆,選好方向做好規劃,避免還沒等學就被淘汰了。
下面我從2個方面介紹
1.大資料職業劃分和薪資介紹及我的認為的發展發現
2.大資料的學習路線
大資料職業劃分和薪資介紹從51job、智聯、獵聘檢視職位,我認為大資料大概分為這5個方向
資料管理類:首席資料官、資料管理員、資料安全工程師;
這類主要負責公司資料的管理,資料安全策略的制定和實現。
資料分析類:戰略分析師、資料分析師、商業智慧分析員;
這類主要負責資料分析相關的工作。
資料探勘類:資料探勘工程師、演算法工程師;
這類負責資料探勘演算法的設計與策略。
技術研發類:資料倉庫架構師、資料採集工程師、資料倉庫開發工程師、資料視覺化工程師、大資料架構師、大資料開發工程師;
這類主要負責資料倉庫的搭建和ETL任務的開發。
IT基礎架構類:hadoop運維工程師、資料庫運維工程師、系統運維工程師
這類主要負責大資料叢集軟硬體的管理和維護。
薪資在獵聘上截了幾張圖,具體你可以上智聯、51job或獵聘上搜職位名稱檢視薪酬。
我對大資料發展方向的建議:我朋友就是做獵頭的,據他說目前最火的還是演算法工程師,以前不起眼,現在隨著5G的興起,AI方向有更為廣闊的發展空間,BAT玩命的招人。其次就是做技術開發類,做大資料平臺的,這也是目前招聘人數最多的,如果做到大資料架構師,年薪百萬不是問題。資料分析類和資料管理類的一般是甲方企業,偏企業內部。最後是運維,相對發展前景最差。
大資料的學習路線必須掌握的技能11條
Java高階(虛擬機器、併發)Linux 基本操作Hadoop(HDFS+MapReduce+Yarn )HBase(JavaAPI操作+Phoenix )Hive(Hql基本操作和原理理解)KafkaStorm/JStormScalaPythonSpark (Core+sparksql+Spark streaming )輔助小工具(Sqoop/Flume/Oozie/Hue等)高階技能6條
機器學習演算法以及mahout庫加MLlibR語言Lambda 架構Kappa架構KylinAlluxio面列出來的順序只是個人建議,可以根據個人實際情況來調整順序
第一階段(基礎階段)
Linux學習(跟鳥哥學就ok了)—–20小時
Linux作業系統介紹與安裝。Linux常用命令。Linux常用軟體安裝。Linux網路。防火牆。Shell程式設計等。官網:https://www.centos.org/download/Java 高階學習(《深入理解Java虛擬機器》、《Java高併發實戰》)—30小時
掌握多執行緒。掌握併發包下的佇列。瞭解JMS。掌握JVM技術。掌握反射和動態代理。官網: https://www.java.com/zh_CN/中文社群:http://www.java-cn.com/index.htmlZookeeper學習
Zookeeper分散式協調服務介紹。Zookeeper叢集的安裝部署。Zookeeper資料結構、命令。Zookeeper的原理以及選舉機制。官網: http://zookeeper.apache.org/中文社群:http://www.aboutyun.com/forum-149-1.html第二階段(入門,攻堅階段)
Hadoop (《Hadoop 權威指南》)—80小時
HDFS
HDFS的概念和特性。HDFS的shell操作。HDFS的工作機制。HDFS的Java應用開發。MapReduce
執行WordCount示例程式。瞭解MapReduce內部的執行機制。MapReduce程式執行流程解析。MapTask併發數的決定機制。MapReduce中的combiner元件應用。MapReduce中的序列化框架及應用。MapReduce中的排序。MapReduce中的自定義分割槽實現。MapReduce的shuffle機制。MapReduce利用資料壓縮進行最佳化。MapReduce程式與YARN之間的關係。MapReduce引數最佳化。MapReduce的Java應用開發
官網:http://hadoop.apache.org/中文文件:http://hadoop.apache.org/docs/r1.0.4/cn/Hive(《Hive開發指南》)–20小時
Hive 基本概念
Hive 應用場景。Hive 與hadoop的關係。Hive 與傳統資料庫對比。Hive 的資料儲存機制。Hive 基本操作
Hive 中的DDL操作。在Hive 中如何實現高效的JOIN查詢。Hive 的內建函式應用。Hive shell的高階使用方式。Hive 常用引數配置。Hive 自定義函式和Transform的使用技巧。Hive UDF/UDAF開發例項。Hive 執行過程分析及最佳化策略
官網:https://hive.apache.org/中文入門文件:http://www.aboutyun.com/thread-11873-1-1.htmlHBase(《HBase權威指南》)—20小時
hbase簡介。habse安裝。hbase資料模型。hbase命令。hbase開發。hbase原理。官網:http://hbase.apache.org/中文文件:http://abloz.com/hbase/book.htmlScala(《快學Scala》)–20小時
Scala概述。Scala編譯器安裝。Scala基礎。陣列、對映、元組、集合。類、物件、繼承、特質。模式匹配和樣例類。瞭解Scala Actor併發程式設計。理解Akka。理解Scala高階函式。理解Scala隱式轉換。官網:http://www.scala-lang.org/初級中文教程:http://www.runoob.com/scala/scala-tutorial.htmlSpark (《Spark 權威指南》)—60小時
Spark core
Spark概述。Spark叢集安裝。執行第一個Spark案例程式(求PI)。RDD
RDD概述。建立RDD。RDD程式設計API(Transformation 和 Action Operations)。RDD的依賴關係RDD的快取DAG(有向無環圖)Spark SQL and DataFrame/DataSet
Spark SQL概述。DataFrames。DataFrame常用操作。編寫Spark SQL查詢程式。Spark Streaming
park Streaming概述。理解DStream。DStream相關操作(Transformations 和 Output Operations)。Structured Streaming
其他(MLlib and GraphX )
這個部分一般工作中如果不是資料探勘,機器學習一般用不到,可以等到需要用到的時候再深入學習。
官網: http://spark.apache.org中文社群:http://www.aboutyun.com/forum-146-1.htmPython (推薦廖雪峰的部落格—30小時)
目前暫且列出來這麼多吧,大資料目前還有很多比較好的技術框架,這個就需要等大家以後工作之後再去擴充套件了,大家在學習的時候,要專門挑一兩個著重研究一下,最好針對,底層原理,最佳化,原始碼等部分有所涉獵,這麼的話可以在面試過程中脫穎而出。不要想著把每一個框架都搞精通,目前是不現實的,其實就算是在工作中也不會每一個框架都會用的很深,如果能過對上面的框架都大致會使用,並且對某一兩個框架研究的比較深的話,其實想去找一份滿意的大資料工作也就水到渠成了。
--如果覺得答案解決了你的問題,請採納,有問題可繼續追問--
-
9 # 甜甜卷ttj
大資料主要學習:linux.高併發處理,Hadoop,zookeeper,spark,flink這些大框架,但是細分後還是很多的呢
學習大資料需要有java基礎或者python。如果沒有這方面的基礎的話學習大資料會不太現實。如果你有基礎可以著手從以上幾個方面入手學習。如果沒有還是建議先學習基礎語言,基礎語言學好,再學大資料會很輕鬆哦。給你推薦一家超好的資料,百戰程式設計師的,他們家資料很全,還細,最主要是免費的,希望對你有幫助
-
10 # 驀然與回首
前言
要從事計算機行業的工作,不管是什麼工作,開發、測試、還是演算法等,都是要有一門自己比較熟練的程式語言,程式語言可以是C語言、Java、C++等,只要是和你後續工作所相關的就可以(後續用到其他語言的話,你有一門語言基礎了,學起來就快了)。一般初學者入門語言大多都會選擇Java、C語言、C++或者Python,而且現在網上有很多好的影片,可以供初學者學習使用。關於學習影片或者資料的選擇,知乎或者百度等都有很多講解了,也可以跟師兄師姐諮詢,這樣可以少走很多彎路,當然,有人說,走一些彎路總是有好處的,但是我這裡說的彎路不是說不犯錯誤,不調bug,而是指學習資料以及一些知識點的偏重點,這樣可以儘量節約一部分時間,剛開始時,總會有點迷,而且當你真正投入進去學習時,會發現時間總是不夠用。
下面就說一下我自己從Java開發到大資料開發的曲折學習之路(狗頭保命.jpg)。因為我現在是做大資料相關的工作了,所以Java後端涉及到的一些SSM框架等知識點我就不介紹了,畢竟後續一段時間也沒有做了。自己看過的大資料學習相關的影片+資料大概是200G-300G吧,從Linux->Hadoop->。。。->Spark->專案,還有就是一些面試文件,面經等。一些影片看了兩遍或者更多,跟著學,跟著敲程式碼,做專案,準備面試。涉及到需要學習的東西包括:JavaSE,資料結構與演算法(計算機行業必備),MySQL,Redis,ES(資料庫這些可以看專案,也可以自己熟練一兩個),Linux,Shell(這個可以後期補),Hadoop,Zookeeper,Hive,Flume,Kafka,HBase,Scala(Spark是Scala寫的,會Scala做相關的專案會更容易入手),Spark,Flink(這個是找工作時有面試官問過幾次liao不liao解,所以找完工作才開始接觸學習),相關專案。
程式語言階段學習如果是零基礎的話,建議還是從影片開始入門比較好,畢竟一上來就看教材,這樣有些程式碼的來龍去脈可能不是很瞭解。如果是有一些程式語言基礎的話,從影片開始也會更簡單,一些for、while迴圈你都知道了,學起來也會快很多。 JavaSE我是選擇的某馬劉意的為主,因為剛剛開始學Java看過一本從《Java從入門到精通》,沒什麼感覺,後續又在看了某課網的Java初級影片,還是沒感覺出來啥(當時就有點懷疑自己了。。。),可能有點沒進入狀態。 還好後續找了某馬劉意老師的JavaSE影片(我是看的2015年版本,那時候19版還沒出),覺得他講的真的是很好很詳細,每個知識點都會有例子,也都會帶你敲程式碼,做測試,可能前面有C語言基礎,然後也看過Java的一些語法,所以學起來還是比較順利,後面的IO流、多執行緒等知識點時,也有看書看部落格,或者看看其他老師的課程,講解的可能自己比較容易接受就可以,反正都是多嘗試(下面會給出影片連結),儘量懂一些,後續可以回頭來複習。JavaSE相關的影片,先看一遍,後續有時間建議再看一遍,而且這些經典的影片,看兩遍真的是享受。 如果有一定基礎了的,JavaSE前面七八天的影片可以加速看,但是不懂的一定要停下開仔細想想,零基礎的還是儘量不要加速吧,慢慢來穩些。後面的影片建議還是跟著影片來,儘量不要加速,程式碼儘量都敲一敲,第一遍基本上一個月到一個半月可以結束。 JavaSE可以說是很基礎也很重要的東西,主要重點包括面向物件、集合(List、Map等),IO流,String/StringBuilder/StringBuffer、反射、多執行緒,這些最好是都要熟悉一些,面試也是重點。 JavaSE之後,如果你是要走前端或後端開發路線的話,可以跟著一些網上的影片繼續學習,這裡我就不多做介紹了。
===========分割線,Scala可以後續Spark階段再接觸學習=============
Scala的學習,Scala是一門多正規化 (multi-paradigm) 的程式語言,Scala支援面向物件和函數語言程式設計,最主要的是後續Spark的內容需要用到Scala,所以前面學習了JavaSE,到Spark學習之前,再把Scala學習一波,美滋滋,而且Scala可以和Java進行無縫對接,混合使用,更是爽歪歪。後續Spark學習時基本都是用的Scala,也可能是和Java結合使用,所以Spark之前建議還是先學一波Scala,而且Scala用起來真是很舒服(wordcount一行程式碼搞定),適合迭代式計算,對資料處理有很大幫助,不過Scala看程式碼很容易看懂,但是學起來還是挺難的,比如樣例類(case class)用起來真是nice,但是隱式轉換學起來就相對比較難。學習Scala的建議:1. 學習scala 特有的語法,2. 搞清楚scala和java區別,3. 瞭解如何規範的使用scala。Scala對學習Spark是很重要的(後面Flink也是要用),雖然現在很多公司還是用Java開發比較多,而且Spark是Scala寫的,如果要讀原始碼,會Scala還是很重要的(至少要看得懂程式碼)。 Scala主要重點包括:隱式轉換和隱式引數、模式匹配、函數語言程式設計。這裡我看的是某矽谷韓老師的Scala影片,韓老師講的真的很不錯,五星推薦,哈哈。 也許有人會覺得Python也是需要的,但是學習階段,可能用Java還是比較多,面試也基本都是問Java相關的內容,所以Python後續工作會用到的話,再看看Python的內容吧。
大資料框架階段學習大資料這方面的知識點自己可以說真的是從零開始的,剛剛開始學那會Linux基本都沒用過,心裡那個虛啊,而且時間也緊迫,想起來都是一把辛酸淚。 剛剛開始學的時候,看了廈門大學林子雨的《 大資料技術原理與應用》課程,可能這個課程是面對上課的,所以看了一些,感覺對自己幫助不是很大(並不是說課程不好,可能不太適合自己,如果是要了解理論知識,很透徹,但是俺時間緊迫啊),所以就繼續在網上找影片,然後發現某矽谷的培訓影片很多人去參加,而且知識點也很齊全,大資料相關元件都有講課,還有一些專案比較好,所以就找了它相關的影片,當時看的是2018年的,所以影片不算舊。 來一張推薦系統架構的圖,先看看
一般來說,Flume+Kafka對資料進行採集聚合傳輸,一方面Spark對實時資料進行處理,傳輸給相應的資料處理模組(比如實時資料處理的演算法模組,Spark也有提供常見的機器學習演算法的程式庫),另一方面採集的資料也可以放入資料庫(HBase、MongoDB等)中,後續MapReduce對離線資料進行離線處理,資料處理完畢用於後續的使用,資料採集處理的流程大概就是這樣。如果是推薦系統,實時推薦會給使用者產生實時的推薦結果,讓使用者進行查閱選擇,比如你在介面瀏覽了或者看了新的物品,然後重新整理下介面,可能給你展示的東西就有一些變成跟你剛剛瀏覽的相關了。離線推薦的話主要是對離線資料進行處理,為物品或種類做出相似的推薦,如果後續使用者搜尋相應的物品時,給使用者展示相應的產品。
大資料學習路線:Linux -> Hadoop -> Zookeeper -> Hive -> Flume -> Kafka -> HBase -> Scala -> Spark -> 專案 - > Flink( 如果需要學習Storm,在Spark前面學習)
一、Linux(基本操作)一般我們使用的都是虛擬機器來進行操作,所以要安裝VM( Virtual Machine),我使用的是CentOS,所以VM和CentOS都要跟著安裝好,跟著影片操作,一定要動手實踐,將一些Linux基本命令熟練掌握,一些VIM編輯器的命令也要會用,做相應的一些配置,使用SecureCRT來做遠端登入操作(也可以使用其他的,自己順手就行)。再強調一遍,基本操作命令儘量熟練一點,如果一下記不住,列印一些常用的,自己看看,多用多實踐,慢慢就會用了。還有一些軟體包的下載安裝解除安裝等,跟著操作一遍,熟悉下,後續都會使用,Shell程式設計可以後續補。
二、Hadoop(重點中的重點)Hadoop是一個分散式系統基礎框架,用於主要解決海量資料的儲存和海量資料的分析計算問題,也可以說Hadoop是後續整個叢集環境的基礎,很多框架的使用都是會依賴於Hadoop。主要是由HDFS、MapReduce、YARN組成。這個部分安裝Hadoop,Hadoop的三個主要組成部分是重點,對他們的概念要理解出來,知道他們是做什麼的,搭建叢集環境,偽分散式模式和完全分散式模式的搭建,重要的是完全分散式的搭建,這些部分一定要自己動手實踐,自己搭建叢集,仔細仔細再仔細,Hadoop的NameNode,DataNode,YARN的啟動關閉命令一定要知道,以及他們的啟動關閉順序要記住,不要搞混。後續影片會有一些案例操作,跟著寫程式碼,做測試,把基本環境都配置好,後續這個叢集(完全分散式需要三臺虛擬機器)要一直使用。
三、ZookeeperZookeeper是一個開源的分散式的,為分散式應用提供協調服務的Apache專案。分散式安裝ZK,對ZK有一定的瞭解就可以了,瞭解它的應用場景,以及內部原理,跟著做一些操作,基本上有一些瞭解即可。
四、Hive(重點)Hive是基於Hadoop的資料倉庫工具,可以將結構化的資料檔案對映為一張表,並提供類SQL查詢功能。Hive的安裝,它的資料型別,以及它的資料定義、資料操作有較好的瞭解,怎麼操作表(建立表、刪除表,建立什麼型別的表,他們有什麼不同),怎麼操作資料(載入資料,下載資料,對不同的表進行資料操作),對資料的查詢一定要進行實踐操作,以及對壓縮方式和儲存格式要有一些瞭解,用到時不懂也可以去查,最好是能理解清楚。這部分有什麼面試可能會問,所以影片後續的面試講解可以看看,理解清楚。
五、FlumeFlume是一個高可用的,高可靠的,分散式的海量日誌採集、聚合和傳輸的系統。對於Flume,對它的組成架構,以及對Flume Agent的內部原理要理解清楚,Source、Channel、Sink一定要知道它們的各種型別以及作用,有哪些拓撲結構是常見常用的,例如一對一,單Source、多Channel、多Sink等,它們有什麼作用,要理解清楚。還有一個重點,就是對Flume的配置檔案一定要了解清楚,不懂的可以上官網檢視案例,對於不同的情況,它的配置檔案要做相應的修改,才能對資料進行採集處理,影片中的實踐案例一定要跟著做。
六、Kafka(重點)Kafka是一個分散式訊息佇列,用來快取資料的。比如說實時計算中可以透過Flume+Kafka對資料進行採集處理之後,Spark Streaming再使用Kafka相應的Topic中的資料,用於後續的計算使用。對於Kafka,要理解Kafka的架構,什麼是Kafka,為什麼需要Kafka,應用場景。基本的命令列操作要掌握,比如怎麼建立刪除Topic,怎麼透過生產者生成資料,消費者怎麼消費資料等基本操作,官網也是有一些案例可以查閱的。
七、HBase(重點)HBase是一個分散式的、基於列儲存的開源資料庫。HBase適合儲存PB級別的海量資料,也可以說HBase是很適合大資料的儲存的,它是基於列式儲存資料的,列族下面可以有非常多的列,列族在建立表的時候就必須指定。所以對HBase的資料結構要有一定的理解,特別是RowKey的設計部分(因為面試被問到過,咳咳,所以點一下),對於它的原理要了解,一些基本操作也要都會,比如建立表,對錶的操作,基本的API使用等。
八、Spark(重點中的重點)Spark是快速、易用、通用的大資料分析引擎。一說到Spark,就有一種哪哪都是重點感覺,哈哈。 Spark的組成可以看下圖
Spark是基於記憶體計算的,對於資料的處理速度要比MapReduce快很多很多,而且資料探勘這些都是要對資料做迭代式計算,MapReduce對資料的處理方式也不適合,而Spark是可以進行迭代式計算,很適合資料探勘等場景。Spark的Spark SQL能夠對結構化資料進行處理,Spark SQL的DataFrame或DataSet可以作為分散式SQL查詢引擎的作用,可以直接使用Hive上的表,對資料進行處理。Spark Streaming主要用於對應用場景中的實時流資料進行處理,支援多種資料來源,DStream是Spark Streaming的基礎抽象,由一系列RDD組成,每個RDD中存放著一定時間段的資料,再對資料進行處理,而且是基於記憶體計算,速度快,所以很適合實時資料的處理。Spark MLlib提供常見的機器學習(ML)功能的程式庫。包括分類、迴歸、聚類、協同過濾等,還提供了模型評估、資料 匯入等額外的支援功能。對Spark的核心元件、部署模式(主要是Standalone模式和YARN模式)、通訊架構、任務排程要有一定了解(面試問到了可以說一波),Spark Shuffle要好好理解,還有記憶體管理要知道,對Spark的核心原理一定要好好理解,不僅面試可能要用,以後工作也是有幫助的。
九、Flink(重點中的重點)Flink是一個框架和分散式處理引擎,用於對無界(有開始無結束)和有界(有開始有結束)資料流進行有狀態計算。現在主要是阿里系公司使用的比較多,很多公司使用的還是Spark居多,而且Flink基本上都是和Spark很多功能大體上一樣的,但是以後Flink和Spark孰強孰弱還有待時間的考驗,不過Flink近幾年越來越火了這是事實,所以如果有時間有精力的話,可以學一學Flink相關的內容也是很不錯的。Spark和Flink主要都是在資料處理方面應用,在資料處理方面的話,離線資料處理:Flink暫時比不上Spark,Spark SQL優點在於可以和Hive進行無縫連線,Spark SQL可以直接使用Hive中的表;Flink暫時做不到這一步,因為官方不支援這一操作,Flink只能將資料讀取成自己的表,不能直接使用Hive中的表。對於實時資料的處理:Flink和Spark可以說是平分秋色吧,而且Flink是以事件為驅動對資料進行處理,而Spark是以時間為驅動對資料進行處理,在一些應用場景中,也許Flink的效果比Spark的效果還要好些,因為Flink對資料更加的敏感。比如一秒鐘如果觸發了成千上萬個事件,那麼時間驅動型就很難對資料做細緻的計算,而事件驅動型可以以事件為單位,一個個事件進行處理,相比而言延遲更低,處理效果更好。現在使用Flink的公司越來越多,有時間學習下,也算是有個準備。
專案階段其實某矽谷的影片裡面有很多大資料相關的專案,而且都是文件配程式碼的,B站上也有影片,學習期間可以跟著影片做兩到三個專案,自己理清思路,把專案理解透徹,還是可以學到很多東西的。 根據自己情況,選擇兩到三個專案重點跟著做,理解透徹一點
大資料專案實戰某矽谷的影片裡面有很多大資料相關的專案,而且都是文件配程式碼的,學習期間可以跟著影片做兩到三個專案,自己理清思路,把專案理解透徹,還是可以學到很多東西的。根據自己情況,選擇兩到三個專案重點跟著做,理解透徹一點。相關專案文件資料我已經放到網盤,GongZhongHao回覆相應關鍵字獲取領取方式。 相關專案、涉及技術框架及其B站連結(B站連結主要是為了有些小夥伴網盤速度限制,這樣就下載文件資料即可)
書籍書籍部分直接雲盤連結儲存即可,這裡我放兩張Java開發和大資料開發我自己的書單(很多,路漫漫,吾將上下而求索~) Java後端書架:
大資料書架:
大概就這些,看完就需要很久了,大部分我也是需要的時候看相應的部分,所以有時間可以好好看下,不然就需要哪一部分看哪一部分,有助於學習即可。
最後大資料開發也是需要程式設計基礎的,並不是學會使用這些框架怎麼樣就可以了,所以對於程式語言,資料結構與演算法,計算機網路這些基礎也是要的,這些基礎知識也有助於自己以後的發展,如果是應屆生校招的話,面試基本上都是JavaSE和資料結構與演算法等的知識點,還有大資料元件相關的知識點,以及對專案的理解,這些都是要自己面試前準備好的,多看面經,多找面試題看,面幾次,心裡有譜了,後續面試就好了。 不管是從事什麼樣的計算機相關的崗位,程式設計都是很重要的,資料結構與演算法特別重要,還有就是leetcode等程式設計網站刷題,提升自己的程式設計思維,後續筆試面試都要要的。 要將一行行程式碼看做一疊疊rmb,但是一行行程式碼能不能轉換成一疊疊rmb,自己就一定要:堅持,多敲程式碼;多敲程式碼,堅持;堅持。
-
11 # A深巷の貓丶
大資料課程:基礎階段:Linux、Docker、KVM、MySQL基礎、Oracle基礎、MongoDB、redis。hadoop mapreduce hdfs yarn:hadoop:Hadoop 概念、版本、歷史,HDFS工作原理,YARN介紹及元件介紹。大資料儲存階段:hbase、hive、sqoop。大資料架構設計階段:Flume分散式、Zookeeper、Kafka。大資料實時計算階段:Mahout、Spark、storm。大資料資料採集階段:Python、Scala。大資料商業實戰階段:實操企業大資料處理業務場景,分析需求、解決方案實施,綜合技術實戰應用。
-
12 # 清閒的帆船先生
大資料開發的發展已經趨於成熟,小夥伴在學習過程中可以參考一些案例來學習,同時,由於企業對大資料開發技術的需求量在不斷上漲,市場上的相關大資料開發崗位在逐漸增多,因此,小夥伴入行大資料是一個比較不錯的選擇。
大資料開發技術的學習所涉獵到的知識體系是比較龐大的,所包含的知識是比較多且雜的,因此,小夥伴想要學好大資料開發技術還真不是一件簡單的事,需要小夥伴系統的學習大資料開發技術知識。對於零基礎小夥伴來講,大資料培訓學習是小夥伴獲得大資料開發技術知識的有效學習方式。
隨著大資料開發技術的火熱,市面上出現了很多大資料培訓機構,小夥伴在選擇大資料培訓班的時候,要透過多方面的對比考察瞭解,理性選擇一家比較靠譜的大資料培訓機構來學習。那小夥伴選擇了適合自己的大資料培訓班之後,在培訓班如何進行學習呢?
1.學習積累相關程式設計基礎知識
大資料開發技術基礎知識的學習離不開java、Python、R語言等程式設計基礎的積累,因此,小夥伴在大資料培訓班要以培訓課程內容為主線,學習相應的程式設計基礎語言,在不斷的學習過程中,豐富自身程式設計知識結構。
2.注重實戰專案案例的練習
大資料開發技術是一項比較複雜的程式語言,小夥伴想要學好大資料開發技術,除了不斷的積累程式設計基礎知識之外,還需要練習相關的專案實戰案例,才可能快速的理解學習大資料開發技術知識,透過專案實戰案例的練習,可以鍛鍊小夥伴在專案開發過程中解決問題的能力,讓小夥伴更快速的適應公司的工作環境。
3.交流性學習
小夥伴在學習大資料開發技術的過程中,要不斷的去和老師、同學進行交流,在交流的過程中,不斷學習好的程式設計思路,將這些思路融會貫通,融入到自己的程式設計思維當中,這樣不間斷的學習,可以更有利的幫助小夥伴成長。
最後,小夥伴在學習大資料開發技術知識過程中,適合自己的學習方法很重要,在這個學習過程中,小夥伴要養成良好的學習習慣,確定自己的發展方向,針對性學習,以用為學。尚矽谷大資料培訓是一家比較靠譜的線下面授教學職業教育培訓機構,老師都是具有一定專案實戰開發經驗和教學經驗的技術大牛帶領小夥伴學習,能夠讓小夥伴更快速的入門大資料開發,同時,培訓班還有相關的大資料影片供小夥伴下載學習!
http://www.atguigu.com/bigdata_video.shtml
回覆列表
1. 數學知識
數學知識是資料分析師的基礎知識。對於初級資料分析師,瞭解一些描述統計相關的基礎內容,有一定的公式計算能力即可,瞭解常用統計模型演算法則是加分。對於高階資料分析師,統計模型相關知識是必備能力,線性代數(主要是矩陣計算相關知識)最好也有一定的瞭解。而對於資料探勘工程師,除了統計學以外,各類演算法也需要熟練使用,對數學的要求是最高的。
2. 分析工具對於初級資料分析師,玩轉Excel是必須的,資料透視表和公式使用必須熟練,VBA是加分。另外,還要學會一個統計分析工具,SPSS作為入門是比較好的。對於高階資料分析師,使用分析工具是核心能力,VBA基本必備,SPSS/SAS/R至少要熟練使用其中之一,其他分析工具(如Matlab)視情況而定。對於資料探勘工程師……嗯,會用用Excel就行了,主要工作要靠寫程式碼來解決呢。
3. 程式語言對於初級資料分析師,會寫SQL查詢,有需要的話寫寫Hadoop和Hive查詢,基本就OK了。對於高階資料分析師,除了SQL以外,學習Python是很有必要的,用來獲取和處理資料都是事半功倍。當然其他程式語言也是可以的。對於資料探勘工程師,Hadoop得熟悉,Python/Java/C++至少得熟悉一門,Shell得會用……總之程式語言絕對是資料探勘工程師的最核心能力了。
4. 業務理解業務理解說是資料分析師所有工作的基礎也不為過,資料的獲取方案、指標的選取、乃至最終結論的洞察,都依賴於資料分析師對業務本身的理解。對於初級資料分析師,主要工作是提取資料和做一些簡單圖表,以及少量的洞察結論,擁有對業務的基本瞭解就可以。對於高階資料分析師,需要對業務有較為深入的瞭解,能夠基於資料,提煉出有效觀點,對實際業務能有所幫助。對於資料探勘工程師,對業務有基本瞭解就可以,重點還是需要放在發揮自己的技術能力上。
5. 邏輯思維這項能力在我之前的文章中提的比較少,這次單獨拿出來說一下。對於初級資料分析師,邏輯思維主要體現在資料分析過程中每一步都有目的性,知道自己需要用什麼樣的手段,達到什麼樣的目標。對於高階資料分析師,邏輯思維主要體現在搭建完整有效的分析框架,瞭解分析物件之間的關聯關係,清楚每一個指標變化的前因後果,會給業務帶來的影響。對於資料探勘工程師,邏輯思維除了體現在和業務相關的分析工作上,還包括演算法邏輯,程式邏輯等,所以對邏輯思維的要求也是最高的。
6. 資料視覺化資料視覺化說起來很高大上,其實包括的範圍很廣,做個PPT裡邊放上資料圖表也可以算是資料視覺化,所以我認為這是一項普遍需要的能力。對於初級資料分析師,能用Excel和PPT做出基本的圖表和報告,能清楚的展示資料,就達到目標了。對於高階資料分析師,需要探尋更好的資料視覺化方法,使用更有效的資料視覺化工具,根據實際需求做出或簡單或複雜,但適合受眾觀看的資料視覺化內容。對於資料探勘工程師,瞭解一些資料視覺化工具是有必要的,也要根據需求做一些複雜的視覺化圖表,但通常不需要考慮太多美化的問題。
7. 協調溝通對於初級資料分析師,瞭解業務、尋找資料、講解報告,都需要和不同部門的人打交道,因此溝通能力很重要。對於高階資料分析師,需要開始獨立帶專案,或者和產品做一些合作,因此除了溝通能力以外,還需要一些專案協調能力。對於資料探勘工程師,和人溝通技術方面內容偏多,業務方面相對少一些,對溝通協調的要求也相對低一些。