想學習大數據要掌握些什麼知識?


大數據技術體系太龐雜了,基礎技術覆蓋數據採集、數據預處理、分散式存儲、NOSQL資料庫、多模式計算(批處理、在線處理、實時流處理、內存處理)、多模態計算(圖像、文本、視頻、音頻)、數據倉庫、數據挖掘、機器學習、人工智慧、深度學習、並行計算、可視化等各種技術範疇和不同的層面。另外大數據應用領域廣泛,各領域採用技術的差異性還是比較大的。短時間很難掌握多個領域的大數據理論和技術,建議從應用切入、以點帶面,先從一個實際的應用領域需求,搞定一個一個技術點,有一定功底之後,再舉一反三橫向擴展,這樣學習效果就會好很多。

下面是網上的一些技術資料,以供參考-------------------------------------------------------------------------------------------

大數據技術初探

從前幾年到現在所謂的大數據時代,移動互聯網、物聯網、雲計算、人工智慧、機器人、大數據等前沿信息技術領域,逐個火了一遍,什麼是大數據,大數據的技術範疇包括那些,估計很多人都是根據自己所熟悉的領域在盲人摸象。下文從DT(Data technology,數據技術)技術泛型角度來系統地介紹什麼是大數據,包括那些核心技術,各領域之間的關係等等:首先我們說機器學習,機器學習(machine learning),是計算機科學和統計學的交叉學科,核心目標是通過函數映射、數據訓練、最優化求解、模型評估等一系列演算法實現,讓計算機擁有對數據進行自動分類和預測的功能;機器學習領域包括很多智能處理演算法,分類、聚類、回歸、相關分析等每類下面都有很多演算法進行支撐,如SVM,神經網路,Logistic回歸,決策樹、EM、HMM、貝葉斯網路、隨機森林、LDA等,無論是網路排名的十大演算法還是二十大演算法,都只能說是冰山一角;總之計算機要智能化,機器學習是核心的核心,深度學習、數據挖掘、商業智能、人工智慧,大數據等概念的核心技術就是機器學習,機器學慣用於圖像處理和識別就是機器視覺,機器學慣用於模擬人類語言就是自然語言處理,機器視覺和自然語言處理也是支撐人工智慧的核心技術,機器學慣用於通用的數據分析就是數據挖掘,數據挖掘也是商業智能的核心技術。深度學習(deep learning),機器學習裡面現在比較火的一個子領域,深度學習是已經被研究過幾十年的神經網路演算法的變種,由於在大數據條件下圖像,語音識別等領域的分類和識別上取得了非常好的效果,有望成為人工智慧取得突破的核心技術,所以各大研究機構和IT巨頭們都投入了大量的人力物力做相關的研究和開發工作。數據挖掘(data mining),是一個很寬泛的概念,類似於採礦,要從大量石頭裡面挖出很少的寶石,從海量數據裡面挖掘有價值有規律的信息同理。數據挖掘核心技術來自於機器學習領域,如深度學習是機器學習一種比較火的演算法,當然也可以用於數據挖掘。還有傳統的商業智能(BI)領域也包括數據挖掘,OLAP多維數據分析可以做挖掘分析,甚至Excel基本的統計分析也可以做挖掘。關鍵是你的技術能否真正挖掘出有用的信息,然後這些信息可以提升指導你的決策,如果是那就算入了數據挖掘的門。人工智慧(artifical intelligence),也是一個很大的概念,終極目標是機器智能化擬人化,機器能完成和人一樣的工作,人腦僅憑几十瓦的功率,能夠處理種種複雜的問題,怎樣看都是很神奇的事情。雖然機器的計算能力比人類強很多,但人類的理解能力,感性的推斷,記憶和幻想,心理學等方面的功能,機器是難以比肩的,所以機器要擬人化很難單從技術角度把人工智慧講清楚。人工智慧與機器學習的關係,兩者的相當一部分技術、演算法都是重合的,深度學習在計算機視覺和棋牌走步等領域取得了巨大的成功,比如谷歌自動識別一隻貓,最近谷歌的AlpaGo還擊敗了人類頂級的專業圍棋手等。但深度學習在現階段還不能實現類腦計算,最多達到仿生層面,情感,記憶,認知,經驗等人類獨有能力機器在短期難以達到。最後我們才說大數據(big data),大數據本質是一種方法論,一句話概括,就是通過分析和挖掘全量海量的非抽樣數據進行輔助決策。上述技術原來是在小規模數據上進行計算處理,大數據時代呢,只是數據變大了,核心技術還是離不開機器學習、數據挖掘等,另外還需考慮海量數據的分散式存儲管理和機器學習演算法並行處理等核心技術。總之大數據這個概念就是個大框,什麼都能往裡裝,大數據源的採集如果用感測器的話離不開物聯網、大數據源的採集用智能手機的話離不開移動互聯網,大數據海量數據存儲要高擴展就離不開雲計算,大數據計算分析採用傳統的機器學習、數據挖掘技術會比較慢,需要做並行計算和分散式計算擴展,大數據要互動展示離不開可視化,大數據的基礎分析要不要跟傳統商業智能結合,金融大數據分析、交通大數據分析、醫療大數據分析、電信大數據分析、電商大數據分析、社交大數據分析,文本大數據、圖像大數據、視頻大數據…諸如此類等等範圍太廣…,總之大數據這個框太大,其終極目標是利用上述一系列核心技術實現海量數據條件下的人類深度洞察和決策智能化!這不僅是信息技術的終極目標,也是人類社會發展管理智能化的核心技術驅動力。

