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吧!
現在我是一個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吧!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.