大資料是對海量資料進行儲存、計算、統計、分析處理的一系列處理手段, 量通常是TB級,甚至是PB或EB級的資料,這是傳統 手段所無法完成的,其涉及的技術有分散式計算、高併發處理、高可用處理、叢集、實時性計算等,彙集了當前IT領域熱門流行的IT技術。
很多初學者,對大資料的概念都是模糊不清的,大資料是什麼,能做什麼,學的時候,該按照什麼線路去學習,學完往哪方面發展,想深入瞭解,想學習的同學歡迎加入大資料學習qq群:199427210,有大量乾貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大資料講師給大家免費授課,給大家分享目前國內最完整的大資料高階實戰實用學習流程體系
大資料入門,需要學習以下這些知識點:
先附上一張自己總結的學習線路圖
1、Java程式設計技術
Java程式設計技術是大資料學習的基礎,Java是一種強型別語言,擁有極高的跨平臺能力,可以編寫桌面應用程式、Web應用程式、分散式系統和嵌入式系統應用程式等,是大資料工程師最喜歡的程式設計工具,因此,想學好大資料,掌握Java基礎是必不可少的。
2、Linux命令
對於大資料開發通常是在Linux環境下進行的,相比Linux作業系統,Windows作業系統是封閉的作業系統,開源的大資料軟體很受限制,因此,想從事大資料開發相關工作,還需掌握Linux基礎操作命令。
3、Hadoop
Hadoop是大資料開發的重要框架,其核心是HDFS和MapReduce,HDFS為海量的資料提供了儲存,MapReduce為海量的資料提供了計算,因此,需要重點掌握,除此之外,還需要掌握Hadoop叢集、Hadoop叢集管理、YARN以及Hadoop高階管理等相關技術與操作!
4、Hive
Hive是基於Hadoop的一個資料倉儲工具,可以將結構化的資料檔案對映為一張資料庫表,並提供簡單的sql查詢功能,可以將sql語句轉換為MapReduce任務進行執行,十分適合資料倉儲的統計分析。對於Hive需掌握其安裝、應用及高階操作等。
5、Avro與Protobuf
Avro與Protobuf均是資料序列化系統,可以提供豐富的資料結構型別,十分適合做資料儲存,還可進行不同語言之間相互通訊的資料交換格式,學習 大資料,需掌握其具體用法。
6、ZooKeeper
ZooKeeper是Hadoop和Hbase的重要元件,是一個為分散式應用提供一致性 服務的軟體,提供的功能包括:配置維護、域名服務、分散式同步、元件服務等,在大資料開發中要掌握ZooKeeper的常用命令及功能的實現方法。
7、HBase
HBase是一個分散式的、面向列的開源資料庫,它不同於一般的關聯式資料庫,更適合於非結構化資料儲存的資料庫,是一個高可靠性、高效能、面向列、可伸縮的分散式儲存系統,大資料開發需掌握HBase基礎知識、應用、架構以及高階用法等。
8、phoenix
phoenix是用Java編寫的基於JDBC API操作HBase的開源SQL引擎,其具有動態列、雜湊載入、查詢伺服器、追蹤、事務、使用者自定義函式、二級索引、名稱空間對映、資料收集、行時間戳列、分頁查詢、跳躍查詢、檢視以及多租戶的特性,大資料開發需掌握其原理和使用方法。
9、Redis
Redis是一個key-value儲存系統,其出現很大程度補償了memcached這類key/value儲存的不足,在部分場合可以對關聯式資料庫起到很好的補充作用,它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客戶端,使用很方便,大資料開發需掌握Redis的安裝、配置及相關使用方法。
10、Flume
Flume是一款高可用、高可靠、分散式的海量日誌採集、聚合和傳輸的系統,Flume支援在日誌系統中定製各類資料傳送方,用於收集資料;同時,Flume提供對資料進行簡單處理,並寫到各種資料接受方(可定製)的能力。大資料開發需掌握其安裝、配置以及相關使用方法。
11、SSM
SSM框架是由Spring、SpringMVC、MyBatis三個開源框架整合而成,常作為資料來源較簡單的web專案的框架。大資料開發需分別掌握Spring、SpringMVC、MyBatis三種框架的同時,再使用SSM進行整合操作。
12、Kafka
Kafka是一種高吞吐量的分散式釋出訂閱訊息系統,其在大資料開發應用上的目的是透過Hadoop的並行載入機制來統一線上和離線的訊息處理,也是為了透過叢集來提供實時的訊息。大資料開發需掌握Kafka架構原理及各元件的作用和使用方法及相關功能的實現。
13、Scala
Scala是一門多正規化的程式語言,大資料開發重要框架Spark是採用Scala語言設計的,想要學好Spark框架,擁有Scala基礎是必不可少的,因此,大資料開發需掌握Scala程式設計基礎知識!
14、Spark
Spark是專為大規模資料處理而設計的快速通用的計算引擎,其提供了一個全面、統一的框架用於管理各種不同性質的資料集和資料來源的大資料處理的需求,大資料開發需掌握Spark基礎、SparkJob、Spark RDD、spark job部署與資源分配、Spark shuffle、Spark記憶體管理、Spark廣播變數、Spark SQL、Spark Streaming以及Spark ML等相關知識。
15、Azkaban
Azkaban是一個批次工作流任務排程器,可用於在一個工作流內以一個特定的順序執行一組工作和流程,可以利用Azkaban來完成大資料的任務排程,大資料開發需掌握Azkaban的相關配置及語法規則。
16、Python與資料分析
Python是物件導向的程式語言,擁有豐富的庫,使用簡單,應用廣泛,在大資料領域也有所應用,主要可用於資料採集、資料分析以及資料視覺化等,因此,大資料開發需學習一定的Python知識。