來源:點金大數據

數據分析師的能力體系

如下圖:

  • 數學知識

數學知識是數據分析師的基礎知識。

對於初級數據分析師,了解一些描述統計相關的基礎內容,有一定的公式計算能力即可,了解常用統計模型演算法則是加分。

對於高級數據分析師,統計模型相關知識是必備能力,線性代數(主要是矩陣計算相關知識)最好也有一定的了解。

而對於數據挖掘工程師,除了統計學以外,各類演算法也需要熟練使用,對數學的要求是最高的。

  • 分析工具

對於初級數據分析師,玩轉Excel是必須的,數據透視表和公式使用必須熟練,VBA是加分。另外,還要學會一個統計分析工具,SPSS作為入門是比較好的。

對於高級數據分析師,使用分析工具是核心能力,VBA基本必備,SPSS/SAS/R至少要熟練使用其中之一,其他分析工具(如Matlab)視情況而定。

對於數據挖掘工程師……嗯,會用用Excel就行了,主要工作要靠寫代碼來解決呢。

  • 編程語言

對於初級數據分析師,會寫SQL查詢,有需要的話寫寫Hadoop和Hive查詢,基本就OK了。

對於高級數據分析師,除了SQL以外,學習Python是很有必要的,用來獲取和處理數據都是事半功倍。當然其他編程語言也是可以的。

對於數據挖掘工程師,Hadoop得熟悉,Python/Java/C++至少得熟悉一門,Shell得會用……總之編程語言絕對是數據挖掘工程師的最核心能力了。

  • 業務理解

業務理解說是數據分析師所有工作的基礎也不為過,數據的獲取方案、指標的選取、乃至最終結論的洞察,都依賴於數據分析師對業務本身的理解。

對於初級數據分析師,主要工作是提取數據和做一些簡單圖表,以及少量的洞察結論,擁有對業務的基本了解就可以。

對於高級數據分析師,需要對業務有較為深入的了解,能夠基於數據,提煉出有效觀點,對實際業務能有所幫助。

對於數據挖掘工程師,對業務有基本了解就可以,重點還是需要放在發揮自己的技術能力上。

  • 邏輯思維

