HDFS权限和IDEA开发注意点

在这里插入图片描述
hdfs是一个文件系统,有用户概念

注意

  • hdfs没有相关命令和接口去创建用户

1:HDFS采用信任客户端的方式

  • 默认情况使用的 操作系统提供的用户
  • 也可以扩展 kerberos LDAP 继承第三方用户认证系统
  • HDFS有超级用户的概念
    • linux系统中超级用户:root
    • hdfs系统中超级用户: 是namenode进程的启动用户
  • 有权限概念
    hdfs的权限是自己控制的 来自于hdfs的超级用户

一般在企业中不会用root做什么事情

  • 面向操作系统 root是管理员 其他用户都叫【普通用户】
  • 面向操作系统的软件 谁启动,管理这个进程,那么这个用户叫做这个软件的管理员

2:实操

我们用root搭建的HDFS 用god这个用户来启动hdfs,然后在节点上创建good这个用户进行hdfs上创建目录
报错,没权限
因为hdfs已经启动了,不知道你操作系统又偷偷摸摸创建了用户和组

默认hdfs依赖操作系统上的用户和组
但是这句话是需要重启生效的,当然你也可以在NN节点执行下述命令
hdfs dfsadmin -refreshUserToGroupsMappings
记住一定是NN节点
执行后就会发现,你可以用操作系统上的用户和组创建目录了

3:IDEA等开发工具注意点

作为开发hdfs的client
权限:

  • 1)参考系统登录用户名;
  • 2)参考windows环境变量;
    • HADOOP_USER_NAME=god windows高级属性设置
    • fs=FileSystem.get(conf)------自动读取环境变量
      局部生效,但是全局不生效,如下图
      在这里插入图片描述
      也可以用Java的System.setProperty (“HADOOP_USR_NAME”, “god”);来设置hdfs超级用户
  • 3)代码中给出
    • fs=FileSystem.get(URI.create(“hdfs://mycluster/”),conf,user:“good”);
    • jdk版本:集群和开发环境jdk版本一致~!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章