筆者最近在測試Spark的內存模型乾胶,測到ExecutionMemory的使用時怜跑,老是沒發(fā)現(xiàn)分配任何ExecutionMemory博敬。懷疑由于是在同一臺主機上開啟的多個Worker instance導致的盖奈,于是在虛擬機上部署了一個Spark恶守。
但是埋嵌,部署過去以后破加,啟動Worker時,老是不成功雹嗦。telnet host port
范舀,發(fā)現(xiàn)Unable to connect to remote host: Connection refused。
背景
本機主機名為alstonwilliams
了罪,然后alstonwilliams
會被解析成localhost
锭环。
spark-env.sh中,僅僅配置了SPARK_MASTER_WEBUI_PORT
以及SPARK_WORKER_WEBUI_PORT
解決過程
查看Master日志泊藕,發(fā)現(xiàn)它提示的Master URL是spark://alstonwilliams:7077
辅辩。然后telnet localhost 7077
,沒任何問題。
而telnet host_ip 7077
玫锋,則會提示Unable to connect to remote host: Connection refused蛾茉。
于是,修改spark-env.conf
景醇,添加SPARK_MASTER_HOST=host_ip
臀稚,然后Master的URL是spark://host_ip:7077
,現(xiàn)在再啟動Worker就能連上Master了三痰。
原因
由于開始master是localhost吧寺,所以7077這個端口也只能被localhost可見。通過其它的網(wǎng)絡接口地址是不可見的散劫。