這項能力在我之前的文章中提的比較少,這次單獨拿出來說一下。

對於初級數據分析師,邏輯思維主要體現在數據分析過程中每一步都有目的性,知道自己需要用什麼樣的手段,達到什麼樣的目標。

對於高級數據分析師,邏輯思維主要體現在搭建完整有效的分析框架,了解分析對象之間的關聯關係,清楚每一個指標變化的前因後果,會給業務帶來的影響。

對於數據挖掘工程師,邏輯思維除了體現在和業務相關的分析工作上,還包括演算法邏輯,程序邏輯等,所以對邏輯思維的要求也是最高的。

  • 數據可視化

數據可視化說起來很高大上,其實包括的範圍很廣,做個PPT裡邊放上數據圖表也可以算是數據可視化,所以我認為這是一項普遍需要的能力。

對於初級數據分析師,能用Excel和PPT做出基本的圖表和報告,能清楚的展示數據,就達到目標了。

對於高級數據分析師,需要探尋更好的數據可視化方法,使用更有效的數據可視化工具,根據實際需求做出或簡單或複雜,但適合受眾觀看的數據可視化內容。

對於數據挖掘工程師,了解一些數據可視化工具是有必要的,也要根據需求做一些複雜的可視化圖表,但通常不需要考慮太多美化的問題。

  • 協調溝通

對於初級數據分析師,了解業務、尋找數據、講解報告,都需要和不同部門的人打交道,因此溝通能力很重要。

對於高級數據分析師,需要開始獨立帶項目,或者和產品做一些合作,因此除了溝通能力以外,還需要一些項目協調能力。

對於數據挖掘工程師,和人溝通技術方面內容偏多,業務方面相對少一些,對溝通協調的要求也相對低一些。

  • 快速學習

無論做數據分析的哪個方向,初級還是高級,都需要有快速學習的能力,學業務邏輯、學行業知識、學技術工具、學分析框架……數據分析領域中有學不完的內容,需要大家有一顆時刻不忘學習的心。

以上,就是我對數據分析師能力的總結。

數據分析師的工具體系

一圖說明問題

可以從圖上看到,Python在數據分析中的泛用性相當之高,流程中的各個階段都可以使用Python。所以作為數據分析師的你如果需要學習一門編程語言,那麼強力推薦Python~

以上,本期內容就講完了。

作者:陳丹奕

鏈接:知乎專欄

來源:知乎

