笔者最近在测试Spark的内存模型,测到ExecutionMemory的使用时,老是没发现分配任何ExecutionMemory?;骋捎捎谑窃谕惶ㄖ骰峡舻亩喔鯳orker instance导致的,于是在虚拟机上部署了一个Spark。
但是,部署过去以后,启动Worker时,老是不成功。telnet host port
,发现Unable to connect to remote host: Connection refused。
背景
本机主机名为alstonwilliams
,然后alstonwilliams
会被解析成localhost
。
spark-env.sh中,仅仅配置了SPARK_MASTER_WEBUI_PORT
以及SPARK_WORKER_WEBUI_PORT
解决过程
查看Master日志,发现它提示的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
,现在再启动Worker就能连上Master了。
原因
由于开始master是localhost,所以7077这个端口也只能被localhost可见。通过其它的网络接口地址是不可见的。