hadoop学习之旅1
大數據介紹
大數據本質也是數據,但是又有了新的特征,包括數據來源廣、數據格式多樣化(結構化數據、非結構化數據、Excel文件、文本文件等)、數據量大(最少也是TB級別的、甚至可能是PB級別)、數據增長速度快等。
針對以上主要的4個特征我們需要考慮以下問題:
-
數據來源廣,該如何采集匯總?,對應出現了Sqoop,Cammel,Datax等工具。
-
數據采集之后,該如何存儲?,對應出現了GFS,HDFS,TFS等分布式文件存儲系統。
-
由于數據增長速度快,數據存儲就必須可以水平擴展。
-
數據存儲之后,該如何通過運算快速轉化成一致的格式,該如何快速運算出自己想要的結果?
對應的MapReduce這樣的分布式運算框架解決了這個問題;但是寫MapReduce需要Java代碼量很大,所以出現了Hive,Pig等將SQL轉化成MapReduce的解析引擎;
普通的MapReduce處理數據只能一批一批地處理,時間延遲太長,為了實現每輸入一條數據就能得到結果,于是出現了Storm/JStorm這樣的低時延的流式計算框架;
但是如果同時需要批處理和流處理,按照如上就得搭兩個集群,Hadoop集群(包括HDFS+MapReduce+Yarn)和Storm集群,不易于管理,所以出現了Spark這樣的一站式的計算框架,既可以進行批處理,又可以進行流處理(實質上是微批處理)。
-
而后Lambda架構,Kappa架構的出現,又提供了一種業務處理的通用架構。
-
為了提高工作效率,加快運速度,出現了一些輔助工具:
- Ozzie,azkaban:定時任務調度的工具。
- Hue,Zepplin:圖形化任務執行管理,結果查看工具。
- Scala語言:編寫Spark程序的最佳語言,當然也可以選擇用Python。
- Python語言:編寫一些腳本時會用到。
- Allluxio,Kylin等:通過對存儲的數據進行預處理,加快運算速度的工具。
大數據方向的工作目前主要分為三個主要方向:
- 大數據工程師
- 數據分析師
- 大數據科學家
- 其他(數據挖掘等)
技能要求
?
必須掌握的技能11條
- Java高級(虛擬機、并發)
- Linux 基本操作
- Hadoop(HDFS+MapReduce+Yarn )
- HBase(JavaAPI操作+Phoenix )
- Hive(Hql基本操作和原理理解)
- Kafka
- Storm/JStorm
- Scala
- Python
- Spark (Core+sparksql+Spark streaming )
- 輔助小工具(Sqoop/Flume/Oozie/Hue等)
高階技能6條
- 機器學習算法以及mahout庫加MLlib
- R語言
- Lambda 架構
- Kappa架構
- Kylin
- Alluxio
?
第一階段(基礎階段)
1)Linux學習(跟鳥哥學就ok了)—–20小時
- Linux操作系統介紹與安裝。
- Linux常用命令。
- Linux常用軟件安裝。
- Linux網絡。
- 防火墻。
- Shell編程等。
官網:https://www.centos.org/download/?
中文社區:http://www.linuxidc.com/Linux/2017-09/146919.htm
2)Java 高級學習(《深入理解Java虛擬機》、《Java高并發實戰》)—30小時
- 掌握多線程。
- 掌握并發包下的隊列。
- 了解JMS。
- 掌握JVM技術。
- 掌握反射和動態代理。
官網:https://www.java.com/zh_CN/?
中文社區:http://www.java-cn.com/index.html
3)Zookeeper學習(可以參照這篇博客進行學習:http://www.cnblogs.com/wuxl360/p/5817471.html)
- Zookeeper分布式協調服務介紹。
- Zookeeper集群的安裝部署。
- Zookeeper數據結構、命令。
- Zookeeper的原理以及選舉機制。
官網:http://zookeeper.apache.org/?
中文社區:http://www.aboutyun.com/forum-149-1.html
第二階段(攻堅階段)
4)Hadoop (《Hadoop 權威指南》)—80小時
-
HDFS
- HDFS的概念和特性。
- HDFS的shell操作。
- HDFS的工作機制。
- HDFS的Java應用開發。
-
MapReduce
- 運行WordCount示例程序。
- 了解MapReduce內部的運行機制。?
- MapReduce程序運行流程解析。
- MapTask并發數的決定機制。
- MapReduce中的combiner組件應用。
- MapReduce中的序列化框架及應用。
- MapReduce中的排序。
- MapReduce中的自定義分區實現。
- MapReduce的shuffle機制。
- MapReduce利用數據壓縮進行優化。
- MapReduce程序與YARN之間的關系。
- MapReduce參數優化。
-
MapReduce的Java應用開發
官網:http://hadoop.apache.org/?
中文文檔:http://hadoop.apache.org/docs/r1.0.4/cn/?
中文社區:http://www.aboutyun.com/forum-143-1.html
5)Hive(《Hive開發指南》)–20小時
-
Hive 基本概念
- Hive 應用場景。
- Hive 與hadoop的關系。
- Hive 與傳統數據庫對比。
- Hive 的數據存儲機制。
-
Hive 基本操作
- Hive 中的DDL操作。
- 在Hive 中如何實現高效的JOIN查詢。
- Hive 的內置函數應用。
- Hive shell的高級使用方式。
- Hive 常用參數配置。
- Hive 自定義函數和Transform的使用技巧。
- Hive UDF/UDAF開發實例。
-
Hive 執行過程分析及優化策略
官網:https://hive.apache.org/?
中文入門文檔:http://www.aboutyun.com/thread-11873-1-1.html?
中文社區:http://www.aboutyun.com/thread-7598-1-1.html
6)HBase(《HBase權威指南》)—20小時
- hbase簡介。
- habse安裝。
- hbase數據模型。
- hbase命令。
- hbase開發。
- hbase原理。
官網:http://hbase.apache.org/?
中文文檔:http://abloz.com/hbase/book.html?
中文社區:http://www.aboutyun.com/forum-142-1.html
7)Scala(《快學Scala》)–20小時
- Scala概述。
- Scala編譯器安裝。
- Scala基礎。
- 數組、映射、元組、集合。
- 類、對象、繼承、特質。
- 模式匹配和樣例類。
- 了解Scala Actor并發編程。
- 理解Akka。
- 理解Scala高階函數。
- 理解Scala隱式轉換。
官網:http://www.scala-lang.org/?
初級中文教程:http://www.runoob.com/scala/scala-tutorial.html
8)Spark (《Spark 權威指南》)—60小時
-
Spark core
- Spark概述。
- Spark集群安裝。
- 執行第一個Spark案例程序(求PI)。
-
RDD
?
- RDD概述。
- 創建RDD。
- RDD編程API(Transformation 和 Action Operations)。
- RDD的依賴關系
- RDD的緩存
- DAG(有向無環圖)
3.Spark SQL and DataFrame/DataSet
- Spark SQL概述。
- DataFrames。
- DataFrame常用操作。
- 編寫Spark SQL查詢程序。
Spark Streaming
4
- park Streaming概述。
- 理解DStream。
- DStream相關操作(Transformations 和 Output Operations)。
5.。Structured Streaming
6。其他(MLlib and GraphX )
官網:http://spark.apache.org?
中文文檔(但是版本有點老):https://www.gitbook.com/book/aiyanbo/spark-programming-guide-zh-cn/details?
中文社區:http://www.aboutyun.com/forum-146-1.html
9)Python (推薦廖雪峰的博客—30小時
10)自己用虛擬機搭建一個集群,把所有工具都裝上,自己開發一個小demo —30小時
可以自己用VMware搭建4臺虛擬機,然后安裝以上軟件,搭建一個小集群(本人親測,I7,64位,16G內存,完全可以運行起來,以下附上我學習時用虛擬機搭建集群的操作文檔)
學習之旅2:https://www.cnblogs.com/javadongx/p/hadoop_storm_spark_hdfs_hive.html
?
轉載于:https://www.cnblogs.com/javadongx/p/hadoop_spark_hdfs_storm.html
總結
以上是生活随笔為你收集整理的hadoop学习之旅1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 缘分啊下一句是什么啊?
- 下一篇: 求一个好听的塑料厂名字