HADOOP家族產品技術介紹:

  • Apache Hadoop: 是Apache開源組織的一個分散式計算開源框架,提供了一個分散式文件系統子項目(HDFS)和支持MapReduce分散式計算的軟體架構。
  • Apache Hive: 是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張資料庫表,通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫的統計分析。
  • Apache Pig: 是一個基於Hadoop的大規模數據分析工具,它提供的SQL-LIKE語言叫Pig Latin,該語言的編譯器會把類SQL的數據分析請求轉換為一系列經過優化處理的MapReduce運算。
  • Apache HBase: 是一個高可靠性、高性能、面向列、可伸縮的分散式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。
  • Apache Sqoop: 是一個用來將Hadoop和關係型資料庫中的數據相互轉移的工具,可以將一個關係型資料庫(MySQL ,Oracle ,Postgres等)中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關係型資料庫中。
  • Apache Zookeeper: 是一個為分散式應用所設計的分布的、開源的協調服務,它主要是用來解決分散式應用中經常遇到的一些數據管理問題,簡化分散式應用協調及其管理的難度,提供高性能的分散式服務
  • Apache Mahout:是基於Hadoop的機器學習和數據挖掘的一個分散式框架。Mahout用MapReduce實現了部分數據挖掘演算法,解決了並行挖掘的問題。
  • Apache Cassandra:是一套開源分散式NoSQL資料庫系統。它最初由Facebook開發,用於儲存簡單格式數據,集Google BigTable的數據模型與Amazon Dynamo的完全分散式的架構於一身
  • Apache Avro: 是一個數據序列化系統,設計用於支持數據密集型,大批量數據交換的應用。Avro是新的數據序列化格式與傳輸工具,將逐步取代Hadoop原有的IPC機制
  • Apache Ambari: 是一種基於Web的工具,支持Hadoop集群的供應、管理和監控。
  • Apache Chukwa: 是一個開源的用於監控大型分散式系統的數據收集系統,它可以將各種各樣類型的數據收集成適合 Hadoop 處理的文件保存在 HDFS 中供 Hadoop 進行各種 MapReduce 操作。
  • Apache Hama: 是一個基於HDFS的BSP(Bulk Synchronous Parallel)並行計算框架, Hama可用於包括圖、矩陣和網路演算法在內的大規模、大數據計算。
  • Apache Flume: 是一個分布的、可靠的、高可用的海量日誌聚合的系統,可用於日誌數據收集,日誌數據處理,日誌數據傳輸。
  • Apache Giraph: 是一個可伸縮的分散式迭代圖處理系統, 基於Hadoop平台,靈感來自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。
  • Apache Oozie: 是一個工作流引擎伺服器, 用於管理和協調運行在Hadoop平台上(HDFS、Pig和MapReduce)的任務。
  • Apache Crunch: 是基於Google的FlumeJava庫編寫的Java庫,用於創建MapReduce程序。與Hive,Pig類似,Crunch提供了用於實現如連接數據、執行聚合和排序記錄等常見任務的模式庫
  • Apache Whirr: 是一套運行於雲服務的類庫(包括Hadoop),可提供高度的互補性。Whirr學支持Amazon EC2和Rackspace的服務。
  • Apache Bigtop: 是一個對Hadoop及其周邊生態進行打包,分發和測試的工具。
  • Apache HCatalog: 是基於Hadoop的數據表和存儲管理,實現中央的元數據和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供關係視圖。
  • Cloudera Hue: 是一個基於WEB的監控和管理系統,實現對HDFS,MapReduce/YARN, HBase, Hive, Pig的web化操作和管理。

大數據技術資源推介

Python 網頁爬蟲 文本處理 科學計算 機器學習 數據挖掘兵器譜

大數據資源推薦:The Big-Data Ecosystem 2015-點金大數據,專業的大數據應用諮詢服務網站

機器學習深度學習資源列表


題主,你這個問題太大,大到幾乎沒什麼人能夠全面回答你的問題。

大數據包含的東西太多了,正如之前的兩位答主所說的,大數據不僅應用技術繁複多樣,根據不同的應用領域,同樣的技術可能就會產生很多不同的用法。

這裡簡單介紹幾種我認為用的比較多的技術,因為我也僅僅是個大數據愛好者,所以有些觀點可能不太標準,建議你對照著看。

一、Hadoop

可以說,hadoop幾乎已經是大數據代名詞。無論是是否贊成,hadoop已經是大部分企業的大數據標準。得益於Hadoop生態圈,從現在來看,還沒有什麼技術能夠動搖hadoop的地位。

這一塊可以按照一下內容來學習:

1、Hadoop產生背景

2、Hadoop在大數據、雲計算中的位置和關係

3、國內外Hadoop應用案例介紹

4、國內Hadoop的就業情況分析及課程大綱介紹

5、分散式系統概述

6、Hadoop生態圈以及各組成部分的簡介

二、分散式文件系統HDFS

HDFS全稱 Hadoop Distributed File System ,它是一個高度容錯性的系統,適合部署在廉價的機器上,同時能提供高吞吐量的數據訪問,非常適合大規模數據集上的應用。為了實現流式讀取文件系統數據的目的,HDFS放寬了一部分POSIX約束。

1、分散式文件系統HDFS簡介

2、HDFS的系統組成介紹

3、HDFS的組成部分詳解

4、副本存放策略及路由規則

5、NameNode Federation

6、命令行介面

7、Java介面

8、客戶端與HDFS的數據流講解

9、HDFS的可用性(HA)

三、初級MapReduce

這是你成為Hadoop開發人員的基礎課程。

MapReduce提供了以下的主要功能:

1)數據劃分和計算任務調度:

2)數據/代碼互定位:

3)系統優化:

4)出錯檢測和恢復:

這種編程模型主要用於大規模數據集(大於1TB)的並行運算。

1、如何理解map、reduce計算模型

2、剖析偽分散式下MapReduce作業的執行過程

3、Yarn模型

4、序列化

5、MapReduce的類型與格式

6、MapReduce開發環境搭建

7、MapReduce應用開發

8、熟悉MapReduce演算法原理

四、高級MapReduce

這一塊主要是高級Hadoop開發的技能,都是MapReduce為什麼我要分開寫呢?因為我真的不覺得誰能直接上手就把MapReduce搞得清清楚楚。

1、使用壓縮分隔減少輸入規模

2、利用Combiner減少中間數據

3、編寫Partitioner優化負載均衡

4、如何自定義排序規則

5、如何自定義分組規則

6、MapReduce優化

五、Hadoop集群與管理

這裡會涉及到一些比較高級的資料庫管理知識,乍看之下都是操作性的內容,但是做成容易,做好非常難。

1、Hadoop集群的搭建

2、Hadoop集群的監控

3、Hadoop集群的管理

4、集群下運行MapReduce程序

六、ZooKeeper基礎知識

ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和性能高效、功能穩定的系統提供給用戶。

1、ZooKeeper體現結構

2、ZooKeeper集群的安裝

3、操作ZooKeeper

七、HBase基礎知識

HBase – Hadoop Database,是一個高可靠性、高性能、面向列、可伸縮的分散式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。

與FUJITSU Cliq等商用大數據產品不同,HBase是Google Bigtable的開源實現,類似Google Bigtable利用GFS作為其文件存儲系統,HBase利用Hadoop HDFS作為其文件存儲系統;Google運行MapReduce來處理Bigtable中的海量數據,HBase同樣利用Hadoop MapReduce來處理HBase中的海量數據;Google Bigtable利用 Chubby作為協同服務,HBase利用Zookeeper作為對應。

1、HBase定義

2、HBase與RDBMS的對比

3、數據模型

4、系統架構

5、HBase上的MapReduce

6、表的設計

八、HBase集群及其管理

1、集群的搭建過程

2、集群的監控

3、集群的管理

十、Pig基礎知識

Pig是進行Hadoop計算的另一種框架,是一個高級過程語言,適合於使用 Hadoop 和 MapReduce 平台來查詢大型半結構化數據集。通過允許對分散式數據集進行類似 SQL 的查詢,Pig 可以簡化 Hadoop 的使用。

1、Pig概述

2、安裝Pig

3、使用Pig完成手機流量統計業務

十一、Hive

hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張資料庫表,並提供簡單的sql查詢功能,可以將sql語句轉換為MapReduce任務進行運行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用。

1、數據倉庫基礎知識

2、Hive定義

3、Hive體系結構簡介

4、Hive集群

5、客戶端簡介

6、HiveQL定義

7、HiveQL與SQL的比較

8、數據類型

9、表與表分區概念

10、表的操作與CLI客戶端

11、數據導入與CLI客戶端

12、查詢數據與CLI客戶端

13、數據的連接與CLI客戶端

14、用戶自定義函數(UDF)

十二、Sqoop

Sqoop(發音:skup)是一款開源的工具,主要用於在Hadoop(Hive)與傳統的資料庫(mysql、postgresql...)間進行數據的傳遞,可以將一個關係型資料庫(例如 : MySQL ,Oracle ,Postgres等)中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關係型資料庫中。

1、配置Sqoop

2、使用Sqoop把數據從MySQL導入到HDFS中

