Spark 2.0(新特性、含真實項目、純Scala語言開發、CDH5.7)

說到Spark,我一定要先說說Hadoop及Java. 

現在我是一個Java開發者,幾年前就開始接觸和使用Hadoop. 最初的一個項目其實是一個後臺並行計算的項目,那時經過選型後,最後決定使用Hadoop,當時是基於幾個原因: 
1. Apache下的項目質量都是很高的,很多項目都廣爲Java開發者使用,到今天來看,這個結論也不爲過,如(Ant, ActiveMQ, Axis2,CXF,Cassandra, Apache commons, HTTP Server,JMeter,Lucene,log4j,Maven, ...) 

2. 有成熟的產品應用(Yahoo 3000臺的集羣) 
3. M/R的概念,簡化了編程模型 

一路用下來,感覺Hadoop的設計思想還是不錯的,但是它對於批處理作業延遲完全是可以接受的,但是對於有一定實時要求的項目,它的性能就很不理想了。最主要的原因有幾個: 
1.它是以job形式進行提交的 
2.它的Job相對來說比較重,包括步驟jar到各個節點, Job進行數據的迭代等,一個最簡單的Job都要秒計 

由於那時對Hadoop的設計不太瞭解,所以也想象着有什麼辦法能夠執行輕量級的M/R,比如有些東西一直在內存中運行,不用spill到磁盤等,但最終也無技可施,後面就一直放置了。 

轉回來說Spark, 我想Hadoop存在的問題也困擾着其它的使用者,所以纔會有Spark的出現吧! 
最開始接觸Spark時,一看到它的開發語言是Scala,心裏就有點兒想法:爲什麼沒用Java開發呢,功能強大,運行速度已有了飛速的提高,已經可以和C/C++的速度抗衡(開發效率那肯定比C++快不知道多少呢, 看到C++的同事大談良好的設計,但還只能支持Windows平臺時,我只能苦笑:無知者無畏啊). 再看看Scala寫的代碼,那都是些什麼啊,語法稀奇古怪的,從來沒見過這些奇怪的語法(回憶一下我學過的語言, 彙編, Basic, DBase/Foxbase/FoxPro, C/C++, Delphi, VB, PB, Java, Javascript, Linux shell, ...,哪個也不象啊). 
我都有幾次要放棄了,最終還是說再看看吧,先找本Scala的書讀讀。我看的是"快讀Scala",慢慢的,我理解了,爲什麼要用Scala, 就看起來就象是Java的升級版嘛。 

快來看Scala的幾個特性,讓你有興趣去學這門新語言: 
1. 它最終也會編譯成Java VM代碼,看起來象不象Java的殼程序?-至少做爲一個Java開發人員,你會鬆一口氣 
2. 它可以使用Java包和類 - 又放心了一點兒,這樣不用擔心你寫的包又得用另外一種語言重寫一遍 

3. 更簡潔的語法和更快的開發效率(這意味着你的手指少受一點兒鍵盤的折磨,, 對於我這個希望進行快速開發的人來說,是利好吧。 

這相信這讓Java開發者心情很舒暢,如果你曾經用過VB,然後再用VB.net的話,你就知道什麼樣的感覺了:沮喪,被騙, ... 

好吧,如果是真正的程序猿的話,那現在開始學Scala吧! 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章