大數據應用開發工程師專業的核心課程是Hadoop框架的學習,那么這個框架就類似于Java應用開發的SSH/SSM框架,都是Apache基金會或者其他Java開源社區團體的能人牛人開發的貢獻給大家使用的一種開源Java框架。我一直在向學生說Java語言是王道就是這個道理,Java的核心代碼是開源的,是經過全球能人牛人共同學習共同研發共同檢驗的,所以說Java是最經得住檢驗的語言,而且任何人都可以學習Java核心技術并且使用核心技術開發出像android一樣的系統和Hadoop一樣的框架。如果把編程的世界比作一棵樹,那么Java是根,SSH和Hadoop這樣的框架都是它開得枝散得葉。
由于大數據應用開發工程師是目前IT培訓界最熱門的專業,大數據技術人才是引領智能革命的弄潮兒,是智能時代最直接的受益者,這么重要的專業我一定要給大家講解的詳細透徹,以Hadoop生態圈為主,介紹目前大數據應用級開發工程師在工作當中所用到的全部技術,建議大家在學習大數據應用開發工程師專業之前,要有一定的Java基本語法和框架的學習經驗。
開源的Hadoop大數據開發平臺
hadoop是一個能夠對大量數據進行分布式處理的軟件框架,hadoop以一種可靠、高效、可伸縮的方式進行數據處理,用戶之所以可以輕松的在hadoop上開發和運行處理海量數據的應用數據,是因為hadoop具有高可靠性、高擴展性、高效性、高容錯性等優點。
hadoop大數據生態系統:
分布式文件系統-HDFS
提起hadoop文件系統,首先想到的是HDFS(Hadoop Distributed File System),HDFS是hadoop主要的文件系統,是Hadoop存儲數據的平臺,建立在網絡上的分布式存儲系統。hadoop還集成了其他文件系統,hadoop的文件系統是一個抽象的概念,HDFS只是其中的一種實現。
分布式計算框架-MapReduce
MapReduce是一種編程模型,是Hadoop處理數據的平臺。用于大規模數據集(大于1TB)的并行運算。概念"Map(映射)"和"Reduce(歸約)",和它們的主要思想,都是從函數式編程語言里借來的,還有從矢量編程語言里借來的特性。它極大地方便了編程人員在不會分布式并行編程的情況下,將自己的程序運行在分布式系統上。
分布式開源數據庫-Hbase
HBase – Hadoop Database,HBase是一個分布式的、面向列的開源數據庫。適合于非結構化數據存儲,保留數據多個時間段版本。Hbase極大的方便擴展了Hadoop對于數據的處理和應用。
大數據開發平臺模塊生態圈
Hive
Hive是基于Hadoop的一個數據倉庫工具,處理結構化SQL查詢功能?梢詫⒔Y構化的數據文件映射為一張數據庫表,并提供簡單的sql查詢功能,可以將sql語句轉換為MapReduce任務進行運行并提交到集群上去執行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,不用使用Java編程,十分適合數據倉庫的統計分析。
學習Hive時,對于Hive QL中的DDL和DML就是必須要掌握的基礎;表的定義、數據導出以及常用的查詢語句的掌握是完成大數據統計分析的基礎。學會針對Hive進行編程:使用Java API開操作Hive、開發Hive UDF函數。掌握好Hive部分高級的特性能大大提升Hive的執行效率。在優化過程中可以很好的借助于執行計劃來進行分析,學習Hive時需要注意Hive性能優化是在生產中的最重要的環節,如何解決數據傾斜是關鍵; 梳理清楚Hive元數據各個表之間的關聯關系也能提升對Hive的把握能力。
Pig
MapReduce之上高級過程編程腳本語言,用于查詢大型半結構化數據集。
Zookeeper協調Hadoop生態圈各個模塊共同工作
從英文含義上來看Hadoop是小象,Hive是蜜蜂,pig是豬,Zookeeper是動物管理員。那么很顯然Zookeeper的作用是分布式應用程序協調服務,為各個模塊提供一致性服務的。
數據導入導出框架Sqoop
Sqoop是一款開源的工具,英文含義是象夫,就是喂養大象的人,主要用于在Hadoop(Hive)與傳統的數據庫(mysql、postgresql...)間進行數據的傳遞,可以將一個關系型數據庫中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關系型數據庫中。
學習目標:
1.了解Sqoop是什么、能做什么及架構 ;
2.能夠進行Sqoop環境部署 ;
3.掌握Sqoop在生產中的使用 ;
4.能夠使用Sqoop進行ETL操作 。
Oozie
Oozie的英文含義是馴象人,非常形象,Oozie的作用是協調Hadoop各個模塊數據處理任務,給它們安排一個工作計劃。
Ambari
Ambari的英文含義可以理解為籬笆,這個模塊開發者的意思是把Hadoop生態圈或者形象的叫做動物園圍起來,負責各個模塊部署安裝,版本配合、升級。
大數據圖形展示框架HUE
HUE是Cloudrea公司開源的,與Hadoop生態系統緊密結合的一個Web UI應用程序,可以通過Hue來查看、管理HDFS上面的文件,通過Hue從界面編寫Hive的SQL語句對Hive進行查詢,并使用圖表直觀的展示查詢結果,可以與Oozie集成,用戶創建和監控工作流程。
學習目標:
1.了解HUE是什么、能做什么及架構 ;
2.能夠進行HUE環境部署 ;
3.掌握HUE在生產中的使用 。
Spark
Spark是目前最流行的大數據處理框架,以簡單、易用、性能卓越著稱。豐富的程序接口和庫文件也使得Spark成為業內數據快速處理和分布式機器學習的必備工具。
學習目標:
1.了解Spark的組件和應用場景 ;
2.能夠部署Spark Standalone模式 ;
3.能夠使用Spark進行交互式開發 ;
4.能夠發布獨立應用程序并使用spark-submit 提交 。
5.掌握Pair RDD的操作 ;
6.掌握Pair RDD如何與一般RDD結合 ;
7.掌握RDD的輸出操作 ;
8.了解RDD的持久化、累加器和廣播變量 。
9.掌握DataFrame的操作 ;
10.掌握不同數據源的加載方法 ;
11.了解UDF的定義方法 。
12.掌握Spark圖形化工具的查看 。
13.了解Spark Streaming的特點 ;
14.掌握流式處理的基本操作 ;
15.理解狀態操作和窗口操作的概念 。
16.能夠根據生產環境特點,組織基于spark sql 的周期任務完成基本日志系統的構建。
17.掌握不同需求下Spark組件的選擇 ;
18.掌握Spark參數調優 ;
19.掌握各組件之間的調用及thrift接口的使用 。
20.了解Spark作為機器學習工具的優勢 ;
21.了解機器學習算法的分類 ;
22.通過K-means算法進行玩家付費行為聚類 。
*擴展技能:
python開發基礎、數據分析與數據挖掘
學習數據挖掘工具Sklearn,熟悉數據挖掘樸素貝葉斯算法和數據挖掘SVM分類算法,并且最終使用Sklearn實現貝葉斯以及SVM算法 。
Storm大數據分布式實時計算
Storm是分布式數據處理的框架,Storm可以方便地在一個計算機集群中編寫與擴展復雜的實時計算,Storm用于實時處理,就好比 Hadoop 用于批處理。如果說MapReduce降低了并行批處理復雜性,Storm是降低了進行實時處理的復雜性。
Scala編程開發
Scala是一種函數式面向對象語言,類似于RUBY和GROOVY語言,它無縫結合了許多前所未有的特性形成一門多范式語言,其中高層并發模型適用于大數據開發。而同時又運行于JAVA虛擬機之上。