3、使用Sqoop把數據從HDFS導出到MySQL中

十三、Storm

Storm為分散式實時計算提供了一組通用原語,可被用於「流處理」之中,實時處理消息並更新資料庫。這是管理隊列及工作者集群的另一種方式。 Storm也可被用於「連續計算」(continuous computation),對數據流做連續查詢,在計算時就將結果以流的形式輸出給用戶。它還可被用於「分散式RPC」,以並行的方式運行昂貴的運算。

1、Storm基礎知識:包括Storm的基本概念和Storm應用

場景,體系結構與基本原理,Storm和Hadoop的對比

2、Storm集群搭建:詳細講述Storm集群的安裝和安裝時常見問題

3、Storm組件介紹: spout、bolt、stream groupings等

4、Storm消息可靠性:消息失敗的重發

5、Hadoop 2.0和Storm的整合:Storm on YARN

6、Storm編程實戰

雖然寫了這麼多,但是仍然知識大數據的知識海洋的一角,希望題主加油!


蟹腰。

聽過帝國理工大學教授郭毅可幾節課,有一些啟發,再加上自己的一些思考一併轉述給你,希望對你有所幫助。

1,大數據是一個很大的概念,你說喜歡大數據,其實就好像在說喜歡「人類」一樣。這種感覺就像,一個外星人乍一看人類不都是一個樣嗎,然後用飛碟在地球各地擄走了幾個樣本之後,外星人發現自己懵逼了,怎麼這些樣本之間的差別這麼大啊,膚色、語言、思維習慣等等都不一樣,最後得出結論,不能用對付其中一個樣本種群的方法對付其他樣本種群,得慢慢研究。

所以,你現在可以問問自己,喜歡的是什麼大數據?是社交大數據?還是醫療大數據?是物流大數據?還是消費大數據?是犯罪大數據?還是交通大數據?。。。。。。

2,大數據並不像互聯網是現代才有的新事物。以人口普查為例,南京人口管理幹部學院的徐銘東老師說,西晉皇甫謐在《帝王世紀》一書中曾講到,從原始社會末期大禹治水以後,就有統計人口的數據,為13503923。而漢靈帝的何皇后也是在一次人口普查中被挑選入宮的。這活其實是一個歷史悠久的非常枯燥的差事,只是現在利用了計算機技術處理起來快了很多,但本質上仍是一個非常苦逼的差事。

3,從事大數據的第一個難點就是真實數據源的獲取(特別是在天朝),沒有真實的數據源,基於此的大數據分析就是純扯淡。

舉個栗子,某寶當年花大價錢力推某寶商城,各種流程細化、頁面埋點統計、訂單統計等等都在等著數據產生後進行分析,好對網站、產品、運營等等下一步的方向做出準確判斷,但是,從某寶成長起來的商家哪會放過這等美事,各種刷單公司應運而生,產品質量、客戶體驗可想而知,我自己就曾買金屬拉絲點開關,收到一包小石頭。。。不過聽還在做這行的朋友說,現在某寶的反刷單系統已經迭代進化的非常智能了,能準確判斷90%以上的刷單行為。

4,大數據的第二個難點是數據可視化。

全世界每天會產生多少數據,谷歌公司高級副總裁兼法律總顧問Kent Walker2014年底在哈佛演講時說:「截止到2000年,人類僅存儲大約12 EB的數據,但如今,我們每天產生兩2EB的數據。過去兩年的時間裡產生了世界上百分之九十以上的數據。」

想像一下,這麼大一堆數據,你要怎樣才能理出頭緒,即使按照上面說的先分一下什麼大數據,那任然是非常龐大的一堆,光是準確統計出來就已夠嗆。所以,對已有數據進行可視化,把一堆感測器/人工統計出的數據轉化成形象的圖表,通過對圖表的理解來分析數據,從而得出結論,就變得非常非常重要。而這一領域我天朝落後西方至少十年(聽聞東北獲得國家1.6萬億的資金扶持,希望不要進入房地產,多養一點搞前沿研究的人員哇,雖然短期看不到什麼效果,但未來就是活命的理論基礎好不好)

