實戰hadoop源碼
Ⅰ java轉行大數據要學習哪些技術
對於Java程序員,大數據的主流平台hadoop是基於Java開發的,所以Java程序員往大數據開發方向轉行從語言環境上更為順暢,另外很多基於大數據的應用框架也是Java的,所以在很多大數據項目里掌握Java語言是有一定優勢的。
當然,hadoop核心價值在於提供了分布式文件系統和分布式計算引擎,對於大部分公司而言,並不需要對這個引擎進行修改。這時候除了熟悉編程,你通常還需要學習數據處理和數據挖掘的一些知識。尤其是往數據挖掘工程師方向發展,則你需要掌握更多的演算法相關的知識。
對於數據挖掘工程師而言,雖然也需要掌握編程工具,但大部分情況下是把hadoop當做平台和工具,藉助這個平台和工具提供的介面使用各種腳本語言進行數據處理和數據挖掘。因此,如果你是往數據挖掘工程方向發展,那麼,熟練掌握分布式編程語言如scala、spark-mllib等可能更為重要。
Java程序員轉大數據工程師的學習路線圖:
第一步:分布式計算框架
掌握hadoop和spark分布式計算框架,了解文件系統、消息隊列和Nosql資料庫,學習相關組件如hadoop、MR、spark、hive、hbase、redies、kafka等;
第二步:演算法和工具
學習了解各種數據挖掘演算法,如分類、聚類、關聯規則、回歸、決策樹、神經網路等,熟練掌握一門數據挖掘編程工具:Python或者Scala。目前主流平台和框架已經提供了演算法庫,如hadoop上的Mahout和spark上的Mllib,你也可以從學習這些介面和腳本語言開始學習這些演算法。
第三步:數學
補充數學知識:高數、概率論和線代
第四步:項目實踐
1)開源項目:tensorflow:Google的開源庫,已經有40000多個star,非常驚人,支持移動設備;
2)參加數據競賽
3)通過企業實習獲取項目經驗
如果你僅僅是做大數據開發和運維,則可以跳過第二步和第三步,如果你是側重於應用已有演算法進行數據挖掘,那麼第三步也可以先跳過。
Ⅱ 大數據主要學習什麼知識
分享大數據學習路線:
第一階段為JAVASE+MYSQL+JDBC
主要學習一些Java語言的概念,如字元、流程式控制制、面向對象、進程線程、枚舉反射等,學習MySQL資料庫的安裝卸載及相關操作,學習JDBC的實現原理以及Linux基礎知識,是大數據剛入門階段。
第二階段為分布式理論簡介
主要講解CAP理論、數據分布方式、一致性、2PC和3PC、大數據集成架構。涉及的知識點有Consistency一致性、Availability可用性、Partition
tolerance分區容忍性、數據量分布、2PC流程、3PC流程、哈希方式、一致性哈希等。
第三階段為數據存儲與計算(離線場景)
主要講解協調服務ZK(1T)、數據存儲hdfs(2T)、數據存儲alluxio(1T)、數據採集flume、數據採集logstash、數據同步Sqoop(0.5T)、數據同步datax(0.5T)、數據同步mysql-binlog(1T)、計算模型MR與DAG(1T)、hive(5T)、Impala(1T)、任務調度Azkaban、任務調度airflow等。
第四部分為數倉建設
主要講解數倉倉庫的歷史背景、離線數倉項目-伴我汽車(5T)架構技術解析、多維數據模型處理kylin(3.5T)部署安裝、離線數倉項目-伴我汽車升級後加入kylin進行多維分析等;
第五階段為分布式計算引擎
主要講解計算引擎、scala語言、spark、數據存儲hbase、redis、ku,並通過某p2p平台項目實現spark多數據源讀寫。
第六階段為數據存儲與計算(實時場景)
主要講解數據通道Kafka、實時數倉druid、流式數據處理flink、SparkStreaming,並通過講解某交通大數讓你可以將知識點融會貫通。
第七階段為數據搜索
主要講解elasticsearch,包括全文搜索技術、ES安裝操作、index、創建索引、增刪改查、索引、映射、過濾等。
第八階段為數據治理
主要講解數據標准、數據分類、數據建模、圖存儲與查詢、元數據、血緣與數據質量、Hive Hook、Spark Listener等。
第九階段為BI系統
主要講解Superset、Graphna兩大技術,包括基本簡介、安裝、數據源創建、表操作以及數據探索分析。
第十階段為數據挖掘
主要講解機器學習中的數學體系、Spark Mlib機器學習演算法庫、Python scikit-learn機器學習演算法庫、機器學習結合大數據項目。
對大數據分析有興趣的小夥伴們,不妨先從看看大數據分析書籍開始入門!B站上有很多的大數據教學視頻,從基礎到高級的都有,還挺不錯的,知識點講的很細致,還有完整版的學習路線圖。也可以自己去看看,下載學習試試。
Ⅲ 大數據學習路線是什麼
主要分為 7 個階段:入門知識 → Java 基礎 → Scala 基礎 → Hadoop 技術模塊 → Hadoop 項目實戰 → Spark 技術模塊 → 大數據項目實戰。
階段一:學習入門知識
這一部分主要針對的是新手,在學習之前需要先掌握基本的資料庫知識。MySQL 是一個 DBMS(資料庫管理系統),是最流行的關系型資料庫管理系統(關系資料庫,是建立在關系資料庫模型基礎上的資料庫,藉助於集合代數等概念和方法來處理資料庫中的數據)。
MongoDB 是 IT 行業非常流行的一種非關系型資料庫(NoSQL),其靈活的數據存儲方式備受當前 IT 從業人員的青睞。
而 Redis 是一個開源、支持網路、基於內存、鍵值對存儲資料庫。兩者都非常有必要了解。
1、Linux 基礎入門(新版)
2、Vim編輯器
3、Git 實戰教程
4、MySQL 基礎課程
5、MongoDB 基礎教程
6、Redis基礎教程
階段二:Java基礎
Java 是目前使用最為廣泛的編程語言,它具有的眾多特性,特別適合作為大數據應用的開發語言。
Java 語言具有功能強大和簡單易用兩個特徵,跨平台應用能力比 C、C++ 更易用,更容易上手。同時還具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。最重要的一點是 Hadoop 是用 Java 編寫的。
1、Java編程語言(新版)
2、Java進階之設計模式
3、J2SE核心開發實戰
4、JDK 核心 API
5、JDBC 入門教程
6、Java 8 新特性指南
階段三:Scala基礎
Scala 是一種多範式的編程語言,其設計的初衷是要集成面向對象編程和函數式編程的各種特性。由於 Scala 運行於 Java 平台(Java 虛擬機),並兼容現有的Java 程序,所以 Scala 可以和大數據相關的基於 JVM 的系統很好的集成。
1、Scala 開發教程
2、Scala 專題教程 - Case Class和模式匹配
3、Scala 專題教程 - 隱式變換和隱式參數
4、Scala 專題教程 - 抽象成員
5、Scala 專題教程 - Extractor
6、Scala 開發二十四點游戲
階段四:Hadoop技術模塊
Hadoop 是一款支持數據密集型分布式應用並以 Apache 2.0 許可協議發布的開源軟體框架,它能搭建大型數據倉庫,PB 級別數據的存儲、處理、分析、統計等業務。編程語言你可以選,但 Hadoop 一定是大數據必學內容。
1、Hadoop入門進階課程
2、Hadoop部署及管理
3、HBASE 教程
4、Hadoop 分布式文件系統--導入和導出數據
5、使用 Flume 收集數據
階段五:Hadoop項目實戰
當然,學完理論就要進行動手實戰了,Hadoop 項目實戰可以幫助加深對內容的理解,並鍛煉動手能力。
1、Hadoop 圖處理--《hadoop應用框架》
階段六:Spark技術模塊
Spark 和 Hadoop 都是大數據框架。Hadoop 提供了 Spark 所沒有的功能特性,比如分布式文件系統,而 Spark 為需要它的那些數據集提供了實時內存處理。所以學習 Spark 也非常必要。
1、Spark
2、x 快速入門教程
2、Spark 大數據動手實驗
3、Spark 基礎之 GraphX 圖計算框架學習
4、Spark 基礎之 DataFrame 基本概念學習
5、Spark 基礎之 DataFrame 高階應用技巧
6、Spark 基礎之 Streaming 快速上手
7、Spark 基礎之 SQL 快速上手
8、Spark 基礎之使用機器學習庫 MLlib
9、Spark 基礎之 SparkR 快速上手
10、流式實時日誌分析系統--《Spark 最佳實踐》
11、使用 Spark 和 D3.js 分析航班大數據
階段七:大數據項目實戰
最後階段提供了大數據實戰項目,這是對常用技能的系統運用,例如使用常用的機器學習進行建模、分析和運算,這是成為大數據工程師過程中的重要一步。
1、Ebay 在線拍賣數據分析
2、流式實時日誌分析系統--《Spark 最佳實踐》
3、大數據帶你挖掘打車的秘籍
4、Twitter數據情感分析
5、使用 Spark 進行流量日誌分析
6、Spark流式計算電商商品關注度
7、Spark的模式挖掘-FPGrowth演算法
(3)實戰hadoop源碼擴展閱讀:
大數據技術的具體內容:
分布式存儲計算架構(強烈推薦:Hadoop)
分布式程序設計(包含:Apache Pig或者Hive)
分布式文件系統(比如:Google GFS)
多種存儲模型,主要包含文檔,圖,鍵值,時間序列這幾種存儲模型(比如:BigTable,Apollo,DynamoDB等)
數據收集架構(比如:Kinesis,Kafla)
集成開發環境(比如:R-Studio)
程序開發輔助工具(比如:大量的第三方開發輔助工具)
調度協調架構工具(比如:Apache Aurora)
機器學習(常用的有Apache Mahout 或 H2O)
託管管理(比如:Apache Hadoop Benchmarking)
安全管理(常用的有Gateway)
大數據系統部署(可以看下Apache Ambari)
搜索引擎架構(學習或者企業都建議使用Lucene搜索引擎)
多種資料庫的演變(MySQL/Memcached)
商業智能(大力推薦:Jaspersoft)
數據可視化(這個工具就很多了,可以根據實際需要來選擇)
大數據處理演算法(10大經典演算法)