转载自过往记忆(http://www.iteblog.com/)
本文链接地址: 《Hadoop web页面的授权设定》(http://www.iteblog.com/archives/988)

一、相关概念

  在默认情况下,Hadoop相关的WEB页面(JobTracker, NameNode, TaskTrackers and DataNodes)是不需要什么权限验证就可以直接进入的,谁都可以查看到当前集群上有哪些作业在运行,这对安全来说是很不合理的。我们应该限定用户来访问Hadoop相关的WEB页面,只有授权的用户才能看到自己授权的作业等信息,而不应该看到他不该看到的。其实Hadoop提供了简单的web页面的授权设定。
  和Hadoop的RPC授权一样,Hadoop相关的WEB页面也可以通过配置Kerberos利用HTTP SPNEGO协议来进行相应的授权控制,HTTP SPNEGO协议是支持Firefox和Internet Explorer浏览器。不过Hadoop WEB页面也是支持Hadoop的Pseudo/Simple授权控制,如果相应的授权开启了,用户需要在查看某个页面的时候,需要在URL的后面带上一个查询参数,如下:

http://localhost:50030/jobtracker.jsp?user.name=babu

  这样,jobtracker.jsp中将会获取到user.name参数的值,从而达到简单的授权控制。如果需要达到比较好的授权机制,用户可以自己写个Hadoop WEB页面授权的插件(比如我们可以实现自己的AuthenticatorHandler,可以参考Hadoop自带的Hadoop-auth.jar工具包)。 

二、如何配置

  上面说了Hadoop支持对相关的WEB页面进行简单的授权,那么如何来设定呢?下面就来进行说明。
  下面的所有配置都是在$HADOOP_HOME/etc/hadoop/core-site.xml里面进行设定,设定好后,需要将core-site.xml同步到集群中的所有机器。
  1、hadoop.http.filter.initializers的值设定为org.apache.hadoop.security.AuthenticationFilterInitializer,它的默认值如下:

<property>
<name>hadoop.http.filter.initializers</name>
<value>org.apache.hadoop.http.lib.StaticUserWebFilter</value>
<description>A comma separated list of class names. Each class in the list
must extend org.apache.hadoop.http.FilterInitializer. The corresponding
Filter will be initialized. Then, the Filter will be applied to all user
facing jsp and servlet web pages. The ordering of the list defines the
ordering of the filters.</description>
</property>

  2、设定hadoop.http.authentication.type的值,这个属性的值支持simple、kerberos、#AUTHENTICATION_HANDLER_CLASSNAME#;默认配置是simple。

<property>
<name>hadoop.http.authentication.type</name>
<value>simple</value>
<description>
Defines authentication used for Oozie HTTP endpoint.
Supported values are: simple|kerberos | #AUTHENTICATION_HANDLER_CLASSNAME#
</description>
</property>

  3、hadoop.http.authentication.token.validity这个值设定本次授权的token多长时间有效,单位是秒。默认配置是3600秒。

  4、hadoop.http.authentication.signature.secret.file设定signature secret file文件存放的绝对路径,这个文件需要同步到集群中所有的JobTracker, NameNode, DataNode 和TastTracker,它的默认值是${user.home}/hadoop-http-auth-signature-secret。需要保证signature secret file文件可以被启动JobTracker, NameNode, DataNode 和TastTracker进程的用户可读。
  5、hadoop.http.authentication.cookie.domain:以Cookie存储认证Token的域名,为了能够使得授权得以生效,需要配置一个正确的值,该属性是默认值为空。
  6、hadoop.http.authentication.simple.anonymous.allowed:在simple授权模式下,是否允许匿名用户请求。默认值是ture,也就是允许。
  7、hadoop.http.authentication.kerberos.principal:在kerberos授权模式下,是否允许HTTP终端用 Kerberos principal,这个属性的值必须是以’HTTP/’开头。默认的值是HTTP/_HOST@$LOCALHOST。
  8、hadoop.http.authentication.kerberos.keytab: keytab file文件的存放地址,默认值是$user.home/hadoop.keytab.i。

【转】Hadoop web页面的授权设定的更多相关文章

  1. [Hadoop异常处理] Namenode和Datanode都正常启动,但是web页面不显示

    异常 namenode和data都正常启动 但是web页面却不显示,都为零 解决办法一: 在hdfs-site.xml配置文件中,加入 <property> <name>dfs ...

  2. C#进行Visio二次开发之文件导出及另存Web页面

    在我前面很多关于Visio的开发过程中,介绍了各种Visio的C#开发应用场景,包括对Visio的文档.模具文档.形状.属性数据.各种事件等相关的基础处理,以及Visio本身的整体项目应用,虽然时间过 ...

  3. (基础篇)PHP与Web页面交互

    PHP与Web页面交互是实现PHP网站与用户交互的重要手段.在PHP中提供了两种与Web页面交互的方法,一种是通过Web表单提交数据,另一种是通过URL参数传递. 这里我们将详细讲解表单的相关知识,为 ...

  4. 微信平台接入Web页面功能接口(C#)

    微信平台接入web页面功能接口 今年因工作需要,通过微信平台接入公司的Wap页面,回忆下,记录内容,方面以后使用. 1.成为开发者后,你才可以使用公众平台的开发功能.需要填写URL和ToKen,接口配 ...

  5. php与web页面交互

    一.web表单 web表单的功能是让浏览者和网站有一个互动的平台.web表单主要用来在网页中发送数据到服务器. 1.1 表单的创建 使用form标记,并在其中插入相关的表单元素,即可创建一个表单. & ...

  6. 使用flask框架实现web页面与数据库数据互联+常见的几种状态码

    1.通过cygwin从pip install两个包:PyMySQL.SQLAlchemy: 2.在app.py中import我们要用到的库中的包:create_engine,text :from sq ...

  7. WEB页面常用基本控件测试用例

    一.树控件的测试外观操作 1)项目中的所有树是否风格一致 2)树结构的默认状态是怎样的.比如默认树是否是展开,是展开几级?  是否有默认的焦点? 默认值是什么?展开的节点图标和颜色? 2.执行操作 1 ...

  8. PHP与web 页面交互

    PHP与Web页面交互是实现PHP网站与用户交互的重要手段.在PHP中提供了两种与Web页面交互的方法,一种是通过Web表单提交数据,另一种是通过URL参数传递. 这里我们将详细讲解表单的相关知识,为 ...

  9. Hadoop Web项目--Mahout0.10 MR算法集锦

    1. 涉及技术及下载 项目开发使用到的软件有:Myeclipse2014,JDK1.8.Hadoop2.6,MySQL5.6.EasyUI1.3.6,jQuery2.0,Spring4.1.3,Hib ...

随机推荐

  1. Python使用libsvm的“ImportError: No module named svmutil”问题

    from:http://blog.csdn.net/xmu_jupiter/article/details/46830327 这几天快被Python的一些细节问题整死了,浪费了不少时间.现在把这些记录 ...

  2. 一个简单的 ASP.NET MVC 例子演示如何在 Knockout JS 的配合下,使用 TypeScript 。

    前言 TypeScript 是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程.安德斯·海尔斯伯格,C#的首席架 ...

  3. ruby -- 问题解决(四)编码错误导致无法显示(2)

    从数据库中取得数据显示时报 incompatible character encodings: GBK and ASCII-8BIT或 incompatible character encodings ...

  4. [Math] A love of late toward Mathematics - how to learn it?

    Link: https://www.zhihu.com/question/19556658/answer/26950430     王小龙 ,数学,计算机视觉,图形图像处理 数学系博士怒答! 我想大家 ...

  5. UWP开发入门(二十)——键盘弹起时变更界面布局

    UWP APP在键盘弹起或隐藏时,并不会自动处理界面布局.有时会出现键盘遮挡了下一个需要填写的文本框,或是下一步按钮的情况.本篇我们以登录界面做例子,用一种巧妙简单的方式在键盘弹起和隐藏时更改界面的布 ...

  6. IOS中对象的归档

    ios提供了两个类 NSKeyedArichiver NSKeyedUnarchiver对自定义对象进行归档 和解档操作 归档常见方法 - (void)encodeObject:(id)objv fo ...

  7. 连续值的CART(分类回归树)原理和实现

    上一篇我们学习和实现了CART(分类回归树),不过主要是针对离散值的分类实现,下面我们来看下连续值的cart分类树如何实现 思考连续值和离散值的不同之处: 二分子树的时候不同:离散值需要求出最优的两个 ...

  8. [C#] CSharp 基本语法

    CSharp Language Specification 一.基础 1.规范: 除常量外,所有变量用驼峰命名方式,其它用帕斯卡命名方式. 2.编译: 首先由csc.exe将cs文件编译成MSIL.当 ...

  9. Linq专题之查询操作

    前面我们主要讲解的是Linq的查询表达式,Linq不但提供了一些基本的查询表达式,还提供了数十个查询操作.比如筛选操作.聚合操作.投影操作等等.通过这些查询操作可以更方便的对数据源进行处理. Linq ...

  10. Java的final关键字详解

    Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...