本地访问远程Spark UI界面

1,318 阅读2分钟

在做project的时候,spark是搭建在远程的服务机器的,我们服务的机器直接就是proj6-proj10。运行spark作业的时候想spark作业的运行详情,如何做?

初级方案:

直接搭一个本地到远程的桥(当然首先要本地和服务器网络是通的才能搭成功,网络不通的话可能就需要先连接vpn什么的了)

ssh -L 0.0.0.0:12345:0.0.0.0:8080 -p 2210 username@server_hostname

其中12345是本地的端口号,2210是ssh远程服务器时的端口号,username是你的用户名,8080是Spark的start-master.sh文件设置的SPARK_MASTER_WEBUI_PORT端口号,默认是8080, server_hostname 是远程服务器的域名。链接建立之后,直接localhost:12345就可以看到Spark的UI界面啦,如图所示:

初级方案的缺点:点击查看作业详情的时候是打不开的,还需要再重新建一条连接,并且还需要修改html代码才可以,如下图所示:你需要再搭一个ssh的连接对应远程的4090端口(spark默认是4040,本人改成4090了),即:ssh -L 0.0.0.0:12346:0.0.0.0:4090 -p 2210 usename@server_hostname,而且html的属性值要改成localhost:12346. 其中12346是你本地和远程建立连接的端口。本人觉得很麻烦

终极方案:

1. ssh建立连接本地到远程服务器的连接

ssh -p 2210 -D port1 username@server_hostname 其中port1要替换成你本地电脑想要与远程建立连接的端口号,eg:12345。2210是ssh远程服务器时需要的端口号,有的服务器可能不需要,则可去掉。username换成自己的用户名,server_hostname是远程服务器的域名。

2. 浏览器设置sock代理。SOCK Host填localhost,Port填你设置的port1

参考连接:ma.ttias.be/socks-proxy…

可能有坑的地方:mac版本的电脑设置google代理的时候是全局的,这样会影响到浏览器的正常搜索功能。我建议是用火狐浏览器设置代理,专门火狐浏览器访问

3. 浏览器输入地址就可以访问了: http://ip:port2/   其中ip是远程的地址,port2是你spark的start-master.sh文件设置的SPARK_MASTER_WEBUI_PORT端口号,默认是8080。

这样就大功告成啦~