pre*_*eze 5 java tomcat apache-spark
当Apache Spark以独立群集模式运行时,它使用许多端口用于(以及其他)驱动程序和执行程序/工作程序之间的不同类型的网络通信.
在Spark发行版1.1.0中,他们添加了许多属性以允许配置使用的端口,并为此开发了指南:http://spark.apache.org/docs/latest/security.html#configuring-ports-for -network-security但似乎只能控制服务器端口,即正在监听的服务器端口.
但是,我没有找到控制客户端端口的方式,火花执行器/工作人员将打开以连接到驱动程序.我的驱动程序在tomcat中运行,我必须在我的catalina.policy中非常具体,只允许特定的IP地址/端口.
那么,有没有一种方法可以控制Spark使用的所有端口来配置运行驱动程序的tomcat的catalina.policy中的套接字权限,以便它能够与执行者/工作者通信?
编辑 我在tomcat端得到的错误是:
2014-09-19 16:55:42,437 [New I/O server boss #6] WARN T:[] V:[]o.j.n.c.s.nio.AbstractNioSelector - Failed to accept a connection.
java.security.AccessControlException: access denied ("java.net.SocketPermission" "<worker IP address>:44904" "accept,resolve")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372) ~[na:1.7.0_67]
at java.security.AccessController.checkPermission(AccessController.java:559) ~[na:1.7.0_67]
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) ~[na:1.7.0_67]
at java.lang.SecurityManager.checkAccept(SecurityManager.java:1170) ~[na:1.7.0_67]
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:261) ~[na:1.7.0_67]
at org.jboss.netty.channel.socket.nio.NioServerBoss.process(NioServerBoss.java:100) ~[netty-3.6.6.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312) ~[netty-3.6.6.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioServerBoss.run(NioServerBoss.java:42) ~[netty-3.6.6.Final.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_67]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_67]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]
Run Code Online (Sandbox Code Playgroud)
客户端端口通常是在运行时动态确定的。
服务器端口是初始客户端请求连接到的端口,在处理该初始请求时,连接将“完成”,这(除其他外)在请求计算机上打开一个“客户端”端口以获取回复信息。通常,此客户端端口嵌入在初始请求中,并从客户端操作系统(或至少客户端网络堆栈的 TCP 层)中配置的范围中提取。
如果可以将客户端配置为仅提供一个端口,则可能会引入问题,因为当您运行客户端程序的两个实例时,后续实例将无法从服务器端口打开其输入,并且第一个客户端将得到对两个客户端请求的响应。
当您看到服务器无法打开客户端(响应)端口时,您可能需要检查(按此顺序)
您可能会遇到各种网络问题,但也可能是防火墙问题(或过于热心的病毒扫描程序/防火墙解决方案)。
归档时间: |
|
查看次数: |
2894 次 |
最近记录: |