1 现象描述
部分异常: Service 'sparkDriver' failed after 16 retries.......correct binding address.
云平台发放的虚拟机包含两个IP,包含虚拟机内部实际的网络地址(ifconfig查看到的内网IP:192.168.xx.xx)和对方访问的IP(绑定的外网虚拟IP:11.11.xx.xx),想要在云平台外访问虚拟机需要使用外网IP经过一次网络地址转换,直接使用内部IP是无法访问的。
所以在当任务提交的时候实际使用的是内部IP提交任务到spark集群,当spark集群与客户端交互时,也是访问这个内部IP地址,这显然是不可达的。从而导致任务无法正常执行下去。
2 解决方法
手动在客户端的spark-default.conf文件上加两个配置,即在提交任务时使用内部IP,接收spark集群的信息时,使用外部IP:
--------
spark.driver.host 外部IP // spark.driver.host 11.11.xx.xx
spark.driver.bindAddre