Hadoop Spark集羣搭建,以及IDEA遠程調試
環境:Hadoop-2.7.2 jdk-1.8 scala-2-11-12 spark-2.1.0
spark2.0.0開始,只支持Java8版本了,並且Java8版本最好相對高一點,並且從spark2.1.0開始只支持scala2.11了
scala下載地址(選擇2.11.X以上版本):http://www.scala-lang.org/download/
spark下載地址:http://spark.apache.org/downloads.html
由於我們的hadoop是2.7.2 版本,這裏選擇下載對應的spark版本。
首先,將scala和spark的tar包上傳到我們的三臺虛擬機上,並進行解壓配置。
三臺虛擬機IP:
192.168.194.131 Hadoop.Master
192.168.194.129 Hadoop.Slave1
192.168.194.130 Hadoop.Slave2
我們先來配置scala,在配置scala之前我們必須保證服務器上有Java8之後,配置scala的環境變量,編輯/etc/profile:
保存然後使其生效之後,執行scala -version觀察輸出:
如果輸出對應版本號則說明配置成功。
接下來我們配置spark,首先就是環境變量:
然後我們進入spark目錄下的conf目錄,去配置兩個配置文件spark-env.sh slaves
首先我們編輯spark-env.sh,將spark-env.sh.template文件重命名
然後我們編輯slaves,將slaves.template文件重命名,並且將hosts文件中我們的兩個hadoop從節點的host也來充當我們的spark的從節點
然後我們進入spark目錄下的sbin目錄中執行start-all.sh,用jps命令觀察各個節點的啓動效果。
Master:
Slave:
遇到的坑:
1.stop-all.sh執行關閉spark集羣的時候,worker節點沒有正常關閉(原因看第3點)
2.spark UI在單機節點的時候訪問地址爲 IP:4040 ,集羣狀態下 的訪問地址爲IP:8080。
3.由於我的hadoop的環境變量中,將hadoop目錄下的sbin目錄配置到了PATH中,導致我在spark目錄下的sbin目錄下執行start-all.sh/stop-all.sh時,總是執行hadoop的start-all.sh/stop-all.sh,想執行spark的start-all.sh只能通過絕對路徑執行