下圖是郭毅可教授在帝國理工對訪英的大大和麻麻講解一路一帶的大數據可視化分析:

---------------------------------------

先更到這裡吧,有贊了繼續~~~


大家答得好複雜,不廢話直接上圖。

麻煩點個贊


大數據有很多方向,目前我們口中經常說的大數據的主要就業方向是:大數據研發,大數據分析與挖掘,深度學習,人工智慧等方向。

下面我們就從學習的要求到學習的知識進行講解

一、要求

1、大專及以上學歷,最好是理工科畢業(部分文科學生學習起來比較費力)

2、年齡20-30歲

二、需要學習的知識

1、基礎知識:java+linux

  • 學習大數據,只需要學習Java的標準版JavaSE就可以了,像Servlet、JSP、Tomcat、Struts、Spring、Hibernate,Mybatis都是JavaEE方向的技術在大數據技術里用到的並不多,只需要了解就可以了,當然Java怎麼連接資料庫還是要知道的,像JDBC一定要掌握一下,有同學說Hibernate或Mybites也能連接資料庫啊,為什麼不學習一下,我這裡不是說學這些不好,而是說學這些可能會用你很多時間,到最後工作中也不常用,我還沒看到誰做大數據處理用到這兩個東西的,當然你的精力很充足的話,可以學學Hibernate或Mybites的原理,不要只學API,這樣可以增加你對Java操作資料庫的理解,因為這兩個技術的核心就是Java的反射加上JDBC的各種使用。
  • Linux:因為大數據相關軟體都是在Linux上運行的,所以Linux要學習的紮實一些,學好Linux對你快速掌握大數據相關技術會有很大的幫助,能讓你更好的理解hadoop、hive、hbase、spark等大數據軟體的運行環境和網路環境配置,能少踩很多坑,學會shell就能看懂腳本這樣能更容易理解和配置大數據集群。還能讓你對以後新出的大數據技術學習起來更快。

2、大數據技術:hadoop-hive-oozie-web-flume-python-hbase-kafka-scala-spark

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的。


要想學習大數據,需要掌握這些基礎知識:

1.大數據的概念

2.大數據的影響

3.大數據的應用

4.大數據的產業

5.大數據與雲計算、物聯網的關係

6.大數據處理架構Hadoop

7.大數據關鍵技術

8.大數據計算模式

前5個都是概念,留下關注就好,後三個就需要買幾本書潛心研讀了,大數據是一個不錯的就業方向,已經不再是一個概念,完全可以做為職業規劃,可以考慮從事數據科研,做一名數據科學家,也是一個不錯的就業方向,要想成為數據科學家,需要具備哪些技能與資質? - 大數據 多智時代


atitit .大數據的方法,技術.attilax總結 大數據包含哪些方面 v3 rb2..docx

7. 三大核心技術:拿數據,處理轉換,算數據 2

8. 大數據有5個部分。數據採集,數據存儲,數據清洗,數據挖掘,數據可視化 2

9. 關聯技術 2

10. 數據採集技術 (非常重要) 2

10.1. 數據採集----自動化web操作/瀏覽器引擎 自動化ui數據採集 可以對常見的sns im軟體操作採集數據 2

10.2. 數據採集---安卓等設備模擬器技術 2

10.3. 截屏與ocr技術 方便對屏幕數字化處理為文字 3

10.4. 導出 、分享 有些程序自帶導出分享功能,方便多了 3

10.5. Ocr技術 面對c端數據採集,可能需要ocr 3

10.6. 註冊機/登錄器/發帖機/ 3

10.7. 破解圖片驗證碼../手機驗證碼.。。數據採集過程中可能遇到驗證碼 3

10.8. 數據導出,可能要使用分享給你,也可能沒有分享,只能ocr模式轉換 3

11. 數據清洗技術 3

11.1. 數據分類 根據分類不同來不同的垃圾文件判斷標準 3

11.2. 數據清洗 識別垃圾數據清理 3

12. 數據結構化轉換與數據存儲(重要) 3

12.1. 數據壓縮技術 數據存儲 3

12.2. 數據格式轉換技術 非結構化轉換為部分結構化 比如tag技術 4

12.3. 數據分類技術 多維度分類 4

13. 大數據索引技術 壓縮文件索引技術 (很重要) 4

13.1. 大數據導入,需要自動化ui技術 4

14. 數據挖掘與可視化(相對不那麼重要) 4

15. 其他可能需要的技術 4

15.1. 語音識別技術 4

15.2. 手寫識別技術 4

15.3. 水軍好評差評 4

15.4. 雲計算、移動互聯網 4

15.5. 物聯網. 5

15.6. 非結構化nosql資料庫技術 5

16. 參考: 5

作者Attilax , EMAIL:1466519819@qq.com 來源:attilax的專欄 地址:http://blog.csdn.net/attilax

7. 三大核心技術:拿數據,處理轉換,算數據

8. 大數據有5個部分。數據採集,數據存儲,數據清洗,數據挖掘,數據可視化

9. 關聯技術

10. 數據採集技術 (非常重要)

10.1. 數據採集----自動化web操作/瀏覽器引擎 自動化ui數據採集 可以對常見的sns im軟體操作採集數據

刷票器/

10.2. 數據採集---安卓等設備模擬器技術

有些app只能運行在安卓等特定環境需要使用模擬器採集數據

10.3. 截屏與ocr技術 方便對屏幕數字化處理為文字

10.4. 導出 、分享 有些程序自帶導出分享功能,方便多了

10.5. Ocr技術 面對c端數據採集,可能需要ocr

10.6. 註冊機/登錄器/發帖機/

10.7. 破解圖片驗證碼../手機驗證碼.。。數據採集過程中可能遇到驗證碼

10.8. 數據導出,可能要使用分享給你,也可能沒有分享,只能ocr模式轉換

11. 數據清洗技術

11.1. 數據分類 根據分類不同來不同的垃圾文件判斷標準

11.2. 數據清洗 識別垃圾數據清理

數據

12. 數據結構化轉換與數據存儲(重要)

12.1. 數據壓縮技術 數據存儲

12.2. 數據格式轉換技術 非結構化轉換為部分結構化 比如tag技術

12.3. 數據分類技術 多維度分類

13. 大數據索引技術 壓縮文件索引技術 (很重要)

13.1. 大數據導入,需要自動化ui技術

14. 數據挖掘與可視化(相對不那麼重要)

15. 其他可能需要的技術

15.1. 語音識別技術

15.2. 手寫識別技術

15.3. 水軍好評差評

15.4. 雲計算、移動互聯網

技術的發展,使得大量數據的生產和連通變成現實;

15.5. 物聯網.

15.6. 非結構化nosql資料庫技術

非結構化資料庫技術的發展,使得數據收集的要求大大降低;

16. 參考:

窺視互聯網金融:談談大數據

Hadoop並非完美:8個代替 HDFS 的絕佳方案


想要做到資深,要學的東西太多,現在速成班到是挺多的,學出來,估計就是個初級,資深也是一步一步爬出來的。


推薦閱讀:

國內圖計算研究哪裡比較強?
MapReduce如何解決數據傾斜?
國內較知名的大數據服務平台有哪幾家?
大數據會否使計劃經濟最終掌控世界?
如今大數據交易平台和大數據交易所有很多,如何解決數據的歸屬權,數據的定價以及交付方式?

TAG:大數據 | 大數據分析 | 大數據處理 | 大數據查詢 | 大數據營銷 |