1. 程式人生 > >java大資料課程大綱(小牛學堂)

java大資料課程大綱(小牛學堂)

1第一階段—Java 核心技術 45 天

  模組名 天數 知識點
JavaSE 開發環境搭建 1 計算機基礎知識
Java 語言概述
JDK
HelloWorld 案例
環境變數的配置
註釋
Java 基礎語法 1 關鍵字
識別符號
常量、進位制和進位制轉換
變數
三大流程控制結構 2 運算子
流程控制結構
跳轉控制語句
方法和陣列 2 開發工具 eclipse
方法
陣列
面向物件 4 面向物件思想
類與物件及其使用
物件的記憶體圖和變數分類以及形參
匿名物件
封裝(private)
this 關鍵字
構造方法
static 關鍵字
程式碼塊
單例設計模式
繼承
final 關鍵字
多型
抽象類
介面
包和導包
常用類和排序 2 API 概述
Object 類
Scanner 類
String 類
StringBuffer 類/StringBuilder 類
陣列高階
Arrays 類
基本型別包裝類
Math 類
Random 類
System 類
Date 類
DateFormat 類
正則表示式
集合 2 集合類概述
Collection 介面
Iterator 介面
List 和 ListIterator 介面
ArrayList 和 LinkedList 類
泛型
增強 for 迴圈和可變引數
Set 介面
HashSet 類
Map 介面
HashMap 和 LinkedHashMap 類
Collections 類常用方法和排序介面
異常和 IO 流 3 異常的處理和自定義
File 類的使用
遞迴
位元組流
轉換流
字元流
其他流
多執行緒 1 多執行緒概述
開啟執行緒兩種方式
執行緒同步問題
生產者和消費者
執行緒池
定時器
網路程式設計 Socket 1 網路程式設計概述
網路程式設計三要素
UDP 程式設計
TCP 程式設計
反射和動態代理 1 類的載入介紹
類載入器的介紹和獲取
反射
動態代理
手動編寫一個 Tomcat
Mysql 資料庫+Jdbc 2 資料庫整體介紹
資料庫的下載、安裝、解除安裝、啟動
使用 SQL 語句對資料庫進行 CRUD 操作
使用 SQL 語句對資料庫中表進行 CRUD 操作
使用 SQL 語句對錶中的記錄進行 CRUD 操作
SQL 建立多表及多表的關係
表關係完成多表的查詢
使用 JDBC 完成對於分類表的 CRUD 的操作
使用連線池改造 JDBC 的程式
使用元資料優化 CRUD 的操作
DBUtils 工具類的使用
Html+JavaScript+jQuery 2 HTML 概述
網站資訊頁面顯示
網站的圖片頁面顯示
網站的列表顯示頁面
網站的註冊頁面
DIV+CSS 的使用和引入方式以及選擇器的使用
JavaScript 語言介紹
JavaScript 的組成部分
使用 JS 完成表單的校驗
使用 JS 完成京東首頁的輪播圖片效果
使用 JS 控制表格的隔行換色和全選以及不全選的效果
JS 控制省市二級聯動
實現下拉列表左右選擇
jQuery 快速入門
使用 jQuery 完成頁面的彈出廣告的效果
使用 jQuery 完成表格的隔行換色和全選以及全不選
使用 jQuery 完成省市聯動
使用 jQuery 完成下拉列表的左右選擇
Servlet 2 安裝 Tomcat 伺服器釋出一個 Web 專案
HTTP 協議
Servlet 概述
Servlet 的生命週期
Servlet 的 web.xml 配置
HttpServletResponse 和 HttpServletRequest 的常用方法
處理 Request 和 Response 亂碼
使用轉發和重定向對登入進行優化登入案例
記錄系統的登入次數案例
ServletContext 全域性域物件
ServletContext 的常用方法
配置 Servlet 的啟動時載入
使用過濾器過濾登入狀態
Cookie 的常見用法
檔案的上傳和下載
Jsp 2 JSP 的概述
JSP 的指令碼
JSP 的執行原理
JSP 的註釋
JSP 的三大指令
JSP 的 9 大內建物件
JSP 的四個域物件
JSP 的動作標籤
EL 表示式
JSTL 標籤庫
商品資訊列表展示案例
AJAX+JSON 1 JSON 格式資料介紹
使用 JavaScript 處理 JSON 格式資料
FastJson 的使用
Gson 的使用
使用 AJAX 完成 GET 和 POST 請求
使用 jQuery AJAX 完成 GET 和 POST 請求
使用 JQuery AJAX 完成搜尋資訊匹配
使用 JQuery AJAX完成使用者名稱非同步校驗
Maven 1 什麼是 maven
Maven 好處
依賴管理介紹
專案一鍵構建介紹
Maven 的安裝配置
Maven 的目錄結構
Maven 的常用命令
Maven 的生命週期
命令和生命週期的階段的關係
專案構建實際
依賴管理實踐
依賴範圍介紹
Maven 私服搭建
Redis 1 nosql 的簡介
redis 的簡介
redis 的安裝與啟動
jedis 的簡單使用
jedis 的連線池使用
redis 資料型別和常見命令
redis 的移庫操作
redis 的訂閱和事務以及持久化
JavaEE MyBatis 2 Mybatis 的介紹
Mybatis 的入門
使用 jdbc 操作資料庫存在的問題
Mybatis 的架構
Mybatis 的入門程式
Dao 的開發方法
原始 dao 的開發方法
介面的動態代理方式
SqlMapConfig.xml 檔案說明
輸入對映和輸出對映
輸入引數對映
返回值對映
動態 sql
關聯查詢
一對一關聯
一對多關聯
Mybatis 逆向工程
Spring 3 Spring 概述
Spring IOC 容器概念介紹
Spring 入門案例
Spring 相關配置、屬性注入方式
Spring 整合到 Web 環境下
Spring 註解的使用
Spring 整合 Junit
Spring 的 AOP 使用
Spring 整合 JDBC
Spring 整合事物
Spring 整合 MyBatis
SpringMVC 2 SpringMVC 介紹
入門程式
SpringMVC 架構講解
框架結構
元件說明
SpringMVC 整合 MyBatis
引數繫結
SpringMVC 預設支援的型別
簡單資料型別
Pojo 型別
Pojo 包裝型別
自定義引數繫結
SpringMVC 和 Struts2 的區別
高階引數繫結
陣列型別的引數繫結
List 型別的繫結
RequestMapping 註解的使用
Controller 方法返回值
SpringMVC 中異常處理
圖片上傳處理
Json 資料互動
SpringMVC 實現 RESTful
攔截器
三大框架整合
SpringBoot 1 SpringBoot 介紹
SpringBoot 環境準備
SpringBoot 一鍵式構建專案
SpringBoot 的常用註解
SpringBoot 的專案打包和執行模式
JavaEE 專案 微信點餐買家端和賣家端系統 6 reids 的快取和分散式鎖使用
SSM 框架的整合開發
spring boot 框架的應用
SpringBoot+JPA 的使用
SpringBoot+MyBatis 的使用
SpringBoot+Redis 的使用
SpringBoot+WebSocket 的使用
訂單取消,支付,過期的實現
掌握 RESTful 風格開發
掌握應用部署上線

 

