• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

基于Nginx反向代理的SparkUI的访问

php 搞代码 4年前 (2022-01-23) 14次浏览 已收录 0个评论

基于Nginx反向代理的SparkUI的访问

场景和方案

spark集群部署的情况下,只有Master有公网IP,Worker机器没有公网IP,此时要如果要访问Run在Master机器上的SparkUI,并且需要查看Worker机器上的日志时,就会存在不能访问的问题。此时的一个解决方案就是采用 Nginx+SSH Tunnel 端口重定向的方式,将不同机器不同端口的请求全部导向到Master机器的80端口,然后由Nginx做反向代理转发。

步骤分解

  1. 部署Spark集群,将SparkUI在Master上run起来。
  2. 在Master机器上部署Nginx,并修改$NGINX_HOME/conf/nginx.conf文件,添加Work和Master机器的反向代理逻辑,例如:

    <code>worker_processes  1;error_log  logs/error.log;error_log  logs/error.log  notice;error_log  logs/error.log  info;pid        logs/nginx.pid;events {    worker_connections  1024;}http {    include         mime.types;    default_type    pplication/octet-stream;    sendfile        off;    keepalive_timeout  20;    gzip  on;    proxy_intercept_errors  off;    upstream server_spark_master {        server 127.0.0.1:8080;    }    upstream server_jyvhyguguiu-slave-0 {        server 10.110.1.1:8081;    }    upstream server_jyvhyguguiu-slave-1 {        server 10.110.1.2:8081;    }    server {        listen 80;        server_name spark_master;        location / {                proxy_pass http://server_spark_master;        }    }    server {        listen 80;        server_name jyvhyguguiu-slave-0;        location / {                proxy_pass http://server_jyvhyguguiu-slave-0;        }    }    server {        listen 80;        server_name jyvhyguguiu-slave-1;        location / {                proxy_pass http://server_jyvhyguguiu-slave-1;        }    }       }</code>

采用nginx的机器名映射的原理,来做反向代理。

3.将Master机器和Worker机器通过修改hosts文件的方式全部绑定到127.0.0.1.

4.采用SSH支持的端口转发原理,将SparkUI用到的端口全部转发到远程的监听Nginx服务的80端口。例如SparkUI2本文来源gaodaima#com搞(代@码$网6

搞gaodaima代码

会用到Worker机器的8081端口,Master机器的8080端口和Master机器的80端口,那么就将这3个本地端口(因为Master和Worker机器全部绑定到了lo网卡)全部转发到远程的80端口。命令如下:

<code>ssh -N -f -L 8081:127.0.0.1:80 username@ipssh -N -f -L 8080:127.0.0.1:80 username@ipssh -N -f -L 80:127.0.0.1:80 username@ip</code>

5.此时访问 127.0.0.1:8080端口即可打开远程机器的SparkUI,并且可以访问任意一台Worker机器的日志了。

PS:其实SSH 端口转发也可以采用Master机器做为代理,将请求转发到Worker机器上,网络通路和Nginx的反向代理一致,但是SSH端口转发只能做到4层也就是传输层的转发,不能像Nginx那样做到7层的转发(能够识别机器名,并根据机器名做转发),所以仅仅通过SSH的端口转发,还不能做到同样的效果。

以上就介绍了基于Nginx反向代理的SparkUI的访问,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:基于Nginx反向代理的SparkUI的访问

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址