JAVA 大資料學習路線
阿新 • • 發佈:2019-02-17
Java基礎
- 多執行緒 (多瞭解java.util.conconrrent包的類)
- 集合框架
- IO
- 反射(如何實現根據傳入的Class例項來構造物件、實現兩個類中相同名稱的例項域之間的自動賦值 。。)
- 泛型( 如何使用,如何實現常用類的引數型別)。
- 設計模式(暫時不建議看,看了也是浪費時間。等有一定的程式碼、專案經驗時候,再去研讀。多跟團隊裡面的牛人請教,重在實踐。想要用好,至少得看3遍-分不同時期)
- NIO (相比傳統的IO,效能有很大提升。目前用的比較多的是各種Buffer類)
工具(必備)
- maven(專案構建與依賴管理)
- git (版本控制)
別人造好的輪子
- Guava(Google的java工具類)
好用的開源框架
- joda(java時間處理,已經加到java8中,即java8以後建議用最新的時間類,java8之前最好用的joda)
- common-pool2(抽象的物件池實現)
- dbcp(建立在common-pool2之上的java資料庫連線池實現)
- log4j(抽象的日誌框架,實現層我們用的logback)
- json (fasterxml.jackson 不僅僅可以序列化、反序列化物件。 一些好用的註解,可以解決很棘手的問題)
- 介面要用的技術 (mybatis,spring,springboot等)
大資料相關技術:
- 序列化機制(Msgpack,protobuf,Avro等)
- 訊息佇列 (redis、kafka)
- Hadoop (基礎中的基礎,幾乎整個大資料的生態圈都與之有關)
- hbase (Hadoop資料倉庫,實現列式儲存)
- hive (後臺封裝MapReduce,提供類SQL查詢)
- impala (基於記憶體,提供類SQL查詢。 較快)
- parquet (優化的列式儲存格式)
- Solr/ES (提供全文搜尋)
- spark (效能可觀)