-
1 # 大資料技術與應用實戰
-
2 # 火柴HONG
不論是學生還是職場人,要想學習大資料都需要掌握以下幾個基本內容:
第一:計算機基礎知識。計算機基礎知識對於學習大資料技術是非常重要的,其中作業系統、程式語言和資料庫這三方面知識是一定要學習的。程式語言可以從Python開始學起,而且如果未來要從事專業的大資料開發,也可以從Java開始學起。計算機基礎知識的學習具有一定的難度,學習過程中要重視實驗的作用。
第二:數學和統計學基礎知識。大資料技術體系的核心目的是“資料價值化”,資料價值化的過程一定離不開資料分析,所以作為資料分析基礎的數學和統計學知識就比較重要了。數學和統計學基礎對於大資料從業者未來的成長空間有比較重要的影響,所以一定要重視這兩個方面知識的學習。尚學堂百戰程式設計師的大資料課程就不錯,有試聽課程可以學習下,695節課時,他家做了15年了,口碑一直不錯呢。
第三:大資料平臺基礎。大資料開發和大資料分析都離不開大資料平臺的支撐,大資料平臺涉及到分散式儲存和分散式計算等基礎性功能,掌握大資料平臺也會對於大資料技術體系形成較深的認知程度。對於初學者來說,可以從Hadoop和Spark開始學起。
-
3 # 科技嘿嘿
1、學科知識:從資料分析涉及到的專業知識點上看,主要是這些:
(1)統計學:引數檢驗、非參檢驗、迴歸分析等
(2)數學:線性代數、微積分等
(3)社會學:主要是一些社會學量化統計的知識,如問卷調查與統計分析;還有就是一些社會學的知識,這些對於從事營銷類的資料分析人員比較有幫助
(4)經濟金融:如果是從事這個行業的資料分析人員,經濟金融知識是必須的,這裡就不多說了
(5)計算機:從事資料分析工作的人必須瞭解你使用的資料是怎麼處理出來的,要了解資料庫的結構和基本原理,同時如果條件充足的話,你還能有足夠的能力從資料庫裡提取你需要的資料(比如使用SQL進行查詢),這種提取資料分析原材料的能力是每個資料從業者必備的。此外,如果要想走的更遠,還要能掌握一些程式設計能力,從而借住一些專業的資料分析工具,幫助你完成工作。
……好好學習,雖然累,但是要堅持!
2、軟體相關:從事資料分析方面的工作必備的工具是什麼
(1)資料分析報告類:Microsoft Office軟體等,如果連excel表格基本的處理操作都不會,連PPT報告都不會做,那我只好說離資料分析的崗位還差的很遠。現在的資料呈現不再單單只是表格的形式,而是更多需要以視覺化圖表去展示你的資料結果,因此資料視覺化軟體就不能少,BDP個人版、ECharts等這些必備的,就看你自己怎麼選了。
(2)專業資料分析軟體:Office並不是全部,要從在資料分析方面做的比較好,你必須會用(至少要了解)一些比較常用的專業資料分析軟體工具,比如SPSS、SAS、Matlab等等,這些軟體可以很好地幫助我們完成專業性的演算法或模型分析,還有高階的python、R等。
(3)資料庫:hive、hadoop、impala等資料庫相關的知識可以學習;
(3)輔助工具:比如思維導圖軟體(如MindManager、MindNode Pro等)也可以很好地幫助我們整理分析思路。
最重要的是:理論知識+軟體工具+資料思維=資料分析基礎,最後要把這些資料分析基礎運用到實際的工作業務中,好好理解業務邏輯,真正用資料分析驅動網站運營、業務管理,真正發揮資料的價值。
-
4 # 理工楠
MapReduce工作機制
MapReduce的主體是兩個函式Map()和Reduce(),Map負責清洗資料,Reduce負責資料分析並輸出最終結果,而且這兩個功能之間並非一對一的關係,可以根據具體業務選擇匹配關係。
Map函式
輸入:鍵值關係的資料佇列,鍵是每段內容開頭的偏移量。
處理:從輸入中抽取出自定義的關鍵欄位。這個處理過程可以很簡單,也可以很複雜。
Reduce函式
輸入:Map的輸出結果經過MapReduce框架處理之後分發給Reduce函式,因為通常一個Reduce函式需要拿到完整的資料集之後才能開始分析。
處理:這一步的分析處理將是最為艱難和富有價值的環節。根據不同業務指標定義處理函式。
輸出:輸出自定義的格式檔案,並且儲存在HDFS上。
Combiner函式
輸入:Map的輸出結果未經過MapReduce框架處理之後直接傳送給Combiner函式。
處理:Combiner函式著手做合併歸類和排序等處理,經過處理之後,資料集大大縮小。
輸出:這時的輸出結果才傳送給MapReduce架構處理中心。
解決問題:減少頻寬傳輸壓力!
大資料的用途
淘寶店
假如我們開了一個淘寶的的話,我們就可以從淘寶裡面的資料魔方這個運用裡面獲取大量的資料,這些資料我們需要好好分析,利用好了,我們就可以創造價值。
百度推廣
我們利用百度推廣來進行廣告投放,這也是獲取大資料的一種方式,利用百度推廣來獲取我們需要的各種大資料,不過,這需要我們先進行前期的投入。
智匯推
智匯推是騰訊旗下的一款商業的廣告產品,我們也能夠通過我們自己的廣告模式來獲取我們需要的最大化的資料,和其他的推廣方式一樣,這裡也有每天的資料分析,我們同樣可以獲得大資料。
微博
微博也是一種獲得大資料的推廣方式之一,我們可以通過微博來進行企業的活動推廣,進而從每日、每月的資料中獲得我們需要的資訊,讓我們的推廣模式進行改變,為企業節約成本,為企業帶來收益。
大資料學習階段
第一階段:大資料前沿知識及hadoop入門,大資料前言知識的介紹,課程的介紹,Linux和unbuntu系統基礎,hadoop的單機和偽分佈模式的安裝配置。
第二階段:hadoop部署進階。Hadoop叢集模式搭建,hadoop分散式檔案系統HDFS深入剖析。使用HDFS提供的api進行HDFS檔案操作。Mapreduce概念及思想。
第三階段:大資料匯入與儲存。mysql資料庫基礎知識,hive的基本語法。hive的架構及設計原理。hive部署安裝與案例。sqoop安裝及使用。sqoop元件匯入到hive。
第四階段:Hbase理論與實戰。Hbase簡介。安裝與配置。hbase的資料儲存。專案實戰。
第五階段:Spaer配置及使用場景。scala基本語法。spark介紹及發展歷史,spark stant a lone模式部署。sparkRDD詳解。
第六階段:spark大資料分析原理。spark核心,基本定義,spark任務排程。sparkstreaming實時流計算。sparkmllib機器學習。sparksql查詢。
第七階段:hadoop+spark大資料分析。實戰案例深入解析。hadoop+spark的大資料分析之分類。logistic迴歸與主題推薦。
Spark原始碼完整解析和系統定製
1、Spark原始碼完整解析和系統定製系列課程1:Spark本質論RDD等
1)徹底精通RDD原始碼解讀(一);
2)徹底精通RDD原始碼解讀(二);
3)徹底精通RDD原始碼解讀(三);
4)徹底精通RDD原始碼解讀(四);
5)徹底精通RDD原始碼解讀(五);
6)徹底精通Shuffle原始碼解析和優化(一);
7)徹底精通Shuffle原始碼解析和優化(二);
8)徹底精通Shuffle原始碼解析和優化(三);
9)徹底精通Shuffle原始碼解析和優化(四);
10)徹底精通Spark作業提交和執行過程原始碼剖析(一);
11)徹底精通Spark作業提交和執行過程原始碼剖析(二);
12)徹底精通Spark作業提交和執行過程原始碼剖析(三);
13)徹底精通Spark作業提交和執行過程原始碼剖析(四);
14)徹底精通Spark作業提交和執行過程原始碼剖析(五);
15)徹底精通Akka在Spark上的原始碼解析(一);
16)徹底精通Akka在Spark上的原始碼解析(二);
17)徹底精通Akka在Spark上的原始碼解析(三);
18)徹底精通Akka在Spark上的原始碼解析(四);
19)徹底精通Akka在Spark上的原始碼解析(五);
2、Spark原始碼完整解析和系統定製系列課程2:Spark本質論Scheduler等
1)徹底精通Spark的任務排程模組原始碼剖析(一);
2)徹底精通Spark的任務排程模組原始碼剖析(二);
3)徹底精通Spark的任務排程模組原始碼剖析(三);
4)徹底精通Spark的任務排程模組原始碼剖析(四);
5)徹底精通Spark的任務排程模組原始碼剖析(五);
6)徹底精通Spark的任務排程模組原始碼剖析(六);
7)徹底精通Spark的任務排程模組原始碼剖析(七);
8)徹底精通Spark的任務排程模組原始碼剖析(八);
9)徹底精通Spark的任務排程模組原始碼剖析(九);
10)徹底精通Task執行過程原始碼剖析(一);
11)徹底精通Task執行過程原始碼剖析(二);
12)徹底精通Task執行過程原始碼剖析(三);
13)徹底精通Storage模組原始碼解析(一);
14)徹底精通Storage模組原始碼解析(二);
15)徹底精通Storage模組原始碼解析(三);
16)徹底精通Storage模組原始碼解析(四);
17)徹底精通Storage模組原始碼解析(五)
18)徹底精通Spark中的容錯處理原始碼剖析(一);
19)徹底精通Spark中的容錯處理原始碼剖析(二);
20)徹底精通Spark中的容錯處理原始碼剖析(三);
3、Spark原始碼完整解析和系統定製系列課程3:Spark本質論:SQL等
1)徹底精通Spark SQL的模組原始碼剖析(一);
2)徹底精通Spark SQL的模組原始碼剖析(二);
3)徹底精通Spark SQL的模組原始碼剖析(三);
4)徹底精通Spark SQL的模組原始碼剖析(四);
5)徹底精通Spark SQL的模組原始碼剖析(五);
6)徹底精通Spark SQL的模組原始碼剖析(六);
7)徹底精通Spark SQL的模組原始碼剖析(七);
8)徹底精通Spark SQL的模組原始碼剖析(八);
9)徹底精通Spark SQL的模組原始碼剖析(九);
10)深入Spark Catalyst原始碼剖析(一);
11)深入Spark Catalyst原始碼剖析(二);
12)深入Spark Catalyst原始碼剖析(三);
13)徹底深入Spark Streaming 原始碼解析(一);
14)徹底深入Spark Streaming 原始碼解析(二);
15)徹底深入Spark Streaming 原始碼解析(三);
16)徹底深入Spark Streaming 原始碼解析(四);
17)徹底深入Spark Streaming 原始碼解析(五);
4、Spark原始碼完整解析和系統定製系列課程4:Spark本質論:MLLib等
1)徹底精通Spark MLlib原始碼解析(一);
2)徹底精通Spark MLlib原始碼解析(二);
3)徹底精通Spark MLlib原始碼解析(三);
4)徹底精通Spark MLlib原始碼解析(四);
5)徹底精通Spark MLlib原始碼解析(五);
6)徹底精通Spark MLlib原始碼解析(六);
7)徹底精通Spark MLlib原始碼解析(七);
8)徹底精通Spark MLlib原始碼解析(八);
9)徹底精通Spark MLlib原始碼解析(九);
10)徹底精通Spark圖計算原始碼解析(一);
11)徹底精通Spark圖計算原始碼解析(二);
12)徹底精通Spark圖計算原始碼解析(三);
13)徹底精通Spark圖計算原始碼解析(四);
14)徹底精通Spark圖計算原始碼解析(五);
15)徹底精通Spark圖計算原始碼解析(六);
16)徹底精通Spark圖計算原始碼解析(七);
17)徹底精通Spark圖計算原始碼解析(八);
18)徹底精通Spark圖計算原始碼解析(九);
19)徹底精通Spark圖計算原始碼解析(十);
5、Spark原始碼完整解析和系統定製系列課程5:Spark不同場景解決方案
1)離線;
2)近線;
3)線上;
6、Spark原始碼完整解析和系統定製系列課程6:Spark 框架二次開發
1)打造自定義的Spark框架;
2)自定義框架的核心;
3)構造自己的大資料中心;
-
5 # 林凱文
第一:大資料重新定義了資料的價值。大資料既代表了技術,同時也代表了一個產業,更代表了一個發展的趨勢。大資料技術指的是圍繞資料價值化的一系列相關技術,包括資料的採集、儲存、安全、分析、呈現等等;大資料產業指的是以大資料技術為基礎的產業生態,大資料的產業生態目前尚未完善,還有較大的發展空間;發展趨勢指的是大資料將成為一個重要的創新領域。
第二:大資料為智慧化社會奠定了基礎。人工智慧的發展需要三個基礎,分別是資料、算力和演算法,所以大資料對於人工智慧的發展具有重要的意義。目前在人工智慧領域之所以在應用效果上有較為明顯的改善,一個重要的原因是目前有了大量的資料支撐,這會全面促進演算法的訓練過程和驗證過程,從而提升演算法的應用效果。
第三:大資料促進了社會資源的資料化程序。大資料的發展使得資料產生了更大的價值,這個過程會在很大程度上促進社會資源的資料化程序,而更多的社會資源實現資料化之後,大資料的功能邊界也會得到不斷的拓展,從而帶動一系列基於大資料的創新。
-
6 # 舊人舊城舊事
java(Java se,javaweb)
Linux(shell,高併發架構,lucene,solr)
Hadoop(Hadoop,HDFS,Mapreduce,yarn,hive,hbase,sqoop,zookeeper,flume)
機器學習(R,mahout)
Storm(Storm,kafka,redis)
Spark(scala,spark,spark core,spark sql,spark streaming,spark mllib,spark graphx)
Python(python,spark python)
雲端計算平臺(docker,kvm,openstack)
名詞解釋
對於小白學習大資料需要注意的點有很多,但無論如何,既然你選擇了進入大資料行業,那麼便只顧風雨兼程。正所謂不忘初心、方得始終,學習大資料你最需要的還是一顆持之以恆的心。
一、Linux
lucene: 全文檢索引擎的架構
solr: 基於lucene的全文搜尋伺服器,實現了可配置、可擴充套件並對查詢效能進行了優化
二、Hadoop
HDFS: 分散式儲存系統,包含NameNode,DataNode。NameNode:元資料,DataNode。DataNode:存數資料。
yarn: 可以理解為MapReduce的協調機制,本質就是Hadoop的處理分析機制,分為ResourceManager NodeManager。
MapReduce: 軟體框架,編寫程式。
Hive: 資料倉庫 可以用SQL查詢,可以執行Map/Reduce程式。用來計算趨勢或者網站日誌,不應用於實時查詢,需要很長時間返回結果。
HBase: 資料庫。非常適合用來做大資料的實時查詢。Facebook用Hbase儲存訊息資料並進行訊息實時的分析
ZooKeeper: 針對大型分散式的可靠性協調系統。Hadoop的分散式同步等靠Zookeeper實現,例如多個NameNode,active standby切換。
Sqoop: 資料庫相互轉移,關係型資料庫和HDFS相互轉移
Mahout: 可擴充套件的機器學習和資料探勘庫。用來做推薦挖掘,聚集,分類,頻繁項集挖掘。
Chukwa: 開源收集系統,監視大型分散式系統,建立在HDFS和Map/Reduce框架之上。顯示、監視、分析結果。
Ambari: 用於配置、管理和監視Hadoop叢集,基於Web,介面友好。
二、Cloudera
Cloudera Manager: 管理 監控 診斷 整合
Cloudera CDH:(Cloudera"s Distribution,including Apache Hadoop) Cloudera對Hadoop做了相應的改變,發行版本稱為CDH。
Cloudera Flume: 日誌收集系統,支援在日誌系統中定製各類資料傳送方,用來收集資料。
Cloudera Impala: 對儲存在Apache Hadoop的HDFS,HBase的資料提供直接查詢互動的SQL。
Cloudera hue: web管理器,包括hue ui,hui server,hui db。hue提供所有CDH元件的shell介面的介面,可以在hue編寫mr。
三、機器學習/R
R: 用於統計分析、繪圖的語言和操作環境,目前有Hadoop-R
mahout: 提供可擴充套件的機器學習領域經典演算法的實現,包括聚類、分類、推薦過濾、頻繁子項挖掘等,且可通過Hadoop擴充套件到雲中。
四、storm
Storm: 分散式,容錯的實時流式計算系統,可以用作實時分析,線上機器學習,資訊流處理,連續性計算,分散式RPC,實時處理訊息並更新資料庫。
Kafka: 高吞吐量的分散式釋出訂閱訊息系統,可以處理消費者規模的網站中的所有動作流資料(瀏覽,搜尋等)。相對Hadoop的日誌資料和離線分析,可以實現實時處理。目前通過Hadoop的並行載入機制來統一線上和離線的訊息處理
Redis: 由c語言編寫,支援網路、可基於記憶體亦可持久化的日誌型、key-value型資料庫。
五、Spark
Scala: 一種類似java的完全面向物件的程式語言。
jblas: 一個快速的線性代數庫(JAVA)。基於BLAS與LAPACK,矩陣計算實際的行業標準,並使用先進的基礎設施等所有的計算程式的ATLAS藝術的實現,使其非常快。
Spark: Spark是在Scala語言中實現的類似於Hadoop MapReduce的通用並行框架,除了Hadoop MapReduce所具有的優點,但不同於MapReduce的是job中間輸出結果可以儲存在記憶體中,從而不需要讀寫HDFS,因此Spark能更好的適用於資料探勘與機器學習等需要迭代的MapReduce演算法。可以和Hadoop檔案系統並行運作,用過Mesos的第三方叢集框架可以支援此行為。
Spark SQL: 作為Apache Spark大資料框架的一部分,可用於結構化資料處理並可以執行類似SQL的Spark資料查詢
Spark Streaming:一種構建在Spark上的實時計算框架,擴充套件了Spark處理大資料流式資料的能力。
Spark MLlib: MLlib是Spark是常用的機器學習演算法的實現庫,目前(2014.05)支援二元分類,迴歸,聚類以及協同過濾。同時也包括一個底層的梯度下降優化基礎演算法。MLlib以來jblas線性代數庫,jblas本身以來遠端的Fortran程式。
Spark GraphX: GraphX是Spark中用於圖和圖平行計算的API,可以在Spark之上提供一站式資料解決方案,可以方便且高效地完成圖計算的一整套流水作業。
Fortran: 最早出現的計算機高階程式設計語言,廣泛應用於科學和工程計算領域。
BLAS: 基礎線性代數子程式庫,擁有大量已經編寫好的關於線性代數運算的程式。
LAPACK: 著名的公開軟體,包含了求解科學與工程計算中最常見的數值線性代數問題,如求解線性方程組、線性最小二乘問題、特徵值問題和奇異值問題等。
ATLAS: BLAS線性演算法庫的優化版本。
Spark Python: Spark是由scala語言編寫的,但是為了推廣和相容,提供了java和python介面。
六、Python
Python: 一種面向物件的、解釋型計算機程式設計語言。
七、雲端計算平臺
Docker: 開源的應用容器引擎
kvm: (Keyboard Video Mouse)
openstack: 開源的雲端計算管理平臺專案
-
7 # Johngo
做大資料需要學習的東西還是不少的。
語言:Java、Python、Scala、Shell、SQL
元件:Hadoop生態、Hive、Spark、Flink...,以及其他開源社群元件
Linux因為大資料相關軟體都是在Linux上執行的,所以Linux要學習的紮實一些,學好Linux對你快速掌握大資料相關技術會有很大的幫助,能讓你更好的理解hadoop、hive、hbase、spark等大資料軟體的執行環境和網路環境配置,能少踩很多坑,學會shell就能看懂指令碼這樣能更容易理解和配置大資料叢集。
Hadoop這是現在流行的大資料處理平臺幾乎已經成為大資料的代名詞,所以這個是必學的。Hadoop裡面包括幾個元件HDFS、MapReduce和YARN,HDFS是儲存資料的地方就像我們電腦的硬碟一樣檔案都儲存在這個上面,MapReduce是對資料進行處理計算的,它有個特點就是不管多大的資料只要給它時間它就能把資料跑完,但是時間可能不是很快所以它叫資料的批處理。YARN是體現Hadoop平臺概念的重要元件有了它大資料生態體系的其它軟體就能在hadoop上運行了,這樣就能更好的利用HDFS大儲存的優勢和節省更多的資源比如我們就不用再單獨建一個spark的叢集了,讓它直接跑在現有的hadoop yarn上面就可以了。其實把Hadoop的這些元件學明白你就能做大資料的處理了,只不過你現在還可能對"大資料"到底有多大還沒有個太清楚的概念,聽我的別糾結這個。等以後你工作了就會有很多場景遇到幾十T/幾百T大規模的資料,到時候你就不會覺得資料大真好,越大越有你頭疼的。當然別怕處理這麼大規模的資料,因為這是你的價值所在,讓那些個搞Javaee的php的html5的和DBA的羨慕去吧。
Zookeeper這是個萬金油,安裝Hadoop的HA的時候就會用到它,以後的Hbase也會用到它。它一般用來存放一些相互協作的資訊,這些資訊比較小一般不會超過1M,都是使用它的軟體對它有依賴,對於我們個人來講只需要把它安裝正確,讓它正常的run起來就可以了。
Mysql我們學習完大資料的處理了,接下來學習學習小資料的處理工具mysql資料庫,因為一會裝hive的時候要用到,mysql需要掌握到什麼層度那?你能在Linux上把它安裝好,執行起來,會配置簡單的許可權,修改root的密碼,建立資料庫。這裡主要的是學習SQL的語法,因為hive的語法和這個非常相似。
Sqoop這個是用於把Mysql裡的資料匯入到Hadoop裡的。當然你也可以不用這個,直接把Mysql資料表匯出成檔案再放到HDFS上也是一樣的,當然生產環境中使用要注意Mysql的壓力。
Hive這個東西對於會SQL語法的來說就是神器,它能讓你處理大資料變的很簡單,不會再費勁的編寫MapReduce程式。有的人說Pig那?它和Pig差不多掌握一個就可以了。
Oozie既然學會Hive了,我相信你一定需要這個東西,它可以幫你管理你的Hive或者MapReduce、Spark指令碼,還能檢查你的程式是否執行正確,出錯了給你發報警並能幫你重試程式,最重要的是還能幫你配置任務的依賴關係。我相信你一定會喜歡上它的,不然你看著那一大堆指令碼,和密密麻麻的crond是不是有種想屎的感覺。
Hbase這是Hadoop生態體系中的NOSQL資料庫,他的資料是按照key和value的形式儲存的並且key是唯一的,所以它能用來做資料的排重,它與MYSQL相比能儲存的資料量大很多。所以他常被用於大資料處理完成之後的儲存目的地。
Kafka這是個比較好用的佇列工具,佇列是幹嗎的?排隊買票你知道不?資料多了同樣也需要排隊處理,這樣與你協作的其它同學不會叫起來,你幹嗎給我這麼多的資料(比如好幾百G的檔案)我怎麼處理得過來,你別怪他因為他不是搞大資料的,你可以跟他講我把資料放在佇列裡你使用的時候一個個拿,這樣他就不在抱怨了馬上灰流流的去優化他的程式去了,因為處理不過來就是他的事情。而不是你給的問題。當然我們也可以利用這個工具來做線上實時資料的入庫或入HDFS,這時你可以與一個叫Flume的工具配合使用,它是專門用來提供對資料進行簡單處理,並寫到各種資料接受方(比如Kafka)的。
Spark它是用來彌補基於MapReduce處理資料速度上的缺點,它的特點是把資料裝載到記憶體中計算而不是去讀慢的要死進化還特別慢的硬碟。特別適合做迭代運算,所以演算法流們特別稀飯它。它是用scala編寫的。Java語言或者Scala都可以操作它,因為它們都是用JVM的。
FlinkFlink靈活的視窗;
Exactly once語義保證;
這兩個原因可以大大的解放程式設計師, 加快程式設計效率, 把本來需要程式設計師花大力氣手動完成的工作交給框架, 下面簡單介紹一下這兩個特徵。
-
8 # 大鼻子熊哥的VLOG
大資料(big data),指無法在一定時間範圍內用常規軟體工具進行捕捉、管理和處理的資料集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的資訊資產。目前,大資料算是非常火的專業,下面我將和大家談談大資料專業學什麼?
大資料專業分為兩種,其一是大資料開發,其二是資料分析與挖掘。
1、大資料開發:Ja-va、大資料基礎、Hadoop體系、Scala、kafka、Spark等內容;
2、資料分析與挖掘:Python、關係型資料庫MySQL、文件資料庫MongoDB、記憶體資料庫Redis、資料處理、資料分析等。
-
9 # Eric221490590
大資料就是資料收集並分析。
資料收集需要用到資料庫,資料庫知識必不可少。
資料分析需要用到各種模糊演算法。
-
10 # 魂逗羅
資料探勘、資料分析、大資料運維(BAT這些大公司基本是24小時三班倒)、資料倉庫、演算法。
大資料崗位很多,資料探勘工程師,大資料分析師,演算法工程師等,巨集觀上就兩方面,一個是底層架構、執行程式的搭建需要大資料IT技術,一個是大資料的分析使用,得出供決策的結果。
-
11 # 千鋒頭號粉絲
想學習大資料技術,是不是首先要知道大資料技術有哪些呢?也好知道自己未來應該往哪個方向發展,應該重點學習哪些知識?
抽象而言,各種大資料技術無外乎分散式儲存 + 平行計算。具體體現為各種分散式檔案系統和建立在其上的並行運算框架。這些軟體程式都部署在多個相互連通、統一管理的物理或虛擬運算節點之上,形成叢集(cluster)。因此不妨說,雲計算是大資料的基礎。
下面介紹幾種當前比較流行的大資料技術:
1.Hadoop
Hadoop無疑是當前很知名的大資料技術了。
2003年到2004年間,Google釋出了關於GFS、MapReduce和BigTable三篇技術論文(這幾篇論文成為了後來雲計算、大資料領域發展的重要基石)。當時一位因公司倒閉賦閒在家的程式設計師Doug Cutting根據前兩篇論文,開發出了一個簡化的山寨版GFS – HDFS,以及基於其的MapReduce計算框架,這就是Hadoop當初的版本。後來Cutting被Yahoo僱傭,得以依賴Yahoo的資源改進Hadoop,並將其貢獻給了Apache開源社群。
簡單描述Hadoop原理:資料分散式儲存,運算程式被髮派到各個資料節點進行分別運算(Map),再將各個節點的運算結果進行合併歸一(Reduce),生成結果。相對於動輒TB級別的資料,計算程式一般在KB – MB的量級,這種移動計算不移動資料的設計節約了大量網路頻寬和時間,並使得運算過程可以充分並行化。
在其誕生後的近10年裡,Hadoop憑藉其簡單、易用、高效、免費、社群支援豐富等特徵成為眾多企業雲計算、大資料實施的首選。
2.Storm
Hadoop雖好,卻有其“死穴”.其一:它的運算模式是批處理。這對於許多有實時性要求的業務就無法做到很好的支援。因此,Twitter推出了他們自己的基於流的運算框架——Storm。不同於Hadoop一次性處理所有資料並得出統一結果的作業(job),Storm對源源匯入的資料流進行持續不斷的處理,隨時得出增量結果。
3.Spark
Hadoop的另一個致命弱點是:它的所有中間結果都需要進行硬碟儲存,I/O消耗巨大,這就使得它很不適合多次迭代的運算。而大多數機器學習演算法,恰恰要求大量迭代運算。
2010年開始,UC Berkeley AMP Lab開始研發分散式運算的中間過程全部記憶體儲存的Spark框架,由此在迭代計算上大大提高了效率。也因此成為了Hadoop的強有力競爭者。
4.NoSQL 資料庫
NoSQL資料庫可以泛指非關係型資料庫,不過一般用來指稱那些建立在分散式檔案系統(例如HDFS)之上,基於key-value對的資料管理系統。
相對於傳統的關係型資料庫,NoSQL資料庫中儲存的資料無需主鍵和嚴格定義的schema。於是,大量半結構化、非結構化資料可以在未經清洗的情況下直接進行儲存。這一點滿足了處理大量、高速、多樣的大資料的需求。當前比較流行的NoSQL資料庫有MongoDB,Redis,Cassandra,HBase等。
NoSQL並不是沒有SQL,而是不僅僅有(not only)SQL的意思。為了相容之前許多執行在關係型資料庫上的業務邏輯,有很多在NoSQL資料庫上執行SQL的工具湧現出來,典型的例如Hive和Pig,它們將使用者的SQL語句轉化成MapReduce作業,在Hadoop上執行。
大資料產業已進入發展的“快車道”,急需大量優秀的大資料人才作為後盾。能夠在大資料行業崛起的初期進入到這個行業當中來,才有機會成為時代的弄潮兒。
-
12 # 碼農小仙
想學大資料的話就是自學或者培訓了,但是自學的話就是自己買書買資料,自己看,但是往往自己看的話容易找不到重點,沒有目標,這樣比較浪費時間
培訓的話尤其對於小白來說效果會比較好,事半功倍,比自學更有效率,也更專業。要真正學好IT技術,應該的是找一家專業IT教育的院校,處在專業的育人環境,有專業的課程體系與老師,這才離成功最近的捷徑。建議可以跟著百戰程式設計師的線上課程學習,壓力不會很大,還可以學好技術,授課老師都是業內大牛,一個好的老師可以幫你開啟思路。百戰程式設計師是我自己在跟著學習的,很多的專案和實操也能很好的鍛鍊的自己實力可以更好的找到工作。
-
13 # 世界和平8735
學習要根據自身情況來定,如果你是零基礎,那就必須先從基礎Java開始學起(大資料支援很多開發語言,但企業用的最多的還是JAVA),接下來學習資料結構、Linux系統操作、關係型資料庫,夯實基礎之後,再進入大資料的學習
-
14 # 滿目山河空念遠
學習要根據自身情況來定,如果你是零基礎,那就必須先從基礎Java開始學起(大資料支援很多開發語言,但企業用的最多的還是JAVA),接下來學習資料結構、Linux系統操作、關係型資料庫,夯實基礎之後,再進入大資料的學習
回覆列表
我有幸做了七八年的大資料吧,從技術角度談談自己的看法,大資料都有哪個領域,都需要學習什麼技術。
第一,首先要把這些大資料都可靠的儲存起來,經過多年的發展,hdfs已經成了一個數據儲存的標準。當然還有其他的儲存,比如kudu,hbase等,都是適合不同領域的儲存。
第二,既然有了這麼多的資料,我們可以開始基於這些資料做計算了,於是從最早的MapReduce到後來的hive,spark,都是做批處理的。
第三, 由於像hive這些基於MapReduce的引擎處理速度過慢,於是有了基於記憶體的olap查詢引擎,比如impala,presto。
第四,由於批處理一般都是天級別或者小時級別的,為了更快的處理資料,於是有了spark streaming或者flink這樣的流處理引擎。
第五,由於沒有一個軟體能覆蓋住所有場景。所以針對不同的領域,有了一些特有的軟體,來解決特定場景下的問題,比如基於時間序列的聚合分析查詢資料庫,inflexdb opentsdb等。採用預聚合資料以提高查詢的druid或者kylin等,
第六,還有其他用於資料削峰和消費訂閱的訊息佇列,比如kafka和其他各種mq
第七,還有一些其他的元件,比如用於資源管理的yarn,協調一致性的zookeeper等。
第八,由於hdfs 處理小檔案問題不太好,還有為了解決大資料update和insert等問題,引入了資料湖的概念,比如hudi,iceberg等等。
第九,業務方面,我們基於大資料做一些計算,給公司的運營提供資料支撐。做一些推薦,給使用者做個性化推薦。機器學習,報警監控等等。
附一張大資料技術圖譜,你可以參考下