hadoop+spark集群的版本關系


剛開始部署分布式計算的時候,常常會遇到這樣的問題;如何搭配不同軟件的版本呢?我們來梳理一下他們的關系。

1首先hadoop的底層開發是基於java開發的,自然是依賴於java的版本。

2另外spark的底層開發是基於scala開發的,而scala是一種范式語言,兩者的共同點是都需要在JVM上運行。范式語言的好處是可以支持java,或者python。不會受到開發語言的過分限制。

3目前hadoop有兩個大版本,hadoop2.x 和 hadoop3.x;關於兩者的區別,可以移步了解下。對於新手自然推薦先使用hadoop2.x;當熟練之后再考慮搭建hadoop3.x提升效率。這里要特別注意的是hadoop2.x都是基於java7開發的,這是最大的前提,hadoop3.x是基於java8開發的。這也是版本之間最大的區別。雖然都是java,但是他們之間的區別還是需要注意的。

 

4選擇好hadoop版本之后,就是選擇相搭配的scala+spark;在spark官網有這樣一句話,非常清楚告訴我們選擇的遵循規律。

總結一下如下表所示,這里我依然推薦新手選擇低版本配置,情況1最佳。這樣遇到問題也好解決。

版本號 scala spark
情況1 2.11 2.x(不包括2.4.2)
情況2 2.12 2.4.2
情況3 2.12 3.0+

綜上所述我們基本上就確定了版本的配置問題。

 

可能還會有人問具體的版本配置沒有限制要求么?我們先看一下大神的版本配置:

java7--Hadoop2.6.4(2016年2月12日)--scala2.11.6(2015年2月26日)--spark2.0.0(2016年7月26日)

java8--Hadoop3.1.1(2019年)--scala2.11.x(2016年2月12日)--spark2.3.2(2016年2月12日)

java8--Hadoop2.9(2019年)--scala未知()--spark2.4.0(2016年2月12日)--Pycharm + Anaconda(Python 3.7版本)

 

由上可見,這個集群配置還是相對非常寬松的。注意好上面提出的點,可以大膽選擇配置。

 

補充1:

       當我配置hadoop2.10.0+scala2.11.6+spark2.4.6的時候,打開spark會出現如下錯誤。可見我們安裝的spark版本過高,導致JVM無法適配。應該將spark改裝低版本的才行。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM