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版本一致~!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章