Spark版本:1.1.1

本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接:

http://www.cnblogs.com/zhangningbo/p/4135808.html

目录


  • Web UI
  • 事件日志
  • 网络安全(配置端口)
  1. 仅适用于Standalone模式的端口
  2. 适用于所有集群管理器的通用端口

  现在,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模式的端口

From To 默认端口 用途 配置 备注
Browser Standalone Master 8080 Web UI spark.master.ui.port / SPARK_MASTER_WEBUI_PORT Jetty-based,仅用于Standalone模式
Browser Standalone Worker 8081 Web UI spark.worker.ui.port / SPARK_WORKER_WEBUI_PORT Jetty-based,仅用于Standalone模式
Driver / Standalone Worker Standalone Master 7077 向集群提交作业(Submit) SPARK_MASTER_PORT Akka-based。设为0意思是随机选择端口,仅用于Standalone模式
Standalone Master Standalone Worker random 调度executors SPARK_WORKER_PORT Akka-based。设为0意思是随机选择端口,仅用于Standalone模式

适用于所有集群管理器的通用端口

From To 默认端口 用途 配置 备注
Browser Application 4040 Web UI spark.ui.port Jetty-based
Browser History Server 18080 Web UI spark.history.ui.port Jetty-based
Executor / Standalone Master Driver random 连接到Application,或通知executor状态变化 spark.driver.port Akka-based。设为0意思是随机选择端口
Driver Executor random 调度任务task spark.executor.port Akka-based。设为0意思是随机选择端口
Executor Driver random files和jars文件服务器 spark.fileserver.port Jetty-based
Executor Driver random HTTP广播 spark.broadcast.port Jetty-based,TorrentBroadcast不使用该端口,它通过block manager发送数据
Executor Driver random 类(class)文件服务器 spark.replClassServer.port Jetty-based,仅用于spark shell
Executor / Driver Executor / Driver random Block Manager端口 spark.blockManager.port Raw socket via ServerSocketChannel

有关安全的配置参数详见配置页面,安全机制的实现参考 org.apache.spark.SecurityManager

【Spark学习】Apache Spark安全机制的更多相关文章

  1. Spark学习之Spark Streaming(9)

    Spark学习之Spark Streaming(9) 1. Spark Streaming允许用户使用一套和批处理非常接近的API来编写流式计算应用,这就可以大量重用批处理应用的技术甚至代码. 2. ...

  2. Spark学习之Spark SQL(8)

    Spark学习之Spark SQL(8) 1. Spark用来操作结构化和半结构化数据的接口--Spark SQL. 2. Spark SQL的三大功能 2.1 Spark SQL可以从各种结构化数据 ...

  3. Spark学习之Spark调优与调试(7)

    Spark学习之Spark调优与调试(7) 1. 对Spark进行调优与调试通常需要修改Spark应用运行时配置的选项. 当创建一个SparkContext时就会创建一个SparkConf实例. 2. ...

  4. Spark学习之Spark SQL

    一.简介 Spark SQL 提供了以下三大功能. (1) Spark SQL 可以从各种结构化数据源(例如 JSON.Hive.Parquet 等)中读取数据. (2) Spark SQL 不仅支持 ...

  5. Spark学习一:Spark概述

    1.1 什么是Spark ​ Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎. ​ 一站式管理大数据的所有场景(批处理,流处理,sql) ​ spark不涉及到数据的存储,只 ...

  6. 【Spark学习】Spark 1.1.0 with CDH5.2 安装部署

    [时间]2014年11月18日 [平台]Centos 6.5 [工具]scp [软件]jdk-7u67-linux-x64.rpm spark-worker-1.1.0+cdh5.2.0+56-1.c ...

  7. Spark学习之Spark Streaming

    一.简介 许多应用需要即时处理收到的数据,例如用来实时追踪页面访问统计的应用.训练机器学习模型的应用,还有自动检测异常的应用.Spark Streaming 是 Spark 为这些应用而设计的模型.它 ...

  8. Spark学习之Spark调优与调试(一)

    一.使用SparkConf配置Spark 对 Spark 进行性能调优,通常就是修改 Spark 应用的运行时配置选项.Spark 中最主要的配置机制是通过 SparkConf 类对 Spark 进行 ...

  9. Spark学习(4) Spark Streaming

    什么是Spark Streaming Spark Streaming类似于Apache Storm,用于流式数据的处理 Spark Streaming有高吞吐量和容错能力强等特点.Spark Stre ...

  10. Spark学习之Spark调优与调试(二)

    下面来看看更复杂的情况,比如,当调度器进行流水线执行(pipelining),或把多个 RDD 合并到一个步骤中时.当RDD 不需要混洗数据就可以从父节点计算出来时,调度器就会自动进行流水线执行.上一 ...

随机推荐

  1. The 9th Zhejiang Provincial Collegiate Programming Contest->Problem :K-Yet Another Story of Rock-pap

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3610 题意:一对恋人受到fff团惩罚,需要比剪刀石头布,谁输谁死,出一样都 ...

  2. python List&Set&Dict交集、并集、差集

    1.python List交集.并集.差集 1). 获取两个list 的交集#方法一: a=[2,3,4,5] b=[2,5,8] tmp = [val for val in a if val in  ...

  3. linux grep命令总结

    风生水起善战者,求之于势,不责于人,故能择人而任势. 博客园    首页    新随笔    联系    订阅    管理 posts - 791,  comments - 394,  trackba ...

  4. 前阿里CEO卫哲谈阿里创业经验:如何找人、找钱、找方向?(不同的阶段分别有:时间优先、金额优先、比例优先,不要做平台,太难)

    新浪科技李根 整理报道 卫哲现在是御嘉基金的创始合伙人,他另一个更加知名的身份是阿里巴巴(B2B)前CEO,在2006年到2011年的时间里,卫哲见证了阿里巴巴如何利用人才.资本和方向选择一路壮大. ...

  5. 屏蔽QQ聊天对话框中的广告

    原文地址: 怎么在QQ聊天对话框中屏蔽广告_百度经验 http://jingyan.baidu.com/article/48a42057ca12c1a924250402.html     QQ已经成为 ...

  6. 172. Factorial Trailing Zeroes

    题目: Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in ...

  7. poj2436,poj3659,poj2430

    这两题都体现了dp的核心:状态 dp做多就发现,状态一设计出来,后面的什么都迎刃而解了(当然需要优化的还要动动脑筋): 先说比较简单的: poj2436 由题得知病毒种数<=15很小,于是我们就 ...

  8. Flash挡住DIV的解决方法

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://down ...

  9. UVa 442 (栈) Matrix Chain Multiplication

    题意: 给出一个矩阵表达式,计算总的乘法次数. 分析: 基本的数学知识:一个m×n的矩阵A和n×s的矩阵B,计算AB的乘法次数为m×n×s.只有A的列数和B的行数相等时,两个矩阵才能进行乘法运算. 表 ...

  10. MySQL索引的查看创建和删除

    1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍. 例如,有 ...