A. 如何自己開發一套伺服器管理系統
轉載 表面上看,是一套基於B/S方式實現的分布式管理系統,但其實背後的架構是基於C/S完成的。你以為他是一隻鞋嗎?其實他是一個吹風機。作為界面化的系統,瀏覽器框架是不可或缺的,但更加重要的東西在Socket上面。
一、需要解決中央控制端到各節點伺服器之間的通信。
這個其實牽扯到一個通信協議的問題,各語言都有自己的socket,thread的庫,直接調用即可。但是這個通信協議就需要自己來完成了。既不能太簡單,太簡單了,明碼傳輸,如果別人獲知了這個介面,就很容易執行一些令人討厭的操作。也不能太復雜,太復雜了等於是給自己找麻煩,所以簡單的數據包編解碼的工作或者用token驗證的方式是需要的。通信協議起碼要兩種,一種是傳輸命令執行的協議,一種是傳輸文件的協議。
二、跨語言的socket通信
為什麼要跨語言,主控端和代理端通信,用什麼語言開發其實無所謂。但是為了給自己省事,盡可能使用伺服器上已經有了的默認語言,Ambari前期採用php+puppet的方式管理集群,這不是不可以,puppet自己解決了socket通信協議和文件傳輸的問題,可你需要為了puppet在每台伺服器上都安裝ruby。我是個有點伺服器和代碼潔癖的人。光是為了一個puppet就裝個ruby,我覺得心裡特對不起伺服器的資源。所以我自己寫了一個python的代理端。python是不管哪個linux系統在安裝的時候就都會有了。然後主控端的通信,可以用python實現,也可以用php實現,但是考慮到對於更多的使用者來說,改php可能要比改tornado簡單許多,所以就沒用python開發。hadoop分支版本眾多,發布出去,用戶要自己修改成安裝適合自己的hadoop發行版,就勢必要改源碼,會php的明顯比會python的多。php裡面的model封裝了所有的操作,而python只是個操作代理人的角色而已。
所以也延伸出一個問題,什麼語言用來做這種分布式管理系統的代理端比較合適,我自己覺得,也就是python比較合適了,操作系統自帶,原生的package功能基本夠用。用java和php也可以寫agent,但是你勢必在各節點預先就鋪設好jre或者php運行環境。這就跟為什麼用python和java寫mapred的人最多是一樣的。沒人攔著你用nodejs寫mapred,也可以寫,就是你得在每個節點都裝v8的解釋引擎,不嫌麻煩完全可以這樣干。原理參看map/rece論文,不解釋。perl也是操作系統原生帶的,但是perl的可維護性太差了,還是算了吧。
所以這就牽扯到一個跨語言的socket問題,理論上來說,這不存在什麼問題。但這是理論上的,實際開發過程中確實存在問題,比如socket長連接,通信數據包在底層的封裝方式不同。我沒有使用xml-rpc的原因之一就是我聽說php的xmlrpc跟其他語言的xmlrpc有不同的地方,需要修改才能用,我就沒有用這種辦法。最早是自己定義的操作協議,這時就遇到了這些問題,所以後來直接採用了thrift方式。就基本不存在跨語言的socket通信問題了。
三、代理端執行結果的獲取
無論命令還是文件是否在代理端執行成功,都需要獲取到執行結果返回給中央端。所以這里也涉及一個讀取節點上的stdout和stderr的問題。這個總體來說不是很難,都有現成的包。當然這個時候你需要的是阻塞執行,而不能搞非同步回調。
還有個問題是,我要盡可能使用python默認就帶的包,而盡量不讓伺服器去訪問internet下載第三方的包。
還有代理端最重要的一點,就是python的版本兼容性。centos5用python 2.4,centos6用python 2.6,ubuntu基本默認都是2.7。所以一定要最大限度的保證語言的跨版本兼容性,要是每個操作系統和每一個版本我都寫一個代理,我一個人就累死了。
四、瀏覽器端的model,view,controller
這裡面你要封裝好所有的通信協議,以及需要在節點上面執行的腳本。發送文件的操作和資料庫操作也要在model裡面完成。
如果對tcl/tk很熟,也可以寫基於操作系統界面方式的管理,不用瀏覽器就是了。
view對我來說是最痛苦的事,都是現學的jQuery怎麼用,前端的工作太可怕了。關於這方面,沒有太多可描述的,html和js帶給我的只有痛苦的回憶,萬惡的undefined。
五、跨操作系統的安裝文件封裝。
要適應不同的操作系統也是個很麻煩的事情,需要用agent提前獲知操作系統的發行分支,版本號。然後去找到對應的安裝文件去執行。你不能保證一個分布式系統的集群中所有的節點都可以訪問internet,更多的情況是這些節點都存在在一個安全的內網中。只有個別幾個節點是可以訪問外網的。所以,我勢必要把所有的安裝文件以及他們的依賴盡可能集中起來。我不確定安裝操作系統的lzo,yum或者apt-get會去下什麼鬼東西,甚至無論是yum還是apt-get,裡面都沒有hadoop-lzo的庫文件。所以,最好的辦法是自己編譯打包rpm和deb包。直接安裝就好了,別去找repo下載什麼。
這就是第五步工作,把需要的依賴的東西自己編譯打包成rpm和deb。
deb包很好解決,但是rpm就沒那麼好辦了,需要學習rpm的編譯文件如何編寫,這塊是挺麻煩的,但是這玩意用好了還是挺不錯的。現在我自製的安裝包裡面就已經包含了自己編譯的lzo和snappy兩種壓縮庫,以及hadoop-gpl-packaging的rpm和deb。下一個發布的easyhadoop將直接支持centos5,6,suse,以及ubuntu/debian的系統上安裝hadoop。已經自帶了lzo和snappy以及lzop和snzip。
六、把這些所有東西,整合到一個系統裡面。
關聯這些所有事情間的聯系,整合到一個瀏覽器界面裡面去。寫一個分布式的管理腳本不難,寫一個界面也不難,但是也許是我的水平不行,這兩件事結合起來讓他們協同工作還是有點難度的。對我來說,寫界面的工作可能更難一點。
Cloudera可能是十來個人在寫Manager的東西,ambari也是放到github和apache svn上面,apache基金會的各種committer在寫。easyhadoop沒他們功能那麼強大,一年來只有我一個人設計架構,功能,各種語言的編碼,測試,發布。For the love of god, What have I done(英文部分請站在山頂仰天長嘯)? T_T。從前台到後台,到hadoop和生態系統以及他們的依賴軟體的單獨patch、編譯打包。(系統yum或者apt-get的包不如自己打的好使。)
從時間上來看,全球第一款開源的hadoop部署管理系統應該還是屬於ambari,2011年8月開始寫的,2012年9月底進入apache的incubator。我是大概2012年8月開始寫的easyhadoop,全球第一沒趕上,估計國內第一個開源的hadoop管理系統還是可以排上的。
B. 大數據培訓到底是培訓什麼
一、基礎部分:JAVA語言 和 LINUX系統
二、數據開發:
1、數據分析與挖掘
一般工作包括數據清洗,執行分析和數據可視化。學習Python、資料庫、網路爬蟲、數據分析與處理等。
大數據培訓一般是指大數據開發培訓。
大數據技術龐大復雜,基礎的技術包含數據的採集、數據預處理、分布式存儲、資料庫、數據倉庫、機器學習、並行計算、可視化等各種技術范疇和不同的技術層面。
2、大數據開發
數據工程師建設和優化系統。學習hadoop、spark、storm、超大集群調優、機器學習、Docker容器引擎、ElasticSearch、並發編程等;
課程學習一共分為六個階段:
7
C. 大數據需要掌握哪些技能
大數據技術體系龐大,包括的知識較多
1、學習大數據首先要學習Java基礎
Java是大數據學習需要的編程語言基礎,因為大數據的開發基於常用的高級語言。而且不論是學hadoop,
2、學習大數據必須學習大數據核心知識
Hadoop生態系統;HDFS技術;HBASE技術;Sqoop使用流程;數據倉庫工具HIVE;大數據離線分析Spark、Python語言;數據實時分析Storm;消息訂閱分發系統Kafka等。
3、學習大數據需要具備的能力
數學知識,數學知識是數據分析師的基礎知識。對於數據分析師,了解一些描述統計相關的內容,需要有一定公式計算能力,了解常用統計模型演算法。而對於數據挖掘工程師來說,各類演算法也需要熟練使用,對數學的要求是最高的。
4、學習大數據可以應用的領域
大數據技術可以應用在各個領域,比如公安大數據、交通大數據、醫療大數據、就業大數據、環境大數據、圖像大數據、視頻大數據等等,應用范圍非常廣泛。
D. 數據分析需要掌握哪些知識
Java基礎語法
· 分支結構if/switch
· 循環結構for/while/do while
· 方法聲明和調用
· 方法重載
· 數組的使用
· 命令行參數、可變參數
IDEA
· IDEA常用設置、常用快捷鍵
· 自定義模板
· 關聯Tomcat
· Web項目案例實操
面向對象編程
· 封裝、繼承、多態、構造器、包
· 異常處理機制
· 抽象類、介面、內部類
· 常有基礎API、集合List/Set/Map
· 泛型、線程的創建和啟動
· 深入集合源碼分析、常見數據結構解析
· 線程的安全、同步和通信、IO流體系
· 反射、類的載入機制、網路編程
Java8/9/10/11
新特性
· Lambda表達式、方法引用
· 構造器引用、StreamAPI
· jShell(JShell)命令
· 介面的私有方法、Optional加強
· 局部變數的類型推斷
· 更簡化的編譯運行程序等
MySQL
· DML語言、DDL語言、DCL語言
· 分組查詢、Join查詢、子查詢、Union查詢、函數
· 流程式控制制語句、事務的特點、事務的隔離級別等
JDBC
· 使用JDBC完成資料庫增刪改查操作
· 批處理的操作
· 資料庫連接池的原理及應用
· 常見資料庫連接池C3P0、DBCP、Druid等
Maven
· Maven環境搭建
· 本地倉庫&中央倉庫
· 創建Web工程
· 自動部署
· 持續繼承
· 持續部署
Linux
· VI/VIM編輯器
· 系統管理操作&遠程登錄
· 常用命令
· 軟體包管理&企業真題
Shell編程
· 自定義變數與特殊變數
· 運算符
· 條件判斷
· 流程式控制制
· 系統函數&自定義函數
· 常用工具命令
· 面試真題
Hadoop
· Hadoop生態介紹
· Hadoop運行模式
· 源碼編譯
· HDFS文件系統底層詳解
· DN&NN工作機制
· HDFS的API操作
· MapRece框架原理
· 數據壓縮
· Yarn工作機制
· MapRece案例詳解
· Hadoop參數調優
· HDFS存儲多目錄
· 多磁碟數據均衡
· LZO壓縮
· Hadoop基準測試
Zookeeper
· Zookeeper數據結果
· 內部原理
· 選舉機制
· Stat結構體
· 監聽器
· 分布式安裝部署
· API操作
· 實戰案例
· 面試真題
· 啟動停止腳本
HA+新特性
· HDFS-HA集群配置
Hive
· Hive架構原理
· 安裝部署
· 遠程連接
· 常見命令及基本數據類型
· DML數據操作
· 查詢語句
· Join&排序
· 分桶&函數
· 壓縮&存儲
· 企業級調優
· 實戰案例
· 面試真題
Flume
· Flume架構
· Agent內部原理
· 事務
· 安裝部署
· 實戰案例
· 自定義Source
· 自定義Sink
· Ganglia監控
Kafka
· 消息隊列
· Kafka架構
· 集群部署
· 命令行操作
· 工作流程分析
· 分區分配策略
· 數據寫入流程
· 存儲策略
· 高階API
· 低級API
· 攔截器
· 監控
· 高可靠性存儲
· 數據可靠性和持久性保證
· ISR機制
· Kafka壓測
· 機器數量計算
· 分區數計算
· 啟動停止腳本
DataX
· 安裝
· 原理
· 數據一致性
· 空值處理
· LZO壓縮處理
Scala
· Scala基礎入門
· 函數式編程
· 數據結構
· 面向對象編程
· 模式匹配
· 高階函數
· 特質
· 註解&類型參數
· 隱式轉換
· 高級類型
· 案例實操
Spark Core
· 安裝部署
· RDD概述
· 編程模型
· 持久化&檢查點機制
· DAG
· 運算元詳解
· RDD編程進階
· 累加器&廣播變數
Spark SQL
· SparkSQL
· DataFrame
· DataSet
· 自定義UDF&UDAF函數
Spark Streaming
· SparkStreaming
· 背壓機制原理
· Receiver和Direct模式原理
· Window原理及案例實操
· 7x24 不間斷運行&性能考量
Spark內核&優化
· 內核源碼詳解
· 優化詳解
Hbase
· Hbase原理及架構
· 數據讀寫流程
· API使用
· 與Hive和Sqoop集成
· 企業級調優
Presto
· Presto的安裝部署
· 使用Presto執行數倉項目的即席查詢模塊
Ranger2.0
· 許可權管理工具Ranger的安裝和使用
Azkaban3.0
· 任務調度工具Azkaban3.0的安裝部署
· 使用Azkaban進行項目任務調度,實現電話郵件報警
Kylin3.0
· Kylin的安裝部署
· Kylin核心思想
· 使用Kylin對接數據源構建模型
Atlas2.0
· 元數據管理工具Atlas的安裝部署
Zabbix
· 集群監控工具Zabbix的安裝部署
DolphinScheler
· 任務調度工具DolphinScheler的安裝部署
· 實現數倉項目任務的自動化調度、配置郵件報警
Superset
· 使用SuperSet對數倉項目的計算結果進行可視化展示
Echarts
· 使用Echarts對數倉項目的計算結果進行可視化展示
Redis
· Redis安裝部署
· 五大數據類型
· 總體配置
· 持久化
· 事務
· 發布訂閱
· 主從復制
Canal
· 使用Canal實時監控MySQL數據變化採集至實時項目
Flink
· 運行時架構
· 數據源Source
· Window API
· Water Mark
· 狀態編程
· CEP復雜事件處理
Flink SQL
· Flink SQL和Table API詳細解讀
Flink 內核
· Flink內核源碼講解
· 經典面試題講解
Git&GitHub
· 安裝配置
· 本地庫搭建
· 基本操作
· 工作流
· 集中式
ClickHouse
· ClickHouse的安裝部署
· 讀寫機制
· 數據類型
· 執行引擎
DataV
· 使用DataV對實時項目需求計算結果進行可視化展示
sugar
· 結合Springboot對接網路sugar實現數據可視化大屏展示
Maxwell
· 使用Maxwell實時監控MySQL數據變化採集至實時項目
ElasticSearch
· ElasticSearch索引基本操作、案例實操
Kibana
· 通過Kibana配置可視化分析
Springboot
· 利用Springboot開發可視化介面程序
E. 以道大數據課程體系都講什麼
大數據技術在如今應用非常廣泛,許多想入行學習大數據培訓的童鞋不知從何學起,從哪兒開始學首先要根據你的基本情況而定,如果你是零基礎的也不需要擔心,先從基礎開始學起就好了,接下來學習基礎java開始、數據結構、關系型資料庫、linux系統操作,夯實基礎之後,再進入大數據的學習,例如:hadoop離線分析、Storm實時計算、spark內存計算的學習,以道教育大數據課程體系可以如下:
第一階段 WEB 開發基礎
HTML基礎
1、Html基本介紹
2、HTML語法規范
3、基本標簽介紹
4、HTML編輯器/文本文檔/WebStrom/elipse
5、HTML元素和屬性
6、基本的HTML元素
6.1 標題
6.2 段落
6.3 樣式和style屬性
6.3 鏈接 a
6.4 圖像 img
6.5 表格 table
6.6 列表 ul/ol/dl
7、 HTML注釋
8、表單介紹
9、Table標簽
10、DIV布局介紹
11、HTML列表詳解
HTML布局和Bootstrap
1、 HTML塊元素(block)和行內元素(inline)
2、使用div實現網頁布局
3、響應式WEB設計(Responsive Web Design)
4、使用bootstrap實現響應式布局
HTML表單元素
1、HTML表單 form
2、HTML表單元素
3、 HTML input的類型 type
4、 Html input的屬性
CSS基礎
1、CSS簡介及基本語法
2、在HTML文檔中使用CSS
3、CSS樣式
4、CSS選擇器
5、盒子模型
6、布局及定位
CSS高級/CSS3
1、尺寸和對齊
2、分類(clear/cursor/display/float/position/visibility)
3、導航欄
4、圖片庫
5、圖片透明
6、媒介類型 @media
7、CSS3
8、CSS3動畫效果
JavaScript基礎
1、JavaScript簡介
2、基本語法規則
3、在HTML文檔中使用JS
4、JS變數
5、JS數據類型
6、JS函數
7、JS運算符
8、流程式控制制
9、JS錯誤和調試
JavaScript對象和作用域
1、數字 Number
2、字元串String
3、日期 Date
4、數組
5、數學 Math
6、DOM對象和事件
7、BOM對象
8、Window對象
9、作用域和作用域鏈
10、JSON
Javascript庫
1、Jquery
2、Prototype
3、Ext Js
Jquery
1、Jquery基本語法
2、Jquery選擇器
3、Jquery事件
4、Jquery選擇器
5、Jquery效果和動畫
6、使用Jquery操作HTML和DOM
7、Jquery遍歷
8、Jquery封裝函數
9、Jquery案例
表單驗證和Jquery Validate
1、用Js對HTML表單進行驗證
2、Jquery Validata基本用法
3、默認校驗規則和提示信息
4、debug和ignore
5、更改錯誤信息顯示位置和樣式
6、全部校驗通過後的執行函數
7、修改驗證觸發方式
8、非同步驗證
9、自定義校驗方法
10、radio 和 checkbox、select 的驗證
Java基礎
1、關於Java
2、Java運行機制
3、第一個Java程序,注釋
4、Javac,Java,Javadoc等命令
5、標識符與關鍵字
6、變數的聲明,初始化與應用
7、變數的作用域
8、變數重名
9、基本數據類型
10、類型轉換與類型提升
11、各種數據類型使用細節
12、轉義序列
13、各種運算符的使用
流程式控制制
1、選擇控制語句if-else
2、選擇控制語句switch-case
3、循環控制語句while
4、循環控制語句do-while
5、循環控制語句for與增強型for
6、break,continue,return
7、循環標簽
8、數組的聲明與初始化
9、數組內存空間分配
10、棧與堆內存
11、二維(多維)數組
12、Arrays類的相關方法
13、main方法命令行參數
面向對象
1、面向對象的基本思想
2、類與對象
3、成員變數與默認值
4、方法的聲明,調用
5、參數傳遞和內存圖
6、方法重載的概念
7、調用原則與重載的優勢
8、構造器聲明與默認構造器
9、構造器重載
10、this關鍵字的使用
11、this調用構造器原則
12、實例變數初始化方式
13、可變參數方法
訪問許可權控制
1、包 package和庫
2、訪問許可權修飾符private/protected/public/包訪問許可權
3、類的訪問許可權
4、抽象類和抽象方法
5、介面和實現
6、解耦
7、Java的多重繼承
8、通過繼承來擴展介面
錯誤和異常處理
1、概念:錯誤和異常
2、基本異常
3、捕獲異常 catch
4、創建自定義異常
5、捕獲所有異常
6、Java標准異常
7、使用finally進行清理
8、異常的限制
9、構造器
10、異常匹配
11、異常使用指南
資料庫基礎(MySQL)
資料庫基礎(MySQL)
JDBC
1、Jdbc基本概念
2、使用Jdbc連接資料庫
3、使用Jdbc進行crud操作
4、使用Jdbc進行多表操作
5、Jdbc驅動類型
6、Jdbc異常和批量處理
7、Jdbc儲存過程
Servlet和JSP
1、Servlet簡介
2、Request對象
3、Response對象
4、轉發和重定向
5、使用Servlet完成Crud
6、Session和Coolie簡介
7、ServletContext和Jsp
8、El和Jstl的使用
Ajax
1、什麼是Ajax
2、XMLHttpRequest對象(XHR)
3、XHR請求
4、XHR響應
5、readystate/onreadystatechange
6、Jquery Ajax
7、JSON
8、案例:對用戶名是否可用進行伺服器端校驗
綜合案例
1、項目開發一般流程介紹
2、模塊化和分層
3、DButils
4、QueryRunner
5、ResultSetHandle
6、案例:用戶登錄/注冊,從前端到後端
第二階段 Java SE
訪問許可權和繼承
1、包的聲明與使用
2、import與import static
3、訪問許可權修飾符
4、類的封裝性
5、static(靜態成員變數)
6、final(修飾變數,方法)
7、靜態成員變數初始化方式
8、類的繼承與成員繼承
9、super的使用
10、調用父類構造器
11、方法的重寫與變數隱藏
12、繼承實現多態和類型轉換
13、instanceof
抽象類與介面
1、抽象類
2、抽象方法
3、繼承抽象類
4、抽象類與多態
5、介面的成員
6、靜態方法與默認方法
7、靜態成員類
8、實例成員類
9、局部類
10、匿名類
11、eclipse的使用與調試
12、內部類對外圍類的訪問關系
13、內部類的命名
Lambda表達式與常用類
1、函數式介面
2、Lambda表達式概念
3、Lambda表達式應用場合
4、使用案例
5、方法引用
6、枚舉類型(編譯器的處理)
7、包裝類型(自動拆箱與封箱)
8、String方法
9、常量池機制
10、String講解
11、StringBuilder講解
12、Math,Date使用
13、Calendars使用
異常處理與泛型
1、異常分類
2、try-catch-finally
3、try-with-resources
4、多重捕獲multi-catch
5、throw與throws
6、自定義異常和優勢
7、泛型背景與優勢
8、參數化類型與原生類型
9、類型推斷
10、參數化類型與數組的差異
11、類型通配符
12、自定義泛型類和類型擦出
13、泛型方法重載與重寫
集合
1 、常用數據結構
2 、Collection介面
3 、List與Set介面
4 、SortedSet與NavigableSet
5 、相關介面的實現類
6 、Comparable與Comparator
7、Queue介面
8 、Deque介面
9 、Map介面
10、NavigableMap
11、相關介面的實現類
12、流操作(聚合操作)
13、Collections類的使用
I/O流與反射
1 、File類的使用
2 、位元組流
3 、字元流
4 、緩存流
5 、轉換流
6 、數據流
7、對象流
8、類載入,鏈接與初始化
9 、ClassLoader的使用
10、Class類的使用
11、通過反射調用構造器
12、安全管理器
網路編程模型與多線程
1、進程與線程
2、創建線程的方式
3、線程的相關方法
4、線程同步
5、線程死鎖
6、線程協作操作
7、計算機網路(IP與埠)
8、TCP協議與UDP協議
9、URL的相關方法
10、訪問網路資源
11、TCP協議通訊
12、UDP協議通訊
13、廣播
SSM-Spring
1.Spring/Spring MVC
2.創建Spring MVC項目
3.Spring MVC執行流程和參數
SSM-Spring.IOC
1.Spring/Spring MVC
2.創建Spring MVC項目
3.Spring MVC執行流程和參數
SSM-Spring.AOP
1.Spring/Spring MVC
2.創建Spring MVC項目
3.Spring MVC執行流程和參數
SSM-Spring.Mybatis
1.MyBatis簡介
2.MyBatis配置文件
3.用MyBatis完成CRUD
4.ResultMap的使用
5.MyBatis關聯查詢
6.動態SQL
7.MyBatis緩沖
8.MyBatis-Generator
Socket編程
1.網路通信和協議
2.關於Socket
3.Java Socket
4.Socket類型
5.Socket函數
6.WebSocket
7.WebSocket/Spring MVC/WebSocket Ajax
IO/非同步
window對象
全局作用域
窗口關系及框架
窗口位置和大小
打開窗口
間歇調用和超時調用(靈活運用)
系統對話框
location對象
navigator對象
screen對象
history對象
NIO/AIO
1.網路編程模型
2.BIO/NIO/AIO
3.同步阻塞
4.同步非阻塞
5.非同步阻塞
6.非同步非阻塞
7.NIO與AIO基本操作
8.高性能IO設計模式
第三階段 Java 主流框架
MyBatis
1.mybatis框架原理分析
2.mybatis框架入門程序編寫
3.mybatis和hibernate的本質區別和應用場景
4.mybatis開發方法
5.SqlMapConfig配置文件講解
6.輸入映射-pojo包裝類型的定義與實現
7.輸出映射-resultType、resultMap
8.動態sql
9.訂單商品數據模型分析
10.高級映射的使用
11.查詢緩存之一級緩存、二級緩存
12.mybatis與spring整合
13. mybatis逆向工程自動生成代碼
Spring/Spring MVC
1. springmvc架構介紹
2. springmvc入門程序
3. spring與mybatis整合
4. springmvc註解開發—商品修改功能分析
5. springmvc註解開發—RequestMapping註解
6. springmvc註解開發—Controller方法返回值
7. springmvc註解開發—springmvc參數綁定過程分析
8. springmvc註解開發—springmvc參數綁定實例講解
9. springmvc與struts2的區別
10. springmvc異常處理
11. springmvc上傳圖片
12. springmvc實現json交互
13. springmvc對RESTful支持
14. springmvc攔截器
第四階段 關系型資料庫/MySQL/NoSQL
SQL基礎
1.SQL及主流產品
2.MySQL的下載與安裝(sinux/windows)
3.MySql的基本配置/配置文件
4.基本的SQL操作 DDL
5.基本的SQL操作 DML
6.基本的SQL操作 DCL
7.MySQL客戶端工具
8.MySQL幫助文檔
MySQL數據類型和運算符
1 數值類型
2 日期時間類型
3 字元串類型
4 CHAR 和 VARCHAR 類型
5 BINARY 和 VARBINARY 類型
6 ENUM 類型
7 SET 類型
8 算術運算符
9 比較運算符
10 邏輯運算符
11 位運算
12 運算符的優先順序
MySQL函數
1 字元串函數
2 數值函數
3 日期和時間函數
4 流程函數
5 其他常用函數
MySQL存儲引擎
1.MySQL支持的存儲引擎及其特性
2.MyISAM
3.InnoDB
4.選擇合適的存儲引擎
選擇合適的數據類型
1 CHAR 與 VARCHAR
2 TEXT 與 BLOB
3 浮點數與定點數
4 日期類型選擇
字元集
1 字元集概述
2 Unicode字元集
3 漢字及一些常見字元集
4 選擇合適的字元集
5 MySQL 支持的字元集
6 MySQL 字元集的設置 .
索引的設計和使用
1.什麼是索引
2.索引的類型
3.索引的數據結構 BTree B+Tree Hash
4.索引的存儲
5.MySQL索引
6.查看索引的使用情況
7.索引設計原則
視圖/存儲過程/函數/觸發器
1. 什麼是視圖
2. 視圖操作
3. 什麼是存儲過程
4. 存儲過程操作
5. 什麼是函數
6. 函數的相關操作
7. 觸發器
事務控制/鎖
1. 什麼是事務
2. 事務控制
3. 分布式事務
4. 鎖/表鎖/行鎖
5. InnoDB 行鎖爭用
6. InnoDB 的行鎖模式及加鎖方法7
7 InnoDB 行鎖實現方式7
8 間隙鎖(Next-Key 鎖)
9 恢復和復制的需要,對 InnoDB 鎖機制的影響
10 InnoDB 在不同隔離級別下的一致性讀及鎖的差異
11 表鎖
12 死鎖
SQL Mode和安全問題
1. 關於SQL Mode
2. MySQL中的SQL Mode
3. SQL Mode和遷移
4. SQL 注入
5. 開發過程中如何避免SQL注入
SQL優化
1.通過 show status 命令了解各種 SQL 的執行頻率
2. 定位執行效率較低的 SQL 語句
3. 通過 EXPLAIN 分析低效 SQL 的執行計劃
4. 確定問題並採取相應的優化措施
5. 索引問題
6.定期分析表和檢查表
7.定期優化表
8.常用 SQL 的優化
MySQL資料庫對象優化
1. 優化表的數據類型
2 散列化
3 逆規范化
4 使用中間表提高統計查詢速度
5. 影響MySQL性能的重要參數
6. 磁碟I/O對MySQL性能的影響
7. 使用連接池
8. 減少MySQL連接次數
9. MySQL負載均衡
MySQL集群
MySQL管理和維護
MemCache
Redis
在Java項目中使用MemCache和Redis
第五階段:操作系統/Linux、雲架構
Linux安裝與配置
1、安裝Linux至硬碟
2、獲取信息和搜索應用程序
3、進階:修復受損的Grub
4、關於超級用戶root
5、依賴發行版本的系統管理工具
6、關於硬體驅動程序
7、進階:配置Grub
系統管理與目錄管理
1、Shell基本命令
2、使用命令行補全和通配符
3、find命令、locate命令
4、查找特定程序:whereis
5、Linux文件系統的架構
6、移動、復制和刪除
7、文件和目錄的許可權
8、文件類型與輸入輸出
9、vmware介紹與安裝使用
10、網路管理、分區掛載
用戶與用戶組管理
1、軟體包管理
2、磁碟管理
3、高級硬碟管理RAID和LVM
4、進階:備份你的工作和系統
5、用戶與用戶組基礎
6、管理、查看、切換用戶
7、/etc/...文件
8、進程管理
9、linux VI編輯器,awk,cut,grep,sed,find,unique等
Shell編程
1、 SHELL變數
2、傳遞參數
3、數組與運算符
4、SHELL的各類命令
5、SHELL流程式控制制
6、SHELL函數
7、SHELL輸入/輸出重定向
8、SHELL文件包含
伺服器配置
1、系統引導
2、管理守護進程
3、通過xinetd啟動SSH服務
4、配置inetd
5、Tomcat安裝與配置
6、MySql安裝與配置
7、部署項目到Linux
第六階段:Hadoop生態系統
Hadoop基礎
1、大數據概論
2、 Google與Hadoop模塊
3、Hadoop生態系統
4、Hadoop常用項目介紹
5、Hadoop環境安裝配置
6、Hadoop安裝模式
7、Hadoop配置文件
HDFS分布式文件系統
1、認識HDFS及其HDFS架構
2、Hadoop的RPC機制
3、HDFS的HA機制
4、HDFS的Federation機制
5、 Hadoop文件系統的訪問
6、JavaAPI介面與維護HDFS
7、HDFS許可權管理
8、hadoop偽分布式
Hadoop文件I/O詳解
1、Hadoop文件的數據結構
2、 HDFS數據完整性
3、文件序列化
4、Hadoop的Writable類型
5、Hadoop支持的壓縮格式
6、Hadoop中編碼器和解碼器
7、 gzip、LZO和Snappy比較
8、HDFS使用shell+Java API
MapRece工作原理
1、MapRece函數式編程概念
2、 MapRece框架結構
3、MapRece運行原理
4、Shuffle階段和Sort階段
5、任務的執行與作業調度器
6、自定義Hadoop調度器
7、 非同步編程模型
8、YARN架構及其工作流程
MapRece編程
1、WordCount案例分析
2、輸入格式與輸出格式
3、壓縮格式與MapRece優化
4、輔助類與Streaming介面
5、MapRece二次排序
6、MapRece中的Join演算法
7、從MySQL讀寫數據
8、Hadoop系統調優
Hive數據倉庫工具
1、Hive工作原理、類型及特點
2、Hive架構及其文件格式
3、Hive操作及Hive復合類型
4、Hive的JOIN詳解
5、Hive優化策略
6、Hive內置操作符與函數
7、Hive用戶自定義函數介面
8、Hive的許可權控制
Hive深入解讀
1 、安裝部署Sqoop
2、Sqoop數據遷移
3、Sqoop使用案例
4、深入了解資料庫導入
5、導出與事務
6、導出與SequenceFile
7、Azkaban執行工作流
Sqoop與Oozie
1 、安裝部署Sqoop
2、Sqoop數據遷移
3、Sqoop使用案例
4、深入了解資料庫導入
5、導出與事務
6、導出與SequenceFile
7、Azkaban執行工作流
Zookeeper詳解
1、Zookeeper簡介
2、Zookeeper的下載和部署
3、Zookeeper的配置與運行
4、Zookeeper的本地模式實例
5、Zookeeper的數據模型
6、Zookeeper命令行操作範例
7、storm在Zookeeper目錄結構
NoSQL、HBase
1、HBase的特點
2、HBase訪問介面
3、HBase存儲結構與格式
4、HBase設計
5、關鍵演算法和流程
6、HBase安裝
7、HBase的SHELL操作
8、HBase集群搭建
第七階段:Spark生態系統
Spark
1.什麼是Spark
2.Spark大數據處理框架
3.Spark的特點與應用場景
4.Spark SQL原理和實踐
5.Spark Streaming原理和實踐
6.GraphX SparkR入門
7.Spark的監控和調優
Spark部署和運行
1.WordCount准備開發環境
2.MapRece編程介面體系結構
3.MapRece通信協議
4.導入Hadoop的JAR文件
5.MapRece代碼的實現
6.打包、部署和運行
7.打包成JAR文件
Spark程序開發
1、啟動Spark Shell
2、載入text文件
3、RDD操作及其應用
4、RDD緩存
5、構建Eclipse開發環境
6、構建IntelliJ IDEA開發環境
7、創建SparkContext對象
8、編寫編譯並提交應用程序
Spark編程模型
1、RDD特徵與依賴
2、集合(數組)創建RDD
3、存儲創建RDD
4、RDD轉換 執行 控制操作
5、廣播變數
6、累加器
作業執行解析
1、Spark組件
2、RDD視圖與DAG圖
3、基於Standalone模式的Spark架構
4、基於YARN模式的Spark架構
5、作業事件流和調度分析
6、構建應用程序運行時環境
7、應用程序轉換成DAG
Spark SQL與DataFrame
1、Spark SQL架構特性
2、DataFrame和RDD的區別
3、創建操作DataFrame
4、RDD轉化為DataFrame
5、載入保存操作與Hive表
6、Parquet文件JSON數據集
7、分布式的SQL Engine
8、性能調優 數據類型
深入Spark Streaming
1、Spark Streaming工作原理
2、DStream編程模型
3、Input DStream
4、DStream轉換 狀態 輸出
5、優化運行時間及內存使用
6、文件輸入源
7、基於Receiver的輸入源
8、輸出操作
Spark MLlib與機器學習
1、機器學習分類級演算法
2、Spark MLlib庫
3、MLlib數據類型
4、MLlib的演算法庫與實例
5、ML庫主要概念
6、演算法庫與實例
GraphX與SparkR
1、Spark GraphX架構
2、GraphX編程與常用圖演算法
3、GraphX應用場景
4、SparkR的工作原理
5、R語言與其他語言的通信
6、SparkR的運行與應用
7、R的DataFrame操作方法
8、SparkR的DataFrame
Scala編程開發
1、Scala語法基礎
2、idea工具安裝
3、maven工具配置
4、條件結構、循環、高級for循環
5、數組、映射、元組
6、類、樣例類、對象、伴生對象
7、高階函數與函數式編程
Scala進階
1、 柯里化、閉包
2、模式匹配、偏函數
3、類型參數
4、協變與逆變
5、隱式轉換、隱式參數、隱式值
6、Actor機制
7、高級項目案例
Python編程
1、Python編程介紹
2、Python的基本語法
3、Python開發環境搭建
4、Pyhton開發Spark應用程序
第八階段:Storm生態系統
storm簡介與基本知識
1、storm的誕生誕生與成長
2、storm的優勢與應用
3、storm基本知識概念和配置
4、序列化與容錯機制
5、可靠性機制—保證消息處理
6、storm開發環境與生產環境
7、storm拓撲的並行度
8、storm命令行客戶端
Storm拓撲與組件詳解
1、流分組和拓撲運行
2、拓撲的常見模式
3、本地模式與stormsub的對比
4、 使用非jvm語言操作storm
5、hook、組件基本介面
6、基本抽象類
7、事務介面
8、組件之間的相互關系
spout詳解 與bolt詳解
1、spout獲取數據的方式
2、常用的spout
3、學習編寫spout類
4、bolt概述
5、可靠的與不可靠的bolt
6、復合流與復合anchoring
7、 使用其他語言定義bolt
8、學習編寫bolt類
storm安裝與集群搭建
1、storm集群安裝步驟與准備
2、本地模式storm配置命令
3、配置hosts文件、安裝jdk
4、zookeeper集群的搭建
5、部署節點
6、storm集群的搭建
7、zookeeper應用案例
8、Hadoop高可用集群搭建
Kafka
1、Kafka介紹和安裝
2、整合Flume
3、Kafka API
4、Kafka底層實現原理
5、Kafka的消息處理機制
6、數據傳輸的事務定義
7、Kafka的存儲策略
Flume
1、Flume介紹和安裝
2、Flume Source講解
3、Flume Channel講解
4、Flume Sink講解
5、flume部署種類、流配置
6、單一代理、多代理說明
7、flume selector相關配置
Redis
1、Redis介紹和安裝、配置
2、Redis數據類型
3、Redis鍵、字元串、哈希
4、Redis列表與集合
5、Redis事務和腳本
6、Redis數據備份與恢復
7、Redis的SHELL操作
F. 電腦的壓縮文件有什麼用
如果你要一次上傳多個文件,可以用Winrar壓縮成一個文件,不僅方便而且壓縮以後原文件將縮小一些。
文件壓縮,原本是在那個存儲空間甚至需要以位元組來計算的時代,為了節省文件所佔用的空間而誕生的。而隨著網路的普及,為了節省文件在網路上傳輸的流量及時間,對文件進行壓縮也幾乎成為了必備的過程。
根據所使用的壓縮演算法的不同,壓縮文件也被區分為不同的格式。下面列表中的是所有的壓縮文件格式,不過常用的並沒有那麼多,而在Windows系統上面常用的就更少了。下面介紹一下壓縮文件的所有格式:
* .0 - Hacha Split存檔
* .000 - DoubleSpace壓縮檔
* .001 - 7-Zip壓縮Split檔
* .7z - 7-Zip壓縮檔
* .ace -WinAce壓縮檔
* .ain - AIN壓縮存檔
* .alz - ALZip存檔
* .apz - Autoplay Media Studio Exported Project
* .ar - Unix Static Library
* .arc - FreeArc壓縮存檔
* .ari - ARI壓縮存檔
* .arj - ARJ壓縮存檔
* .axx - AxCrypt加密檔
* .bh - BlakHole存檔
* .bhx - BinHex編碼檔
* .boo - Booasm壓縮存檔
* .bz - Bzip壓縮檔
* .bza -
* .bz2 - Bzip2壓縮檔
* .bzip2 - Bzip2壓縮存檔
* .c00 -WinAceSplit存檔
* .c01 -WinAceSplit存檔分卷
* .c02 -WinAceSplit存檔分卷
* .cab -
* .car - CAR存檔
* .cbr - Comic Book RAR存檔
* .cbz - Comic Book ZIP存檔
* .cp9 - ChoicePoint Encrypted檔
* .cpgz - 壓縮CPIO存檔
* .cpt - Compact Pro存檔
* .dar - DAR Disk存檔
* .dd - DiskDouber存檔
* .deb - Debian軟體包
* .dgc - DGCA存檔
* .dist - Mac OS X Distribution Script
* .ecs - Sony Ericsson Phone備份檔
* .efw - Renamed Zip or Executable檔
* .f - Freeze壓縮檔
* .fdp - MySafe加密數據
* .gca - GCA存檔
* .gz - Gnu Zipped檔
* .gzi - Unix Gzip檔
* .gzip - Gnu Zipped檔
* .ha - HA壓縮存檔
* .hbc - HyperBac壓縮存檔
* .hbc2 - HyperBac壓縮存檔
* .hbe - HyperBac壓縮加密存檔
* .hki - WinHKI存檔
* .hki1 - WinHKI HKI1存檔
* .hki2 - WinHKI HKI2存檔
* .hki3 - WinHKI HKI3存檔
* .hpk - HPack壓縮存檔
* .hyp- HYPER壓縮存檔
* .ice - ICE存檔
* .imp - Winimp壓縮存檔
* .ipg - iPod游戲檔
* .ipk - Itsy包
* .ish - ISH壓縮存檔
* .j - JAR存檔
* .jar - JAR存檔
* .jgz - Gzipped Javascript檔
* .jic - Java Icon檔
* .kgb - KGB存檔
*.kz -快壓存檔
* .lbr - LU Library存檔
* .lha - LHARC壓縮存檔
* .lnx - Commodore 64 Lynx存檔
* .lqr - SQ壓縮LBR存檔
* .lzh - LZH壓縮檔
* .lzm - Slax Mole
* .lzma - LZMA壓縮檔
* .lzo - LZO壓縮檔
* .lzx - Amiga LZX壓縮檔
* .md - MDCD壓縮存檔
* .mint - Linux Mint安裝程序檔
* .mou - Winmount壓縮檔
* .mpkg - Meta包
* .mzp - MAXScript Zip包
* .nz - nanozip壓縮檔
* .p7m - Digitally Encrypted Message
* .package - Linux Autopackage檔
* .pae - PowerArchiver加密存檔
* .pak- PAK (Packed)檔
* .paq6 - PAQ6數據存檔
* .paq7 - PAQ7數據存檔
* .paq8 - PAQ8數據存檔
* .par - Parchive Index檔
* .par2 - Parchive 2 Index檔
* .pbi - PC BSD安裝程序包
* .pcv - Mozilla Profile備份
* .pea - PEA存檔
* .pf - Private檔
* .pim - PIM存檔
* .pit - PackIt壓縮存檔
* .piz - Zipped檔
* .pkg - Mac OS X安裝程序包
* .pup - PlayStation 3 Update檔
* .pup - Puppy Linux DotPup安裝程序包
* .puz - Packed Publisher檔
* .pwa - Password Agent檔
* .qda - Quadruple D存檔
* .r00 - WinRAR壓縮存檔
* .r01 - WinRAR Split存檔分卷1
* .r02 - WinRAR Split存檔分卷2
* .r03 - WinRAR Split存檔分卷3
* .rar - WinRAR壓縮存檔
* .rk - WinRK存檔
* .rnc - RNC ProPack存檔
* .rpm - Red Hat Package Manager檔
* .rte - RTE編碼檔
* .rz - Rzip壓縮檔
* .rzs - Red Zion Security檔
* .s00 - ZipSplitter分卷1存檔
* .s01 - ZipSplitter分卷2存檔
* .s02 - ZipSplitter分卷3存檔
* .s7z - Mac OS X 7-Zip檔
* .sar - Service存檔
* .sdn - Shareware Distributors Network檔
* .sea - Self-Extracting存檔
* .sfs- SquashFS存檔
* .sfx - Windows自解壓存檔
* .sh - Unix Shell存檔
* .shar - Unix Shar存檔
* .shk - ShrinkIt存檔
* .shr - Unix Shell存檔
* .sit - Stuffit存檔
* .sitx - Stuffit X存檔
* .spt - TM File Packer壓縮存檔
* .sqx - SQX存檔
* .sqz - Squeezed Video檔
* .tar - Consolidated Unix檔
* .tbz2 - Tar BZip 2壓縮檔
* .tgz - Gzipped Tar檔
* .tlz - Tar LZMA壓縮檔
* .uc2 - UltraCompressor 2存檔
* .uha -UHarc壓縮存檔
* .uue - UUEncoded檔
* .vsi- Visual Studio Content安裝程序檔
* .wad - Compressed游戲數據
* .war - Java Web存檔
* .wot - Web Of Trust檔
* .xef -WinAce加密檔
* .xez - eManager Template包
* .xpi - Mozilla安裝程序包
* .xx - XXEncoded檔
* .xxe - XXEncoded檔
* .y - Amiga Yabba壓縮檔
* .yz - YAC壓縮檔
* .z - Unix壓縮檔
* .zap - FileWrangler存檔
* .zfsendtotarget -壓縮檔夾
* .zip - Zipped檔
* .zipx- Winzip壓縮檔
* .zix - WinZix壓縮檔
* .zoo - Zoo壓縮檔
* .zz - Zzip壓縮存檔
*.exe - 自解壓格式
G. 大數據培訓課程安排有哪些,深圳大數據培訓哪家好
下面是以道教育大數據培訓開發課程,可以參考
第一階段 WEB 開發基礎
HTML基礎
1、Html基本介紹
2、HTML語法規范
3、基本標簽介紹
4、HTML編輯器/文本文檔/WebStrom/elipse
5、HTML元素和屬性
6、基本的HTML元素
6.1 標題
6.2 段落
6.3 樣式和style屬性
6.3 鏈接 a
6.4 圖像 img
6.5 表格 table
6.6 列表 ul/ol/dl
7、 HTML注釋
8、表單介紹
9、Table標簽
10、DIV布局介紹
11、HTML列表詳解
HTML布局和Bootstrap
1、 HTML塊元素(block)和行內元素(inline)
2、使用div實現網頁布局
3、響應式WEB設計(Responsive Web Design)
4、使用bootstrap實現響應式布局
HTML表單元素
1、HTML表單 form
2、HTML表單元素
3、 HTML input的類型 type
4、 Html input的屬性
CSS基礎
1、CSS簡介及基本語法
2、在HTML文檔中使用CSS
3、CSS樣式
4、CSS選擇器
5、盒子模型
6、布局及定位
CSS高級/CSS3
1、尺寸和對齊
2、分類(clear/cursor/display/float/position/visibility)
3、導航欄
4、圖片庫
5、圖片透明
6、媒介類型 @media
7、CSS3
8、CSS3動畫效果
JavaScript基礎
1、JavaScript簡介
2、基本語法規則
3、在HTML文檔中使用JS
4、JS變數
5、JS數據類型
6、JS函數
7、JS運算符
8、流程式控制制
9、JS錯誤和調試
JavaScript對象和作用域
1、數字 Number
2、字元串String
3、日期 Date
4、數組
5、數學 Math
6、DOM對象和事件
7、BOM對象
8、Window對象
9、作用域和作用域鏈
10、JSON
Javascript庫
1、Jquery
2、Prototype
3、Ext Js
Jquery
1、Jquery基本語法
2、Jquery選擇器
3、Jquery事件
4、Jquery選擇器
5、Jquery效果和動畫
6、使用Jquery操作HTML和DOM
7、Jquery遍歷
8、Jquery封裝函數
9、Jquery案例
表單驗證和Jquery Validate
1、用Js對HTML表單進行驗證
2、Jquery Validata基本用法
3、默認校驗規則和提示信息
4、debug和ignore
5、更改錯誤信息顯示位置和樣式
6、全部校驗通過後的執行函數
7、修改驗證觸發方式
8、非同步驗證
9、自定義校驗方法
10、radio 和 checkbox、select 的驗證
Java基礎
1、關於Java
2、Java運行機制
3、第一個Java程序,注釋
4、Javac,Java,Javadoc等命令
5、標識符與關鍵字
6、變數的聲明,初始化與應用
7、變數的作用域
8、變數重名
9、基本數據類型
10、類型轉換與類型提升
11、各種數據類型使用細節
12、轉義序列
13、各種運算符的使用
流程式控制制
1、選擇控制語句if-else
2、選擇控制語句switch-case
3、循環控制語句while
4、循環控制語句do-while
5、循環控制語句for與增強型for
6、break,continue,return
7、循環標簽
8、數組的聲明與初始化
9、數組內存空間分配
10、棧與堆內存
11、二維(多維)數組
12、Arrays類的相關方法
13、main方法命令行參數
面向對象
1、面向對象的基本思想
2、類與對象
3、成員變數與默認值
4、方法的聲明,調用
5、參數傳遞和內存圖
6、方法重載的概念
7、調用原則與重載的優勢
8、構造器聲明與默認構造器
9、構造器重載
10、this關鍵字的使用
11、this調用構造器原則
12、實例變數初始化方式
13、可變參數方法
訪問許可權控制
1、包 package和庫
2、訪問許可權修飾符private/protected/public/包訪問許可權
3、類的訪問許可權
4、抽象類和抽象方法
5、介面和實現
6、解耦
7、Java的多重繼承
8、通過繼承來擴展介面
錯誤和異常處理
1、概念:錯誤和異常
2、基本異常
3、捕獲異常 catch
4、創建自定義異常
5、捕獲所有異常
6、Java標准異常
7、使用finally進行清理
8、異常的限制
9、構造器
10、異常匹配
11、異常使用指南
資料庫基礎(MySQL)
資料庫基礎(MySQL)
JDBC
1、Jdbc基本概念
2、使用Jdbc連接資料庫
3、使用Jdbc進行crud操作
4、使用Jdbc進行多表操作
5、Jdbc驅動類型
6、Jdbc異常和批量處理
7、Jdbc儲存過程
Servlet和JSP
1、Servlet簡介
2、Request對象
3、Response對象
4、轉發和重定向
5、使用Servlet完成Crud
6、Session和Coolie簡介
7、ServletContext和Jsp
8、El和Jstl的使用
Ajax
1、什麼是Ajax
2、XMLHttpRequest對象(XHR)
3、XHR請求
4、XHR響應
5、readystate/onreadystatechange
6、Jquery Ajax
7、JSON
8、案例:對用戶名是否可用進行伺服器端校驗
綜合案例
1、項目開發一般流程介紹
2、模塊化和分層
3、DButils
4、QueryRunner
5、ResultSetHandle
6、案例:用戶登錄/注冊,從前端到後端
第二階段 Java SE
訪問許可權和繼承
1、包的聲明與使用
2、import與import static
3、訪問許可權修飾符
4、類的封裝性
5、static(靜態成員變數)
6、final(修飾變數,方法)
7、靜態成員變數初始化方式
8、類的繼承與成員繼承
9、super的使用
10、調用父類構造器
11、方法的重寫與變數隱藏
12、繼承實現多態和類型轉換
13、instanceof
抽象類與介面
1、抽象類
2、抽象方法
3、繼承抽象類
4、抽象類與多態
5、介面的成員
6、靜態方法與默認方法
7、靜態成員類
8、實例成員類
9、局部類
10、匿名類
11、eclipse的使用與調試
12、內部類對外圍類的訪問關系
13、內部類的命名
Lambda表達式與常用類
1、函數式介面
2、Lambda表達式概念
3、Lambda表達式應用場合
4、使用案例
5、方法引用
6、枚舉類型(編譯器的處理)
7、包裝類型(自動拆箱與封箱)
8、String方法
9、常量池機制
10、String講解
11、StringBuilder講解
12、Math,Date使用
13、Calendars使用
異常處理與泛型
1、異常分類
2、try-catch-finally
3、try-with-resources
4、多重捕獲multi-catch
5、throw與throws
6、自定義異常和優勢
7、泛型背景與優勢
8、參數化類型與原生類型
9、類型推斷
10、參數化類型與數組的差異
11、類型通配符
12、自定義泛型類和類型擦出
13、泛型方法重載與重寫
集合
1 、常用數據結構
2 、Collection介面
3 、List與Set介面
4 、SortedSet與NavigableSet
5 、相關介面的實現類
6 、Comparable與Comparator
7、Queue介面
8 、Deque介面
9 、Map介面
10、NavigableMap
11、相關介面的實現類
12、流操作(聚合操作)
13、Collections類的使用
I/O流與反射
1 、File類的使用
2 、位元組流
3 、字元流
4 、緩存流
5 、轉換流
6 、數據流
7、對象流
8、類載入,鏈接與初始化
9 、ClassLoader的使用
10、Class類的使用
11、通過反射調用構造器
12、安全管理器
網路編程模型與多線程
1、進程與線程
2、創建線程的方式
3、線程的相關方法
4、線程同步
5、線程死鎖
6、線程協作操作
7、計算機網路(IP與埠)
8、TCP協議與UDP協議
9、URL的相關方法
10、訪問網路資源
11、TCP協議通訊
12、UDP協議通訊
13、廣播
SSM-Spring
1.Spring/Spring MVC
2.創建Spring MVC項目
3.Spring MVC執行流程和參數
SSM-Spring.IOC
1.Spring/Spring MVC
2.創建Spring MVC項目
3.Spring MVC執行流程和參數
SSM-Spring.AOP
1.Spring/Spring MVC
2.創建Spring MVC項目
3.Spring MVC執行流程和參數
SSM-Spring.Mybatis
1.MyBatis簡介
2.MyBatis配置文件
3.用MyBatis完成CRUD
4.ResultMap的使用
5.MyBatis關聯查詢
6.動態SQL
7.MyBatis緩沖
8.MyBatis-Generator
Socket編程
1.網路通信和協議
2.關於Socket
3.Java Socket
4.Socket類型
5.Socket函數
6.WebSocket
7.WebSocket/Spring MVC/WebSocket Ajax
IO/非同步
window對象
全局作用域
窗口關系及框架
窗口位置和大小
打開窗口
間歇調用和超時調用(靈活運用)
系統對話框
location對象
navigator對象
screen對象
history對象
NIO/AIO
1.網路編程模型
2.BIO/NIO/AIO
3.同步阻塞
4.同步非阻塞
5.非同步阻塞
6.非同步非阻塞
7.NIO與AIO基本操作
8.高性能IO設計模式
第三階段 Java 主流框架
MyBatis
1.mybatis框架原理分析
2.mybatis框架入門程序編寫
3.mybatis和hibernate的本質區別和應用場景
4.mybatis開發方法
5.SqlMapConfig配置文件講解
6.輸入映射-pojo包裝類型的定義與實現
7.輸出映射-resultType、resultMap
8.動態sql
9.訂單商品數據模型分析
10.高級映射的使用
11.查詢緩存之一級緩存、二級緩存
12.mybatis與spring整合
13. mybatis逆向工程自動生成代碼
Spring/Spring MVC
1. springmvc架構介紹
2. springmvc入門程序
3. spring與mybatis整合
4. springmvc註解開發—商品修改功能分析
5. springmvc註解開發—RequestMapping註解
6. springmvc註解開發—Controller方法返回值
7. springmvc註解開發—springmvc參數綁定過程分析
8. springmvc註解開發—springmvc參數綁定實例講解
9. springmvc與struts2的區別
10. springmvc異常處理
11. springmvc上傳圖片
12. springmvc實現json交互
13. springmvc對RESTful支持
14. springmvc攔截器
第四階段 關系型資料庫/MySQL/NoSQL
SQL基礎
1.SQL及主流產品
2.MySQL的下載與安裝(sinux/windows)
3.MySql的基本配置/配置文件
4.基本的SQL操作 DDL
5.基本的SQL操作 DML
6.基本的SQL操作 DCL
7.MySQL客戶端工具
8.MySQL幫助文檔
MySQL數據類型和運算符
1 數值類型
2 日期時間類型
3 字元串類型
4 CHAR 和 VARCHAR 類型
5 BINARY 和 VARBINARY 類型
6 ENUM 類型
7 SET 類型
8 算術運算符
9 比較運算符
10 邏輯運算符
11 位運算
12 運算符的優先順序
MySQL函數
1 字元串函數
2 數值函數
3 日期和時間函數
4 流程函數
5 其他常用函數
MySQL存儲引擎
1.MySQL支持的存儲引擎及其特性
2.MyISAM
3.InnoDB
4.選擇合適的存儲引擎
選擇合適的數據類型
1 CHAR 與 VARCHAR
2 TEXT 與 BLOB
3 浮點數與定點數
4 日期類型選擇
字元集
1 字元集概述
2 Unicode字元集
3 漢字及一些常見字元集
4 選擇合適的字元集
5 MySQL 支持的字元集
6 MySQL 字元集的設置 .
索引的設計和使用
1.什麼是索引
2.索引的類型
3.索引的數據結構 BTree B+Tree Hash
4.索引的存儲
5.MySQL索引
6.查看索引的使用情況
7.索引設計原則
視圖/存儲過程/函數/觸發器
1. 什麼是視圖
2. 視圖操作
3. 什麼是存儲過程
4. 存儲過程操作
5. 什麼是函數
6. 函數的相關操作
7. 觸發器
事務控制/鎖
1. 什麼是事務
2. 事務控制
3. 分布式事務
4. 鎖/表鎖/行鎖
5. InnoDB 行鎖爭用
6. InnoDB 的行鎖模式及加鎖方法7
7 InnoDB 行鎖實現方式7
8 間隙鎖(Next-Key 鎖)
9 恢復和復制的需要,對 InnoDB 鎖機制的影響
10 InnoDB 在不同隔離級別下的一致性讀及鎖的差異
11 表鎖
12 死鎖
SQL Mode和安全問題
1. 關於SQL Mode
2. MySQL中的SQL Mode
3. SQL Mode和遷移
4. SQL 注入
5. 開發過程中如何避免SQL注入
SQL優化
1.通過 show status 命令了解各種 SQL 的執行頻率
2. 定位執行效率較低的 SQL 語句
3. 通過 EXPLAIN 分析低效 SQL 的執行計劃
4. 確定問題並採取相應的優化措施
5. 索引問題
6.定期分析表和檢查表
7.定期優化表
8.常用 SQL 的優化
MySQL資料庫對象優化
1. 優化表的數據類型
2 散列化
3 逆規范化
4 使用中間表提高統計查詢速度
5. 影響MySQL性能的重要參數
6. 磁碟I/O對MySQL性能的影響
7. 使用連接池
8. 減少MySQL連接次數
9. MySQL負載均衡
MySQL集群
MySQL管理和維護
MemCache
Redis
在Java項目中使用MemCache和Redis
第五階段:操作系統/Linux、雲架構
Linux安裝與配置
1、安裝Linux至硬碟
2、獲取信息和搜索應用程序
3、進階:修復受損的Grub
4、關於超級用戶root
5、依賴發行版本的系統管理工具
6、關於硬體驅動程序
7、進階:配置Grub
系統管理與目錄管理
1、Shell基本命令
2、使用命令行補全和通配符
3、find命令、locate命令
4、查找特定程序:whereis
5、Linux文件系統的架構
6、移動、復制和刪除
7、文件和目錄的許可權
8、文件類型與輸入輸出
9、vmware介紹與安裝使用
10、網路管理、分區掛載
用戶與用戶組管理
1、軟體包管理
2、磁碟管理
3、高級硬碟管理RAID和LVM
4、進階:備份你的工作和系統
5、用戶與用戶組基礎
6、管理、查看、切換用戶
7、/etc/...文件
8、進程管理
9、linux VI編輯器,awk,cut,grep,sed,find,unique等
Shell編程
1、 SHELL變數
2、傳遞參數
3、數組與運算符
4、SHELL的各類命令
5、SHELL流程式控制制
6、SHELL函數
7、SHELL輸入/輸出重定向
8、SHELL文件包含
伺服器配置
1、系統引導
2、管理守護進程
3、通過xinetd啟動SSH服務
4、配置inetd
5、Tomcat安裝與配置
6、MySql安裝與配置
7、部署項目到Linux
第六階段:Hadoop生態系統
Hadoop基礎
1、大數據概論
2、 Google與Hadoop模塊
3、Hadoop生態系統
4、Hadoop常用項目介紹
5、Hadoop環境安裝配置
6、Hadoop安裝模式
7、Hadoop配置文件
HDFS分布式文件系統
1、認識HDFS及其HDFS架構
2、Hadoop的RPC機制
3、HDFS的HA機制
4、HDFS的Federation機制
5、 Hadoop文件系統的訪問
6、JavaAPI介面與維護HDFS
7、HDFS許可權管理
8、hadoop偽分布式
Hadoop文件I/O詳解
1、Hadoop文件的數據結構
2、 HDFS數據完整性
3、文件序列化
4、Hadoop的Writable類型
5、Hadoop支持的壓縮格式
6、Hadoop中編碼器和解碼器
7、 gzip、LZO和Snappy比較
8、HDFS使用shell+Java API
MapRece工作原理
1、MapRece函數式編程概念
2、 MapRece框架結構
3、MapRece運行原理
4、Shuffle階段和Sort階段
5、任務的執行與作業調度器
6、自定義Hadoop調度器
7、 非同步編程模型
8、YARN架構及其工作流程
MapRece編程
1、WordCount案例分析
2、輸入格式與輸出格式
3、壓縮格式與MapRece優化
4、輔助類與Streaming介面
5、MapRece二次排序
6、MapRece中的Join演算法
7、從MySQL讀寫數據
8、Hadoop系統調優
Hive數據倉庫工具
1、Hive工作原理、類型及特點
2、Hive架構及其文件格式
3、Hive操作及Hive復合類型
4、Hive的JOIN詳解
5、Hive優化策略
6、Hive內置操作符與函數
7、Hive用戶自定義函數介面
8、Hive的許可權控制
Hive深入解讀
1 、安裝部署Sqoop
2、Sqoop數據遷移
3、Sqoop使用案例
4、深入了解資料庫導入
5、導出與事務
6、導出與SequenceFile
7、Azkaban執行工作流
Sqoop與Oozie
1 、安裝部署Sqoop
2、Sqoop數據遷移
3、Sqoop使用案例
4、深入了解資料庫導入
5、導出與事務
6、導出與SequenceFile
7、Azkaban執行工作流
Zookeeper詳解
1、Zookeeper簡介
2、Zookeeper的下載和部署
3、Zookeeper的配置與運行
4、Zookeeper的本地模式實例
5、Zookeeper的數據模型
6、Zookeeper命令行操作範例
7、storm在Zookeeper目錄結構
NoSQL、HBase
1、HBase的特點
2、HBase訪問介面
3、HBase存儲結構與格式
4、HBase設計
5、關鍵演算法和流程
6、HBase安裝
7、HBase的SHELL操作
8、HBase集群搭建
第七階段:Spark生態系統
Spark
1.什麼是Spark
2.Spark大數據處理框架
3.Spark的特點與應用場景
4.Spark SQL原理和實踐
5.Spark Streaming原理和實踐
6.GraphX SparkR入門
7.Spark的監控和調優
Spark部署和運行
1.WordCount准備開發環境
2.MapRece編程介面體系結構
3.MapRece通信協議
4.導入Hadoop的JAR文件
5.MapRece代碼的實現
6.打包、部署和運行
7.打包成JAR文件
Spark程序開發
1、啟動Spark Shell
2、載入text文件
3、RDD操作及其應用
4、RDD緩存
5、構建Eclipse開發環境
6、構建IntelliJ IDEA開發環境
7、創建SparkContext對象
8、編寫編譯並提交應用程序
Spark編程模型
1、RDD特徵與依賴
2、集合(數組)創建RDD
3、存儲創建RDD
4、RDD轉換 執行 控制操作
5、廣播變數
6、累加器
作業執行解析
1、Spark組件
2、RDD視圖與DAG圖
3、基於Standalone模式的Spark架構
4、基於YARN模式的Spark架構
5、作業事件流和調度分析
6、構建應用程序運行時環境
7、應用程序轉換成DAG
Spark SQL與DataFrame
1、Spark SQL架構特性
2、DataFrame和RDD的區別
3、創建操作DataFrame
4、RDD轉化為DataFrame
5、載入保存操作與Hive表
6、Parquet文件JSON數據集
7、分布式的SQL Engine
8、性能調優 數據類型
深入Spark Streaming
1、Spark Streaming工作原理
2、DStream編程模型
3、Input DStream
4、DStream轉換 狀態 輸出
5、優化運行時間及內存使用
6、文件輸入源
7、基於Receiver的輸入源
8、輸出操作
Spark MLlib與機器學習
1、機器學習分類級演算法
2、Spark MLlib庫
3、MLlib數據類型
4、MLlib的演算法庫與實例
5、ML庫主要概念
6、演算法庫與實例
GraphX與SparkR
1、Spark GraphX架構
2、GraphX編程與常用圖演算法
3、GraphX應用場景
4、SparkR的工作原理
5、R語言與其他語言的通信
6、SparkR的運行與應用
7、R的DataFrame操作方法
8、SparkR的DataFrame
Scala編程開發
1、Scala語法基礎
2、idea工具安裝
3、maven工具配置
4、條件結構、循環、高級for循環
5、數組、映射、元組
6、類、樣例類、對象、伴生對象
7、高階函數與函數式編程
Scala進階
1、 柯里化、閉包
2、模式匹配、偏函數
3、類型參數
4、協變與逆變
5、隱式轉換、隱式參數、隱式值
6、Actor機制
7、高級項目案例
Python編程
1、Python編程介紹
2、Python的基本語法
3、Python開發環境搭建
4、Pyhton開發Spark應用程序
第八階段:Storm生態系統
storm簡介與基本知識
1、storm的誕生誕生與成長
2、storm的優勢與應用
3、storm基本知識概念和配置
4、序列化與容錯機制
5、可靠性機制—保證消息處理
6、storm開發環境與生產環境
7、storm拓撲的並行度
8、storm命令行客戶端
Storm拓撲與組件詳解
1、流分組和拓撲運行
2、拓撲的常見模式
3、本地模式與stormsub的對比
4、 使用非jvm語言操作storm
5、hook、組件基本介面
6、基本抽象類
7、事務介面
8、組件之間的相互關系
spout詳解 與bolt詳解
1、spout獲取數據的方式
2、常用的spout
3、學習編寫spout類
4、bolt概述
5、可靠的與不可靠的bolt
6、復合流與復合anchoring
7、 使用其他語言定義bolt
8、學習編寫bolt類
storm安裝與集群搭建
1、storm集群安裝步驟與准備
2、本地模式storm配置命令
3、配置hosts文件、安裝jdk
4、zookeeper集群的搭建
5、部署節點
6、storm集群的搭建
7、zookeeper應用案例
8、Hadoop高可用集群搭建
Kafka
1、Kafka介紹和安裝
2、整合Flume
3、Kafka API
4、Kafka底層實現原理
5、Kafka的消息處理機制
6、數據傳輸的事務定義
7、Kafka的存儲策略
Flume
1、Flume介紹和安裝
2、Flume Source講解
3、Flume Channel講解
4、Flume Sink講解
5、flume部署種類、流配置
6、單一代理、多代理說明
7、flume selector相關配置
Redis
1、Redis介紹和安裝、配置
2、Redis數據類型
3、Redis鍵、字元串、哈希
4、Redis列表與集合
5、Redis事務和腳本
6、Redis數據備份與恢復
7、Redis的SHELL操作
H. 大數據分析應該掌握哪些基礎知識
Java基礎語法
· 分支結構if/switch
· 循環結構for/while/do while
· 方法聲明和調用
· 方法重載
· 數組的使用
· 命令行參數、可變參數
IDEA
· IDEA常用設置、常用快捷鍵
· 自定義模板
· 關聯Tomcat
· Web項目案例實操
面向對象編程
· 封裝、繼承、多態、構造器、包
· 異常處理機制
· 抽象類、介面、內部類
· 常有基礎API、集合List/Set/Map
· 泛型、線程的創建和啟動
· 深入集合源碼分析、常見數據結構解析
· 線程的安全、同步和通信、IO流體系
· 反射、類的載入機制、網路編程
Java8/9/10/11新特性
· Lambda表達式、方法引用
· 構造器引用、StreamAPI
· jShell(JShell)命令
· 介面的私有方法、Optional加強
· 局部變數的類型推斷
· 更簡化的編譯運行程序等
MySQL
· DML語言、DDL語言、DCL語言
· 分組查詢、Join查詢、子查詢、Union查詢、函數
· 流程式控制制語句、事務的特點、事務的隔離級別等
JDBC
· 使用JDBC完成資料庫增刪改查操作
· 批處理的操作
· 資料庫連接池的原理及應用
· 常見資料庫連接池C3P0、DBCP、Druid等
Maven
· Maven環境搭建
· 本地倉庫&中央倉庫
· 創建Web工程
· 自動部署
· 持續繼承
· 持續部署
Linux
· VI/VIM編輯器
· 系統管理操作&遠程登錄
· 常用命令
· 軟體包管理&企業真題
Shell編程
· 自定義變數與特殊變數
· 運算符
· 條件判斷
· 流程式控制制
· 系統函數&自定義函數
· 常用工具命令
· 面試真題
Hadoop
· Hadoop生態介紹
· Hadoop運行模式
· 源碼編譯
· HDFS文件系統底層詳解
· DN&NN工作機制
· HDFS的API操作
· MapRece框架原理
· 數據壓縮
· Yarn工作機制
· MapRece案例詳解
· Hadoop參數調優
· HDFS存儲多目錄
· 多磁碟數據均衡
· LZO壓縮
· Hadoop基準測試
Zookeeper
· Zookeeper數據結果
· 內部原理
· 選舉機制
· Stat結構體
· 監聽器
· 分布式安裝部署
· API操作
· 實戰案例
· 面試真題
· 啟動停止腳本
HA+新特性
· HDFS-HA集群配置
Hive
· Hive架構原理
· 安裝部署
· 遠程連接
· 常見命令及基本數據類型
· DML數據操作
· 查詢語句
· Join&排序
· 分桶&函數
· 壓縮&存儲
· 企業級調優
· 實戰案例
· 面試真題
Flume
· Flume架構
· Agent內部原理
· 事務
· 安裝部署
· 實戰案例
· 自定義Source
· 自定義Sink
· Ganglia監控
Kafka
· 消息隊列
· Kafka架構
· 集群部署
· 命令行操作
· 工作流程分析
· 分區分配策略
· 數據寫入流程
· 存儲策略
· 高階API
· 低級API
· 攔截器
· 監控
· 高可靠性存儲
· 數據可靠性和持久性保證
· ISR機制
· Kafka壓測
· 機器數量計算
· 分區數計算
· 啟動停止腳本
DataX
· 安裝
· 原理
· 數據一致性
· 空值處理
· LZO壓縮處理
Scala
· Scala基礎入門
· 函數式編程
· 數據結構
· 面向對象編程
· 模式匹配
· 高階函數
· 特質
· 註解&類型參數
· 隱式轉換
· 高級類型
· 案例實操
Spark Core
· 安裝部署
· RDD概述
· 編程模型
· 持久化&檢查點機制
· DAG
· 運算元詳解
· RDD編程進階
· 累加器&廣播變數
Spark SQL
· SparkSQL
· DataFrame
· DataSet
· 自定義UDF&UDAF函數
Spark Streaming
· SparkStreaming
· 背壓機制原理
· Receiver和Direct模式原理
· Window原理及案例實操
· 7x24 不間斷運行&性能考量
Spark內核&優化
· 內核源碼詳解
· 優化詳解
Hbase
· Hbase原理及架構
· 數據讀寫流程
· API使用
· 與Hive和Sqoop集成
· 企業級調優
Presto
· Presto的安裝部署
· 使用Presto執行數倉項目的即席查詢模塊
Ranger2.0
· 許可權管理工具Ranger的安裝和使用
Azkaban3.0
· 任務調度工具Azkaban3.0的安裝部署
· 使用Azkaban進行項目任務調度,實現電話郵件報警
Kylin3.0
· Kylin的安裝部署
· Kylin核心思想
· 使用Kylin對接數據源構建模型
Atlas2.0
· 元數據管理工具Atlas的安裝部署
Zabbix
· 集群監控工具Zabbix的安裝部署
DolphinScheler
· 任務調度工具DolphinScheler的安裝部署
· 實現數倉項目任務的自動化調度、配置郵件報警
Superset
· 使用SuperSet對數倉項目的計算結果進行可視化展示
Echarts
· 使用Echarts對數倉項目的計算結果進行可視化展示
Redis
· Redis安裝部署
· 五大數據類型
· 總體配置
· 持久化
· 事務
· 發布訂閱
· 主從復制
Canal
· 使用Canal實時監控MySQL數據變化採集至實時項目
Flink
· 運行時架構
· 數據源Source
· Window API
· Water Mark
· 狀態編程
· CEP復雜事件處理
Flink SQL
· Flink SQL和Table API詳細解讀
Flink 內核
· Flink內核源碼講解
· 經典面試題講解
Git&GitHub
· 安裝配置
· 本地庫搭建
· 基本操作
· 工作流
· 集中式
ClickHouse
· ClickHouse的安裝部署
· 讀寫機制
· 數據類型
· 執行引擎
DataV
· 使用DataV對實時項目需求計算結果進行可視化展示
sugar
· 結合Springboot對接網路sugar實現數據可視化大屏展示
Maxwell
· 使用Maxwell實時監控MySQL數據變化採集至實時項目
ElasticSearch
· ElasticSearch索引基本操作、案例實操
Kibana
· 通過Kibana配置可視化分析
Springboot
· 利用Springboot開發可視化介面程序
I. 求壓縮文件格式大全,聽說有40多種。
這是目前常見的所有壓縮格式了。
* .0 - Hacha Split存檔
* .000 - DoubleSpace壓縮檔
* .001 - 7-Zip壓縮Split檔
* .7z - 7-Zip壓縮檔
* .ace -WinAce壓縮檔
* .ain - AIN壓縮存檔
* .alz - ALZip存檔
* .apz - Autoplay Media Studio Exported Project
* .ar - Unix Static Library
* .arc - FreeArc壓縮存檔
* .ari - ARI壓縮存檔
* .arj - ARJ壓縮存檔
* .axx - AxCrypt加密檔
* .bh - BlakHole存檔
* .bhx - BinHex編碼檔
* .boo - Booasm壓縮存檔
* .bz - Bzip壓縮檔
* .bza -
* .bz2 - Bzip2壓縮檔
* .bzip2 - Bzip2壓縮存檔
* .c00 -WinAceSplit存檔
* .c01 -WinAceSplit存檔分卷
* .c02 -WinAceSplit存檔分卷
* .cab -
* .car - CAR存檔
* .cbr - Comic Book RAR存檔
* .cbz - Comic Book ZIP存檔
* .cp9 - ChoicePoint Encrypted檔
* .cpgz - 壓縮CPIO存檔
* .cpt - Compact Pro存檔
* .dar - DAR Disk存檔
* .dd - DiskDouber存檔
* .deb - Debian軟體包
* .dgc - DGCA存檔
* .dist - Mac OS X Distribution Script
* .ecs - Sony Ericsson Phone備份檔
* .efw - Renamed Zip or Executable檔
* .f - Freeze壓縮檔
* .fdp - MySafe加密數據
* .gca - GCA存檔
* .gz - Gnu Zipped檔
* .gzi - Unix Gzip檔
* .gzip - Gnu Zipped檔
* .ha - HA壓縮存檔
* .hbc - HyperBac壓縮存檔
* .hbc2 - HyperBac壓縮存檔
* .hbe - HyperBac壓縮加密存檔
* .hki - WinHKI存檔
* .hki1 - WinHKI HKI1存檔
* .hki2 - WinHKI HKI2存檔
* .hki3 - WinHKI HKI3存檔
* .hpk - HPack壓縮存檔
* .hyp- HYPER壓縮存檔
* .ice - ICE存檔
* .imp - Winimp壓縮存檔
* .ipg - iPod游戲檔
* .ipk - Itsy包
* .ish - ISH壓縮存檔
* .j - JAR存檔
* .jar - JAR存檔
* .jgz - Gzipped Javascript檔
* .jic - Java Icon檔
* .kgb - KGB存檔
*.kz -快壓存檔
* .lbr - LU Library存檔
* .lha - LHARC壓縮存檔
* .lnx - Commodore 64 Lynx存檔
* .lqr - SQ壓縮LBR存檔
* .lzh - LZH壓縮檔
* .lzm - Slax Mole
* .lzma - LZMA壓縮檔
* .lzo - LZO壓縮檔
* .lzx - Amiga LZX壓縮檔
* .md - MDCD壓縮存檔
* .mint - Linux Mint安裝程序檔
* .mou - Winmount壓縮檔
* .mpkg - Meta包
* .mzp - MAXScript Zip包
* .nz - nanozip壓縮檔
* .p7m - Digitally Encrypted Message
* .package - Linux Autopackage檔
* .pae - PowerArchiver加密存檔
* .pak- PAK (Packed)檔
* .paq6 - PAQ6數據存檔
* .paq7 - PAQ7數據存檔
* .paq8 - PAQ8數據存檔
* .par - Parchive Index檔
* .par2 - Parchive 2 Index檔
* .pbi - PC BSD安裝程序包
* .pcv - Mozilla Profile備份
* .pea - PEA存檔
* .pf - Private檔
* .pim - PIM存檔
* .pit - PackIt壓縮存檔
* .piz - Zipped檔
* .pkg - Mac OS X安裝程序包
* .pup - PlayStation 3 Update檔
* .pup - Puppy Linux DotPup安裝程序包
* .puz - Packed Publisher檔
* .pwa - Password Agent檔
* .qda - Quadruple D存檔
* .r00 - WinRAR壓縮存檔
* .r01 - WinRAR Split存檔分卷1
* .r02 - WinRAR Split存檔分卷2
* .r03 - WinRAR Split存檔分卷3
* .rar - WinRAR壓縮存檔
* .rk - WinRK存檔
* .rnc - RNC ProPack存檔
* .rpm - Red Hat Package Manager檔
* .rte - RTE編碼檔
* .rz - Rzip壓縮檔
* .rzs - Red Zion Security檔
* .s00 - ZipSplitter分卷1存檔
* .s01 - ZipSplitter分卷2存檔
* .s02 - ZipSplitter分卷3存檔
* .s7z - Mac OS X 7-Zip檔
* .sar - Service存檔
* .sdn - Shareware Distributors Network檔
* .sea - Self-Extracting存檔
* .sfs- SquashFS存檔
* .sfx - Windows自解壓存檔
* .sh - Unix Shell存檔
* .shar - Unix Shar存檔
* .shk - ShrinkIt存檔
* .shr - Unix Shell存檔
* .sit - Stuffit存檔
* .sitx - Stuffit X存檔
* .spt - TM File Packer壓縮存檔
* .sqx - SQX存檔
* .sqz - Squeezed Video檔
* .tar - Consolidated Unix檔
* .tbz2 - Tar BZip 2壓縮檔
* .tgz - Gzipped Tar檔
* .tlz - Tar LZMA壓縮檔
* .uc2 - UltraCompressor 2存檔
* .uha -UHarc壓縮存檔
* .uue - UUEncoded檔
* .vsi- Visual Studio Content安裝程序檔
* .wad - Compressed游戲數據
* .war - Java Web存檔
* .wot - Web Of Trust檔
* .xef -WinAce加密檔
* .xez - eManager Template包
* .xpi - Mozilla安裝程序包
* .xx - XXEncoded檔
* .xxe - XXEncoded檔
* .y - Amiga Yabba壓縮檔
* .yz - YAC壓縮檔
* .z - Unix壓縮檔
* .zap - FileWrangler存檔
* .zfsendtotarget -壓縮檔夾
* .zip - Zipped檔
* .zipx- Winzip壓縮檔
* .zix - WinZix壓縮檔
* .zoo - Zoo壓縮檔
* .zz - Zzip壓縮存檔
*.exe - 自解壓格式
J. 如何查看hadoop maprece 性能
1) 優化map,rece任務運行的數量
症狀:
每個 map 或 rece 任務都在30-40秒內結束。一個大job沒有使用上所有集群中的可用槽位。在大部分mapper和recer都訂好運行計劃後,1到2個仍在pending狀態直到最後才單獨運行。 診斷:優化map和rece的任務是非常重要但是經常被忽視,這里介紹幾個我常用的相關設置方法:
如果每個任務只執行30-40秒就結束,請減少總的task數量。Task的基本設置和計劃本身會消耗幾秒鍾的時間。所以如果Task執行非常快的話,時間就都浪費在准備Task上了。也可以開啟JVM的reuse功能來減少建立task的基本開銷。如果job要處理超過1TB的數據,可以考慮增加輸入數據的塊Block的大小從256MB到512MB。這樣也會減小需要運行的Task數。可以通過如下命令改變數據塊大小:hadoop distcp -Ddfs.block.size=$[256*1024*1024] /path/to/inputdata /path/to/inputdata-with-largeblocks.執行完該命令就可以清除原來的文件了。在保證每個任務執行都超過30-40秒後,可以增加mapper task為mapper slot(可以執行mapper 機器)的整數倍,如果你有100個可以運行Map任務的節點,盡量不要運行101個Map Task,第101個Map task 會在第一批100個Map任務執行完之後才執行,這點主要針對的是小型集群和小型任務。
不要計劃執行太多的Rece任務,對於大多數任務,我們建議Rece任務數要等於或小於集群中可運行Rece任務的節點數。
性能測試:
我使用一個參數-Dmapred.max.split.size=$[16*1024*1024] 來展示設置了過多任務的wordcount程序。這樣會產生2640個而不是默認的360個任務來執行該程序。當以這種配置運行時單個的任務平均只用9秒,在JobTracker的監控頁面上可以看到正在map任務數在0到24之間波動,整個Job花了17分52秒,是原來配置的2倍。
2) 在集群上使用 LZO 壓縮插件
症狀:
*應用於中間數據LZO壓縮始終是個好方法。
*MapRece 任務輸出文件尺寸很大。
*在任務運行時Slave節點上top和iostat中顯示高iowait。
診斷:
幾乎任何產生大量map輸出的MapRece任務都能從LZO壓縮演算法受益。雖然LZO增加了一些CPU的負載,但是shuffle階段減少的大量磁碟IO操作會把時間完全節省回來。
當job要處理大量數據時,LZO壓縮也可以增加輸出方面的的性能。在默認的3份復制配置下,每1GB壓縮省下的空間都相當於節省了3GB的IO寫操作。
要開啟LZO壓縮,請見另一篇文章,
記得要把mapred.compress.map.output設為true。
性能對比:
禁用LZO只在測試中輕微延長了運行時間。但是文件寫出量計數FILE_BYTESwww.hbbz08.com_WRITTEN從3.5G增長到9.2G,顯示出62%的IO優化效果,在一個job獨自運行的環境下,IO並不是瓶頸,所以時間縮短並不明顯。當在高任務並發的集群上運行時,60%的IO減少會帶來明顯的速度提升。
3) 正確配置Hadoop集群
症狀:
*當所有的MapRece任務欄位都在運行任務時,用top命令觀察到slave節點仍然相對的空閑。
*用top觀察到內核進程RAID(mdX_raid*)或pdflush佔用大量CPU
*Linux平均負載經常高於系統CPU數x2
*執行任務時,Linux平均負載低於系統CPU數
*節點上超過幾MB的SWAP使用量
診斷: