关于Web界面查看日志的权限问题
@(Hadoop)
访问集群的8088端口,通过web ui查看作业日志时,发现没有权限查看,8088主界面右上角显示Logged in as : dr.who,即匿名用户。
修改core-site.xml,添加以下内容:
<property>
<name>hadoop.http.filter.initializers</name>
<value>org.apache.hadoop.security.AuthenticationFilterInitializer</value>
</property>
<property>
<name>hadoop.http.authentication.type</name>
<value>simple</value>
</property>
<property>
<name>hadoop.http.authentication.token.validity</name>
<value>3600</value>
</property>
<property>
<name>hadoop.http.authentication.signature.secret.file</name>
<value>/usr/local/bigdata/hadoop/hadoop-http-auth-signature-secret</value>
</property>
<property>
<name>hadoop.http.authentication.cookie.domain</name>
<value></value>
</property>
<property>
<name>hadoop.http.authentication.simple.anonymous.allowed</name>
<value>false</value>
</property>
在对应目录下创建hadoop-http-auth-signature-secret文件并写入用户名,重启集群,匿名用户无法访问8088端口了,在url后面添加
?user.name=用户名
即可查看。
1.22更新
发现之前的路子绕了一个圈,虽然能够正常查看日志,但是每次都要加上user.name参数,这个安全机制是可以有的,但是我原本的目的很简单,就是可以方便的查看日志信息,所以这些配置是可以不需要的,只要在hdfs-site.xml中加入:
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
重启集群即可,注意:使用hdfs dfsadmin -refreshNodes无法刷新配置。
另注,HDFS的回收站配置
免得误删了文件找不回来了,在core-site.xml中配置:
<property>
<name>fs.trash.interval</name>
<value>4320</value>
</property>
单位是分钟,这里配置的是三天:3*24*60
详细的参数说明请参考:
http://www.iteblog.com/archives/988
作者:@小黑