2第二階段:大資料核心技術(47天)

  模組名 天數 知識點
資料分析案例 電影評分統計分析 6 JSON 資料解析,掌握分組統計思想
歸屬地查詢統計 關聯資料分析
單車定位 GEOHASH 演算法
Httpclient 請求網路介面獲取資料
爬蟲 網站資料的獲取,DOM 解析
RPC 案例 技術分層,RPC 遠端過程呼叫
分散式案例 分散式的詞頻統計,非同步執行緒得到返回結果
Linux Linux 的介紹和安裝 1 inux 系統簡介與安裝
vmware 虛擬機器網路配置
Linux 常用命令 linux 常用命令--檔案操作
linux 常用命令--使用者管理與許可權
linux 常用命令--系統管理
linux 常用命令--免密登陸配置與網路管理
linux 環境基本配置 1 主機名的修改
IP 地址的修改
host 檔案配置
linux 防火牆配置
linux 上常用軟體安裝 JDK 的安裝
tomcat 的安裝
linux 本地 yum 源配置及 yum 軟體安裝
Linux 高階命令 1 linux 高階文字處理命令 cut、sed、awk
linux 定時任務 crontab
shell 程式設計 shell 程式設計--基本語法
shell 程式設計--流程控制
shell 程式設計--函式
shell 程式設計--綜合案例--自動化部署指令碼
Hadoop Hadoop 概述 1 Hadoop 背景介紹
分散式系統概述
Hadoop 生態系統介紹
Hadoop 叢集搭建 伺服器和環境準備
Linux 系統配置
Hadoop 單機模式和偽分佈模式環境部署
Hadoop 叢集環境部署
配置環境變數
叢集啟動停止
叢集狀態檢視
執行一個 MR 示例
Hadoop 程序詳解
HDFS 基礎 1 HDFS 概念
HDFS 優缺點
HDFS 設計目標
HDFS 核心設計
HDFS 架構
HDFS Shell 操作
工作機制 NameNode 工作機制
DataNode 工作機制
SecondaryNamenode 工作機制
HDFS 寫流程
HDFS 讀流程
HDFS 程式設計 1 HDFS Java API 讀資料
HDFS Java API 寫資料
HDFS Java API 上傳檔案
HDFS Java API 下載檔案
HDFS Java API 建立目錄
HDFS Java API 刪除目錄
HDFS 叢集故障恢復 元資料的管理
元資料損壞恢復
安全模式的處理
YARN 資源排程框架概述 HDFS HA 機制
YARN 產生背景
YARN 架構與原理
YARN 提交作業的執行流程
MapReduce 程式設計模型 4 Mapper 類解析
Reducer 類解析
Job 類解析
MapReduce 程式設計規範及示例編寫
MapReduce 的執行模式
MapReduce 程式設計實戰 MapReduce 架構
DistributeCache 應用:Map Join、Reduce Join
序列化應用
自定義排序
自定義分割槽
自定義 Groupingcomparator Combiner 應用
自定義 Inputformat
自定義 Outputformat
MapReduce 高階特性應用 shuffle 機制
MapReduce 的並行度
MapReduce 的調優解析
MapReduce 資料傾斜
maptask/reduceTask/Container 運算調優
Zookeeper Zookeeper 概述 1 Zookeeper 介紹
Zookeeper 下載與安裝
Zookeeper 配置
Zookeeper 叢集環境部署
選舉機制介紹
HDFS HA HDFS HA 的環境部署
Hive Hive 安裝部署 2 Hive 簡介
Hive 安裝部署模式(內嵌、本地、遠端)
Hive 常用內部命令使用
Hive 工作機制 Hive 元資料庫概念
Hive 資料儲存
Hive 基本語法 DDL 操作:建立表
DDL 操作:刪除表
DDL 操作:修改表
DDL 操作:增加分割槽和刪除分割槽
DML 操作: Load 裝載資料
DML 操作:Insert 插入資料
DML 操作:Insert 匯出資料
Hive 資料簡單查詢(where、group by、order by 、sort by、distribute by、cluster by)
Hive 資料複雜查詢_Join 操作
HQL 高階應用 JDBC 連線 Hive
Hive 的分割槽、分桶、檢視、索引
Hive 資料型別 基本資料型別
複合資料型別
Hive 函式 1 內建函式
自定義函式(UDF/UDAF)
Hive 解決特殊格式資料 自定義 Inputformat
自定義 SerDe(ORC、Parquet)
Hive 調優 FetchTack 引數調優
HQL 調優
資料傾斜調優
結合 MapReduce 調優
Flume Flume 安裝部署 1 Flume 介紹
Flume 安裝
Flume 架構及內部原理 Source 元件詳解
Channel 元件詳解
Sink 元件詳解
Flume 使用 配置檔案的編寫
引數的配置
Flume 的扇入和扇出
FLUME 自定義攔截器案例:資料過濾與脫敏
Sqoop Sqoop 安裝部署 1 Sqoop 介紹
Sqoop 安裝部署
Sqoop 架構
Sqoop 使用 Sqoop 匯入資料
Sqoop 匯出資料
HBase HBaseHBase 概述 1 HBase 介紹
HBase 體系結構
HBase 使用場景介紹及特點
HBase 中元件角色介紹: Hmaster、Hregion、Hlog、StoreFile(Hfile)、memstore、Blockstore、WAL。
Hlog 生命週期
Hbase 讀、寫原理
HBase 依賴元件:zookeeper 、Hadoop(hdfs)
HBase 儲存表結構 :namespace,table,rowkey,column family,qualifier,timestamp,region
HBase 的容錯機制
HBase 的安裝 Hbase 偽分散式安裝介紹
Hbase 分散式安裝(自帶 zookeeper和外部 zookeeper)
安裝常見問題
HBase 的基本操作 2 初識 HBase Shell
HBase Shell 常用基本命令
HBase Shell 常用表管理命令
HBase Shell 常用表操作命令
HBase 的 API 操作 HBase API 常規操作:put、delete、get、Result 類、get 列表(ListCell、RawCell)等
HBase API 高階操作:指定行、ResultScanner 類、按 RowKey 範圍檢索等
HBase fiter 的使用
HBase 的優化 1 phoenix 使用
表設計
RowKey 設計
程式碼調優
批量讀寫
引數調優
Scala Scala 快速入門 2 scala 程式設計介紹
scala 與其他語言的對比和優勢
scala 相關軟體安裝
scala 基礎語法
scala 程式設計介紹
scala 相關軟體安裝
scala 入門案例
函數語言程式設計 scala 方法和函式
scala 的函式和 Python 的 Lambda 對比
scala 的函式和 Java8 的 Lambda 對比
用 Java自己實現一個類似函數語言程式設計的功能
scala 函數語言程式設計特點
scala 陣列和集合
map、flatMap 方法的講解和案例
reduce 方法的講解和案例
filter、filterNot 方法方法的講解和案例
fold、foldLeft、foldRight 方法方法的講解和案例
sortBy、sortWith、sorted 方法方法的講解和案例
aggregate 方法的講解和案例
其他常用的方法
scala 程式設計練習(單機版 WordCount)
面向物件 1 類的定義
構造器與輔助構造器
繼承
單例物件
包訪問許可權
實現特質
方法的重寫和過載
實現多型
面向物件綜合案例
模式匹配 Scala 模式匹配的特點
按內容匹配
按型別匹配
case class
case object
自定義 case class 和 case oject 案例
Option/Some/None
偏函式
Actor 併發程式設計 1 Actor 程式設計模型簡介
Actor 程式設計模型簡介與 Java 傳統多執行緒的區別
建立 Actor 的方式
傳送同步訊息和非同步訊息
Scala 的 Future 功能
Actor 程式設計實戰
高階函式 1 高階函式介紹
高階函式的種類
柯里化
call by name 和 call by value
Scala 的閉包
高階函式綜合案例
隱式轉換 隱式轉換的概念和作用
隱式轉換與裝飾模式、代理模式的對比
隱式轉換的優點
上下文繫結
檢視繫結
逆變和協變
隱式轉換原理剖析
隱式轉換案例
分散式 RPC 程式設計案例(Akka 和 Netty) 1 RPC 程式設計實現原理介紹
Akka 框架介紹
Akka 入門案例
Akka 原理剖析
Akka 的容錯功能
Akka 整合 zookeeper 實現高可用
實戰:RPC 程式設計實戰一
(實現 RPC 通訊功能)
實戰:RPC 程式設計實戰二
(實現 Spark 底層通訊的功能)
Netty 的介紹和特點
Netty 的基本使用
案例:實現 Netty 的 Server 端的實現
案例:實現 Netty 的 Client 端的實現
Netty 整合其他序列框架
案例:利用 Netty 實現 RPC 通訊
Spark Spark 簡介和環境搭建 1 Spark 簡介
Spark 和 Hadoop、Storm 的對比
Spark Standalone 環境搭建
Spark 叢集環境架構
Spark 叢集搭建
Spark 高可用叢集搭建
Spark-Shell 的使用
Spark 整合 HDFS
RDD 的 Transformation 和 Action 的使用 2 用 Scala 語言編寫 Spark 應用程式 WordCount
用 Java 語言編寫 Spark 應用程式 WordCount
RDD 簡介
RDD 的特點說明
Spark 常用運算元介紹
Spark 的 Transformation 運算元
map、flatMap、mapPartitions 的使用
filter 的使用
reduceByKey、groupByKey、aggregateByKey 的使用
sortByKey、sortBy 的使用
join、unit、intersection、cogroup 的使用
coalesce、repartition、repartitionAndSortWithinPartitions 的使用
其他複雜的 Transformation 運算元
Spark 的 Action 運算元
reduce 的使用
count、countByKey 的使用
collect、firsttake、takeOrdere 的使用
saveAsTextFile、saveAsSequenceFile、saveAsObjectFile 的使用
foreach、foreachPartition 運算元
其他複雜的 Action 運算元
Spark Core 的高階功能 2 案例:使用者最常出現的位置
Spark 的 WordCount 執行相信流程解析
RDD 的快取機制
案例:URL 求 TopN
自定義分割槽
二次排序
自定義排序
RDD 的 checkpoint 機制
廣播變數
案例:根據 IP 求歸屬地
Spark 遠端除錯
Maven 編譯 Spark 原始碼
寬依賴和窄依賴
RDD 的血統關係
DAG 切分過程
案例:利用 JdbcRDD 匯入資料
Spark SQL 2 Spark-SQL 介紹
Spark-SQL 的使用新特性
SparkSession 的使用
DataFrame 和 DataSet 的使用
DataFrame 的常用方法
通過 Case Class 和 Schema 建立 DataSet
DataSet 的常用方法
Parquet 檔案的使用
SparkSQL 的 TemporaryView
Spark-SQL 載入並處理 MySQL 中的資料
利用 Spark-SQL 講資料寫入到 MySQL 中
Spark-SQL 整合 Hive
Spark-SQL 綜合案例 1
Spark-SQL 綜合案例 2
SparkStreaming 2 Spark-Streaming 簡介
編寫 Spark-Streaming 的 WordCount 程式
可更新狀態的 WordCount 程式
Spark-Streaming 整合 Flume
Kafka 的介紹
Kafka 叢集的安裝
Kafka 相關概念介紹
Kafka 生產者和消費者程式編寫
Kafka 的 Topic 的相關操作
Kafka 原理深入
Spark-Streaming 整合 Kafka
案例:Spark-Streaming 實時統計小區流量
Spark-Streaming 視窗函式
Spark-Streaming 直連方式整合 Kafka
直連方式原理分析
Spark On Yarn 1 Hadoop 的 YARN 知識點回顧
Spark On YARN 兩種方式 Cluster 和 Client
兩種方式過程分析
Spark On YARN 日誌檢視
Spark On YARN 常見問題分析
Spark On YARN 的的任務排程
Spark On YARN 的常用配置引數
YARN 的監控頁面引數講解
Spark MLlib 1 Spark MLlib 介紹
MLlib 和 Mahout 的對比和優勢
breeze 向量和矩陣計算
MLlib 常用演算法
案例:智慧推薦案例
案例:分析電商銷售商品分類
Spark GraphX 1 GraphX 介紹
圖相關概念的介紹
GraphX 基本使用
案例:社交使用者人脈分析
案例:手機使用者常出沒的商圈分析
Spark 原始碼分析 1 Master 啟動流程原始碼分析
Worker 啟動流程原始碼分析
Spark 應用程式提交構成原始碼分析
SparkContext 建立過程原始碼分析
ClientActor 提交任務給 Master 過程原始碼分析
Master 資源排程原始碼分析
Master 通知 Worker 啟動 Executor 過程原始碼分析
Executor 跟 DriverActor 通訊過程原始碼分析
任務提交整理流程原始碼分析
DAGSchedule 執行過程分析
DAG 切分 Stage 過程原始碼分析
TaskScheduler 提交 Task 過程原始碼分析
Executor 上執行 Task 過程原始碼分析
Spark 叢集和任務效能優化 1 Spark Standalone 模式優化引數
任務提交資源分配和優化引數
資料傾斜原因及優化方案
Driver 端引數配置和優化
Worker 端引數配置和優化
RDD 的 cache、checkpoint 等相關優化
Shuffle 過程優化及引數配置
SparkSQL 的任務優化
SparkStreaming 的任務優化
Spark On YARN 端引數配置和優化
Spark 叢集監控和引數調優
Spark 叢集記憶體監控和 JVM GC 調優
就業指導 簡歷指導 1 簡歷模板
面試常見技術問題

3第三階段:專案實戰階段(30天)

  模組名 天數 知識點
黑卡檢索判定 12 黑卡的背景
黑鏈和對企業的影響
資料的採集方式和規範處理
應業務需要對黑卡
使用黑卡使用者的檢索
對檢索結果的儲存處理
總結整個黑卡的思考過程和業務思考
高鐵電務段大資料平臺 12 業務背景瞭解
資料接入
資料清洗
離線報表統計
實時報表統計
使用者畫像
裝置維修預測
專案總結
精準廣告智慧競價 DMP 平臺 6 廣告行業現狀
專案背景
Flume 資料採集
資料儲存技術選型
離線業務
實時業務
使用者畫像
資料視覺化
專案總結

4第四階段-面試技術增強(9天)

  模組名 天數 知識點
JVM 4 JVM 介紹
JVM 的對記憶體的細化
GC 的常用演算法
GC 的工作機制
JVM 的監控工具
JVM 的綜合調優
資料結構 陣列
棧和佇列連結串列和遞迴
堆和優先數列
紅黑樹
雜湊表
快速排序
有窮自動機
Cdh 1 Cdh 的介紹和安裝方法
Flink 2 flink 架構
flink 原理
flink 程式設計開發
ElasticSearch ElasticSearch 的介紹和安裝 2 ElasticSearch 的介紹
ElasticSearch 的基本概念
ElasticSearch 的下載與分散式叢集搭建
ElasticSearch 的使用 ElasticSearch 入門操作
ElasticSearch使用 Java操作
CURl 命令介紹
ElasticSearchCRUD 操作
ElasticSearch 查詢文件操作