设为首页 收藏本站
查看: 1106|回复: 0

[经验分享] 【Spark学习】Apache Spark安全机制

[复制链接]

尚未签到

发表于 2017-2-28 07:50:01 | 显示全部楼层 |阅读模式
  Spark版本:1.1.1
  本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接:
  http://www.cnblogs.com/zhangningbo/p/4135808.html
目录

  • Web UI
  • 事件日志
  • 网络安全(配置端口)

  • 仅适用于Standalone模式的端口
  • 适用于所有集群管理器的通用端口
    现在,Spark支持通过共享秘钥进行认证。启用认证功能可以通过参数spark.authenticate来配置。此参数控制spark通信协议是否使用共享秘钥进行认证。这种认证方式基于握手机制,以确保通信双方都有相同的共享秘钥时才能通信。如果共享秘钥不一致,则双方将无法通信。可以通过以下过程来创建共享秘钥:

  • 在spark on YARN部署模式下,配置spark.authenticate为true,就可以自动产生并分发共享秘钥。每个应用程序都使用唯一的共享秘钥。
  • 其他部署方式下,应当在每个节点上都配置参数spark.authenticate.secret。此秘钥将由所有Master、worker及应用程序来使用。
  • 注意:实验性的Netty shuffle路径(spark.shuffle.use.netty)是不安全的,因此,如果启用认证功能就不要使用Netty for shuffle了。
Web UI
        通过设置参数spark.ui.filters来使用javax servlet filters就可以实现安全的spark UI。如果用户有某些不该让其他人看到的数据,那么该用户就会要求UI也能有安全性。用户指定了Java servlet filter就可以进行认证了。接下来,一旦用户登录,spark就可以在ACL列表中查询该用户是否有权查看UI。配置参数spark.acls.enable和spark.ui.view.acls控制着ACL的行为。注意:启动应用程序的用户总是有权访问UI。在YARN上,spark UI使用标准的YARN web代理机制并通过已安装的Hadoop filters进行认证。
        spark还支持通过修改ACL表来控制哪个用户有权修改正在运行着的spark应用程序。比如,kill一个应用程序或任务。这类操作是通过配置spark.acls.enable和spark.modify.acls来控制的。注意:如果你正在认证Web UI,那么,为了使用Web UI上的kill按钮,你就必须把用户添加到view acls表中。在YARN上,修改后的acls被传入并控制着哪个用户可以通过YARN接口来访问web UI。
        如果有多个管理员存在,那么spark允许在acls中指定多个管理员,让他们总可以查看所有应用程序,以及修改应用的权限。这一功能是由配置参数spark.admin.acls来控制的。这在共享集群上是很有用的,因为这类集群中往往有多个管理员或者帮助用户调试程序的技术支持人员。
事件日志
        如果应用程序正在使用事件日志记录功能,那么,应当手动创建用来存放事件日志的路径(spark.eventLog.dir),并赋予其合适的权限。如果你想让这些日志文件也是安全的,那么,该路径的权限应当设为drwxrwxrwxt。该路径的所有者应该是正在运行history server进程的那个超级用户,而且用户组权限应限制为超级用户组。这样做可以让所有用户都能对该路径执行写操作,但会阻止那些未经授权的用户删除或重命名文件,除非他们是该文件或者路径的所有者。事件日志文件由spark创建并赋予权限,比如只有所有者及其所在用户组有读写权限。
网络安全(配置端口)
        spark大量使用网络,而且有些环境严格要求使用严密的防火墙设置。下面是spark用于通信的主要端口,以及如何配置这些端口。
仅适用于Standalone模式的端口
FromTo默认端口用途配置备注
BrowserStandalone Master8080Web UIspark.master.ui.port / SPARK_MASTER_WEBUI_PORTJetty-based,仅用于Standalone模式
BrowserStandalone Worker8081Web UIspark.worker.ui.port / SPARK_WORKER_WEBUI_PORTJetty-based,仅用于Standalone模式
Driver / Standalone WorkerStandalone Master7077向集群提交作业(Submit) SPARK_MASTER_PORTAkka-based。设为0意思是随机选择端口,仅用于Standalone模式
Standalone MasterStandalone Workerrandom调度executors SPARK_WORKER_PORTAkka-based。设为0意思是随机选择端口,仅用于Standalone模式
适用于所有集群管理器的通用端口
FromTo默认端口用途配置备注
BrowserApplication4040Web UIspark.ui.portJetty-based
BrowserHistory Server18080Web UIspark.history.ui.portJetty-based
Executor / Standalone MasterDriverrandom连接到Application,或通知executor状态变化spark.driver.portAkka-based。设为0意思是随机选择端口
DriverExecutorrandom调度任务taskspark.executor.portAkka-based。设为0意思是随机选择端口
ExecutorDriverrandomfiles和jars文件服务器spark.fileserver.portJetty-based
ExecutorDriverrandomHTTP广播spark.broadcast.portJetty-based,TorrentBroadcast不使用该端口,它通过block manager发送数据
ExecutorDriverrandom类(class)文件服务器spark.replClassServer.portJetty-based,仅用于spark shell
Executor / DriverExecutor / DriverrandomBlock Manager端口spark.blockManager.portRaw socket via ServerSocketChannel
  有关安全的配置参数详见配置页面,安全机制的实现参考 org.apache.spark.SecurityManager。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-348115-1-1.html 上篇帖子: Dubbox监控在服务器中的安装 下篇帖子: 阿里云服务器Linux CentOS安装配置(八)nginx安装、配置、域名绑定
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表