上一节我们分别以client和cluster模式运行两次application,如果想查看它们的日志,点击对应的application ID:

如果查看logs,会发现对应的URL是私网IP:

此时访问不通。
有很大一部分的Spark设定可以通过环境变量来进行设定。这些环境变量设定在conf/spark-env.sh 脚本文件中。在 Standalone模式下,这个文件可以设定一些和机器相关的信息(比如 hostname)。
需要注意,在刚刚安装的Spark中conf/spark-env.sh文件是不存在的。但是可以通过复制conf/spark-env.sh.template文件来创建。
登录到worker节点,进入conf目录,下面有一个spark-env.sh.template文件:

将其复制为spark-env.sh并进行编辑:

在最后一行加入:
export SPARK_PUBLIC_DNS=ec2-35-89-181-10.us-west-2.compute.amazonaws.com # 替换成worker节点的公网DNS
替换完成后的效果:

重新启动worker上的start-slave.sh(先杀掉已有的进程):

刷新master节点的8080端口,会发现新注册的worker节点此时URL变为公网地址:

打开后会跳转到worker的Web UI:

此时再查看日志就没问题了:
