1. 程式人生 > >JAVA 大資料學習路線

JAVA 大資料學習路線

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 (效能可觀)