今天安裝了一個高可用的spark叢集,但是啟動之後,每個節點上用jps指令都可以檢視到有Master和Worker程序,但是登入UI界面卻沒有Worker資訊,檢視Worker節點上的日志檔案,發現竟然出錯了,錯誤如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPR90djpmTycmeNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1UjNwUTO1AjMxEzMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
錯誤顯示Worker無法連接配接到Master節點。
找了好長時間,終于發現了問題,出現這個錯誤的原因就是端口的問題。
我們知道,spark叢集上Master節點和Worker節點RPC通信的端口是7077,這裡無法連接配接到Master節點,說明是端口或者Ip的問題。我安裝的叢集是高可用的,設定了兩個Master,是以在conf/spark-env.sh配置檔案中就不能指定Master節點的Ip了,是以這裡肯定是IP和主機的映射關系錯了。
下面是我Master節點中/etc/hosts檔案的内容:
下面是我Worker節點/etc/hosts檔案的内容:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.67.136 L3
這樣一來,當我啟動spark叢集時,Master節點啟動用的位址是192.168.67.134:7077,
由于Worker節點沒有添加映射關系,他會以為Master節點用的位址是127.0.0.1:7077,是以會出現連接配接不上的問題。
找到了問題所在,我把Worker節點上的/etc/hosts檔案的内容也改成了:
然後再啟動spark叢集,打開UI界面後發現Worker節點出現了。
到此及結束了,如果有什麼錯誤的話,歡迎各位大神留言指正。