Linux大綱 這章是基礎課程,幫大家進入大數據領域打好Linux基礎,以便更好地學習Hadoop,hbase,NoSQL,Spark,Storm,docker,kvm,openstack等眾多課程。因為企業中無一例外的是使用Linux來搭建或部署項目。
1) Linux的介紹,Linux的安裝:VMware Workstation虛擬軟件安裝過程、CentOS虛擬機安裝過程
2) 了解機架服務器,采用真實機架服務器部署linux
3) Linux的常用命令:常用命令的介紹、常用命令的使用和練習
4) Linux系統進程管理基本原理及相關管理工具如ps、pkill、top、htop等的使用;
5) Linux啟動流程,運行級別詳解,chkconfig詳解
6) VI、VIM編輯器:VI、VIM編輯器的介紹、VI、VIM扥使用和常用快捷鍵
7) Linux用戶和組賬戶管理:用戶的管理、組管理
8) Linux磁盤管理,lvm邏輯卷,nfs詳解
9) Linux系統文件權限管理:文件權限介紹、文件權限的操作
10) Linux的RPM軟件包管理:RPM包的介紹、RPM安裝、卸載等操作
11) yum命令,yum源搭建
12) Linux網絡:Linux網絡的介紹、Linux網絡的配置和維護
13) Shell編程:Shell的介紹、Shell腳本的編寫
14) Linux上常見軟件的安裝:安裝JDK、安裝Tomcat、安裝mysql,web項目部署
大型網站
高并發處理 通過本章的學習大家將會了解大數據的源頭,數據從何而來,繼而更好的了解大數據。并且通過學習何果處理大型網站高并發問題反向更深入的學習了Linux,同時站在了更高的角度去觸探了架構。
1) 第四層負載均衡
a) Lvs負載均衡
i. 負載算法,NAT模式,直接路由模式(DR),隧道模式(TUN)
b) F5負載均衡器介紹
2) 第七層負載均衡
a) Nginx b) Apache
3) Tomcat、jvm優化提高并發量
4) 緩存優化
a) Java緩存框架
i. Oscache,ehcache
b) 緩存數據庫
i. Redis,Memcached
5) Lvs+nginx+tomcat+redis|memcache構建二層負載均衡千萬并發處理
6) Haproxy
7) Fastdfs小文件獨立存儲管理
8) Redis緩存系統
a) Redis基本使用 b) Redis sentinel高可用 c) Redis好友推薦算法
Lucene課程 在大數據里面文本數據的搜索是很重要的一塊,特別是里面的分詞技術,是后面機器學習里面文本挖掘的基石,我們需要深入學習java領域里面的搜索核心技術lucene,同時也可以了解到百度 google這樣的搜索系統是怎么架構實現的。
1) Lucene介紹2) Lucene 倒排索引原理 > 3) 建索引 IndexWriter 4) 搜索 IndexSearcher 5) Query 6) Sort和 過濾 (filter) 7) 索引優化和高亮
Solr課程 接著前面lucene技術搜索,如果把lucene技術比如為發動機,那solr就是一輛成型的汽車了。學習完solr可以幫助你在企業里面快速的架構搜索系統。首先Solr是基于Lucene做的,Lucene是一套信息檢索工具包,但并不包含搜索引擎系統,它包含了索引結構、讀寫索引工具、相關性工具、排序等功能,因此在使用Lucene時你仍需要關注搜索引擎系統,例如數據獲取、解析、分詞等方面的東西。而Solr的目標是打造一款企業級的搜索引擎系統,因此它更接近于我們認識到的搜索引擎系統,它是一個搜索引擎服務,通過各種API可以讓你的應用使用搜索服務,而不需要將搜索邏輯耦合在應用中。而且Solr可以根據配置文件定義數據解析的方式,更像是一個搜索框架,它也支持主從、熱換庫等操作。還添加了飄紅、facet等搜索引擎常見功能的支持。
1) 什么是solr2) 為什么工程中要使用solr3) Solr的原理4) 如何在tomcat中運行solr5) 如何利用solr進行索引與搜索6) solr的各種查詢7) solr的Filter8) solr的排序9) solr的高亮10) solr的某個域統計11) solr的范圍統計12) solrcloud集群搭建
Hadoop
離線計算大綱
一、初識hadoop
聽過大數據,必聽過hadoop,此部分帶領大家了解hadoop的用途,在大數據中的用途,以及快速搭建一個hadoop的實驗環境,在本過程中不僅將用到前面的Linux知識,而且會對hadoop的架構有深入的理解,并為你以后架構大數據項目打下堅實基礎。
1) Hadoop生態環境介紹2) Hadoop云計算中的位置和關系3) 國內外Hadoop應用案例介紹4) Hadoop 概念、版本、歷史5) Hadoop 核心組成介紹及hdfs、mapreduce 體系結構6) Hadoop 的集群結構7) Hadoop 偽分布的詳細安裝步驟8) 通過命令行和瀏覽器觀察hadoop
二、 HDFS體系結構和shell以及java操作
詳細剖析HDFS,從知曉原理到開發網盤的項目讓大家打好學習大數據的基礎,大數據之于分布式,分布式學習從學習分布式文件系統(HDFS)開始。
1) HDFS底層工作原理2) HDFS datanode,namenode詳解3) Hdfs shell4) Hdfs java api
三、 詳細講解Mapreduce
Mapreduce可以說是任何一家大數據公司都會用到的計算框架,也是每個大數據工程師應該熟練掌握的,此處的學習除了老師詳細的講解理論外,會通過大量的案例讓大家徹底掌握。
1) Mapreduce四個階段介紹2) Writable3) InputSplit和OutputSplit4) Maptask5) Shuffle:Sort,Partitioner,Group,Combiner6) Reducer
四、 Mapreduce案例案例
1) 二次排序2) 倒排序索引3) 路徑
4) 電信數據挖掘之-----移動軌跡預測分析(中國棱鏡計劃)
5) 社交好友推薦算法6) 互聯網精準廣告推送 算法7) 阿里巴巴天池大數據競賽 《天貓推薦算法》案例8) Mapreduce實戰pagerank算法
五、 Hadoop2.x集群搭建
前面帶領大家開發了大量的MapReduce程序,此部分將帶來大家讓開發的程序運行在分布式集群中,并且運行在健壯高可用的集群中。
1) Hadoop2.x集群結構體系介紹2) Hadoop2.x集群搭建3) NameNode的高可用性(HA)4) HDFS Federation5) ResourceManager 的高可用性(HA)6) Hadoop集群常見問題和解決方法 7) Hadoop集群管理
分布式數據庫
Hbase 大數據中使用Hbase的案例多的舉不勝舉,也可凸顯大家學習的必要性。即使工作多年的大數據工程師Hbase的優化也是需要好好學習的重點。
1) HBase定義2) HBase與RDBMS的對比3) 數據模型4) 系統架構5) HBase上的MapReduce6) 表的設計7) 集群的搭建過程講解8) 集群的監控9) 集群的管理10) HBase Shell以及演示11) Hbase 樹形表設計12) Hbase 一對多 和 多對多 表設計13) Hbase 微博 案例14) Hbase 訂單案例15) Hbase表級優化16) Hbase 寫數據優化17) Hbase 讀數據優化
數據倉庫Hive Hive是使用sql進行計算的hadoop框架,工作中常用到的部分,也是面試的重點,此部分大家將從方方面面來學習Hive的應用,任何細節都將給大家涉及到。
1) 數據倉庫基礎知識2) Hive定義3) Hive體系結構簡介4) Hive集群5) 客戶端簡介6) HiveQL定義7) HiveQL與SQL的比較8) 數據類型9) 外部表和分區表10) ddl與CLI客戶端演示11) dml與CLI客戶端演示12) select與CLI客戶端演示13) Operators 和 functions與CLI客戶端演示14) Hive server2 與jdbc15) 用戶自定義函數(UDF 和 UDAF)的開發與演示16) Hive 優化
數據遷移工具Sqoop sqoop適用于關系型數據庫和HDFS分布式數據系統之間進行數據轉換,在企業中,是構建數據倉庫的一大工具。
1) 介紹 和 配置Sqoop
2) Sqoop shell使用
3) Sqoop-import
a) DBMS-hdfs b) DBMS-hive c) DBMS-hbase
4) Sqoop-export
Flume分布式
日志框架 Flume是Cloudera提供的日志收集系統,目前是Apache下的一個孵化項目,Flume支持在日志系統中定制各類數據發送方,用于收集數據。大家學習完此節后不但可以掌握Flume的使用,而且可以進行對于Flume的開發。
1) flume簡介-基礎知識2) flume安裝與測試3) flume部署方式4) flume source相關配置及測試5) flume sink相關配置及測試6) flume selector 相關配置與案例分析7) flume Sink Processors相關配置和案例分析8) flume Interceptors相關配置和案例分析9) flume AVRO Client開發10) flume 和kafka 的整合
Zookeeper
開發 Zookeeper在分布式集群(Hadoop生態圈)中的地位越來越突出,對分布式應用的開發也提供了極大便利,這也是這里我們帶領大家深入學習 Zookeeper的原因。本課程主要內容包括Zookeeper深入、客戶端開發(Java編程,案例開發)、日常運維、Web界面監控。大家這里學好Zookeeper,對后面學習其他技術至關重要。
1) Zookeeper java api開發2) Zookeeper rmi高可用分布式集群開發3) Zookeeper redis高可用監控實現4) Netty 異步io通信框架 5) Zookeeper實現netty分布式架構的高可用
項目實戰
某大型電商日志分析和訂單管理
在實戰中學習,技術點非常多,怎么樣實際運用這些點是我們在自學過程中體驗不到的。電商日志分析包括:pv、uv,跳出率,二跳率、廣告轉化率、搜索引擎優化等,訂單模塊有:產品推薦,商家排名,歷史訂單查詢,訂單報表統計等。
項目技術架構體系:
a) Web項目和云計算項目的整合 b) Flume通過avro實時收集web項目中的日志 c) 數據的ETL d) Hive 批量 sql執行 e) Hive 自定義函數 f) Hive和hbase整合。 g) Hbase 數據支持 sql查詢分析 h) Mapreduce數據挖掘 i) Hbase dao處理 j) Sqoop 在項目中的使用。 k) Mapreduce 定時調用和監控
|