當前位置:編程學習大全網 - 源碼下載 - 大數據工程師需要掌握哪些技能?

大數據工程師需要掌握哪些技能?

對於大數據工程師而言,您至少要掌握以下技能:

壹門JVM系語言:當前大數據生態JVM系語言類的比重極大,某種程度上說是壟斷也不為過。這裏我推薦大家學習Java或Scala,至於Clojure這樣的語言上手不易,其實並不推薦大家使用。另外,如今是“母以子貴”的年代,某個大數據框架會帶火它的編程語言的流行,比如Docker之於Go、Kafka之於Scala。因此筆者這裏建議您至少要精通壹門JVM系的語言。值得壹提的,壹定要弄懂這門語言的多線程模型和內存模型,很多大數據框架的處理模式其實在語言層面和多線程處理模型是類似的,只是大數據框架把它們引申到了多機分布式這個層面。

計算處理框架:嚴格來說,這分為離線批處理和流式處理。流式處理是未來的趨勢,建議大家壹定要去學習;而離線批處理其實已經快過時了,它的分批處理思想無法處理無窮數據集,因此其適用範圍日益縮小。事實上,Google已經在公司內部正式廢棄了以MapReduce為代表的離線處理。因此如果要學習大數據工程,掌握壹門實時流式處理框架是必須的。當下主流的框架包括:Apache Samza, Apache Storm, Apache Spark Streaming以及最近壹年風頭正勁的Apache Flink。當然Apache Kafka也推出了它自己的流式處理框架:Kafka Streams

分布式存儲框架:雖說MapReduce有些過時了,但Hadoop的另壹個基石HDFS依然堅挺,並且是開源社區最受歡迎的分布式存儲,絕對您花時間去學習。如果想深入研究的話,Google的GFS論文也是壹定要讀的([url=]/media/research.google.com/en//archive/gfs-sosp2003.pdf[/url])。當然開源世界中還有很多的分布式存儲,國內阿裏巴巴的OceanBase也是很優秀的壹個。

資源調度框架:Docker可是整整火了最近壹兩年。各個公司都在發力基於Docker的容器解決方案,最有名的開源容器調度框架就是K8S了,但同樣著名的還有Hadoop的YARN和Apache Mesos。後兩者不僅可以調度容器集群,還可以調度非容器集群,非常值得我們學習。

分布式協調框架:有壹些通用的功能在所有主流大數據分布式框架中都需要實現,比如服務發現、領導者選舉、分布式鎖、KV存儲等。這些功能也就催生了分布式協調框架的發展。最古老也是最有名的當屬Apache Zookeeper了,新壹些的包括Consul,etcd等。學習大數據工程,分布式協調框架是不能不了解的, 某種程度上還要深入了解。

KV數據庫:典型的就是memcache和Redis了,特別是Redis簡直是發展神速。其簡潔的API設計和高性能的TPS日益得到廣大用戶的青睞。即使是不學習大數據,學學Redis都是大有裨益的。

列式存儲數據庫:筆者曾經花了很長的時間學習Oracle,但不得不承認當下關系型數據庫已經慢慢地淡出了人們的視野,有太多的方案可以替代rdbms了。人們針對行式存儲不適用於大數據ad-hoc查詢這種弊端開發出了列式存儲,典型的列式存儲數據庫就是開源社區的HBASE。實際上列式存儲的概念也是出自Google的壹篇論文:Google BigTable,有興趣的話大家最好讀壹下:

消息隊列:大數據工程處理中消息隊列作為“削峰填谷”的主力系統是必不可少的,當前該領域內的解決方案有很多,包括ActiveMQ,Kafka等。國內阿裏也開源了RocketMQ。這其中的翹楚當屬Apache Kafka了。Kafka的很多設計思想都特別契合分布流式數據處理的設計理念。這也難怪,Kafka的原作者Jay Kreps可是當今實時流式處理方面的頂級大神。

  • 上一篇:壹個關於自信的小故事
  • 下一篇:鬧鐘的自述(300字作文)
  • copyright 2024編程學習大全網