日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于Hadoop多用户管理支持客户端远程操作的理论总结

發布時間:2025/4/16 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于Hadoop多用户管理支持客户端远程操作的理论总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、問題

Hadoop客戶端如何配置可遠程操作Hadoop;Hadoop多用戶情況下,是如何管理權限并分配存儲空間和計算能力,保證集群的穩定。

2、Hadoop平臺

要理解客戶端如何通過指定用戶遠程操作hadoop集群,這里先理解下hadoop平臺的部署架構。Hadoop是大數據分布式處理的軟件框架,集成MapReduce分布式編程模型和HDFS分布式文件存儲系統。MapReduce將執作業job分割成任務task,運行于各計算節點的。HDFS負責各個節點的數據存儲,實現高吞吐率的數據讀寫。

Hadoop的主/從(Master/Slave)集群架構,主要由NameNode、DataNode、Secondary NameNode、JobTracker、TaskTracker組成。其中NameNode、Secondary? NameNode、JobTracker運行在Master節點上,而在每個Slave節點上,部署一個DataNode和TaskTracker。集群datanode之間并行地復制大文件可通過distcp命令。


從這個體系上看,主要是Client和Master之間通信來實現遠程和多用戶管理。

2、Hadoop客戶端安裝和配置

1)Centos操作系統下,客戶端Client用戶名為A,服務器Master用戶名為M,復制服務器的Hadoop安裝包到客戶端。

2)系統/etc/profile配置hadoop的home路徑;

3)Hadoop目錄下hadoop-env.sh配置jdk路徑;

4)Hadoop目錄下core-site.xml配置集群namenode路徑;

?? <property>

<name>fs.default.name</name>

<value>hdfs://Master:8020</value>

</property>

5)Hadoop目錄下mapred-site.xml配置集群jobtracker路徑;

<property>

<name>mapred.job.tracker</name>

<value> Master:8021</value>

</property>

Hadoop客戶端已完成配置,如Master服務器已設置好用戶A,則可以運行Hadoop命令,如向hdfs系統上傳文件。

現在的關鍵是Master服務器如何用M管理多用戶權限,使客戶端Client的用戶A具有執行Master命令的權限。有必要先了解Linux的ACL機制。

3、ACL機制

ACL(AccessControl List) 訪問控制列表,可置特定用戶或用戶組對于一個文件/目錄的操作權限,包包括owner、group、others的read、write、execute權限。主要兩個命令是:getfacl查看文件/目錄的ACL設定內容和setfacl設置文件/目錄的ACL內容。

1)$getfaclmy.cnf? //查看my.cnf的acl內容

# file: my.cnf

# owner: root

# group: root

user::rw-

group::r--

other::r—

通過執行$ls-l my.cnf比照更清晰理解:

-rw-r--r-- 1 root root 943 3月?13 2015 my.cnf

2)$setfacl-m o:rwx my.cnf //設置my.cnf文件other

# file: my.cnf

# owner: root

# group: root

user::rw-

group::r--

other::rwx

3)語法參考:setfacl[-bkRd] [{-m|-x} acl參數] 文件名

-m :設置后續的acl參數

-x :刪除后續的acl參數

-b :刪除所有的acl設定參數

-R :遞歸設置acl參數

-d :設置預設的acl參數(只對目錄有效,在該目錄新建的文件也會使用此ACL默認值)

-k :刪除預設的acl參數

4)開啟和關閉:

ACL默認是開啟的,開啟和關閉可通過mount -o acl實現。

查看當前文件系統的掛載選項:

# tune2fs -l/dev/sda1 | grep “mount option”

Defaultmount options: user_xattr acl

使用tune2fs開啟和關閉acl的命令:

tune2fs -oacl /dev/sda1

tune2fs -o^acl /dev/sda1

4、Hadoop訪問控制

Hadoop訪問控制分為兩級,其中Service Level Authorization為系統級,用于控制是否可以訪問指定的服務,例如用戶/組是否可以向集群提交Job,它是最基礎的訪問控制,優先于文件權限和mapred隊列權限驗證。Access Control on Job Queues在job調度策略層之上,控制mapred隊列的權限。DFS Permmision用戶控制文件權限。


?Hadoop文件和目錄權限管理集成ACL,基于POSIX(Portable Operating System Interface,可移植操作系統接口)模型,支持按用戶、用戶組、其他用戶的讀寫執行控制權限。

Hadoop修改文件的權限、所有者及其所屬組的基本命令如下:

hadoop fs –chmod?//修改文件所有者、所屬組、其他用戶的讀、寫、執行權限;

haddop fs –chown? //修改文件所有者

hadoop fs –chgrp?? //修改文件所屬組

用戶組和用戶名都是Linux本身管理,Hadoop只是管理特定Linux用戶對hdfs文件系統的權限,實現不同客戶端通過不同linux帳戶遠程Hadoop。客戶端調用hadoop 的文件操作命令時,hadoop 識別出客戶端執行命令所在進程的用戶名和用戶組(通過linux命令whoami識別用戶名、通過groups 識別用戶組,也有Kerberos、LDAP等身份識別方式),然后Master服務器檢查賦予的該用戶名和組的文件權限。

客戶端Client啟動hadoop進程遠程Namenode時識別用戶為A;Master服務器系統已有分配好hdfs文件權限的用戶A,收到客戶端請求后,檢查A所執行命令的文件權限。

那么Hadoop具體如何分配用戶權限及其所擁有的存儲空間和計算能力。

5、Hadoop多用戶管理

Master服務器的hadoop超級用戶M(不是Linux操作系統的root),具有啟動集群和執行所有命令的權限。那么M超級用戶是如何管理hadoop普通用戶的權限。

1)新建Master服務器Linux系統用戶A、用戶組A;

2)Hadoop創建用戶A的目錄

$hadoop fs –mkdir/user/A

$hadoop fs –ls? /user/A ?//查看該文件夾權限

3)賦予用戶A擁有目錄的權限

$hadoop fs –chownA:A /user/A

4)設定用戶A目錄的空間容量

$hadoopdfsadmin –setSpaceQuota 1t /user/A? //如設置為1T

此時客戶端A用戶啟動hadoop遠程Master即可執行相關hadoop命令,提交任務數據到HDFS的/user/A目錄。實際上,簡單的多用戶權限管理并不需要ACL功能,只需要hadoop本身文件操作命令即可,將hadoop多用戶權限配置轉移成單純的hdfs文件的用戶權限配置。

那如何進一步管理多用戶的文件權限和資源能力呢?

對于復雜的文件權限訪問控制,如要用戶組里的所有用戶都具備用戶組相應的權限,需要使用ACL權限管理機制。

1)Hadoop啟用ACL

hdfs-site.xml設置:

<property>

<name>dfs.permissions.enabled</name>

<value>true</value>

</property>

<property>

<name>dfs.namenode.acls.enabled</name>

<value>true</value>

</property>

core-site.xml設置用戶組默認權限:

<property>

<name>fs.permissions.umask-mode</name>

<value>022</value>

</property>

2)HadoopACL命令

$hdfs?dfs -getfacl [-R] path

顯示文件和目錄的訪問控制列表。如果一個目錄有默認的ACL,getfacl也可以顯示默認的ACL設置。

$hdfs?dfs -setfacl [-R] [-b|-k -m|-x acl_spec path]|[--set acl_spec path]

設置文件和目錄的ACL

-R: Use thisoption to recursively list ACLs for all files and directories.

-b: Revokeall permissions except the base ACLs for user, groups and others.

-k: Removethe default ACL.

-m: Add newpermissions to the ACL with this option. Does not affect existing permissions.

-x: Removeonly the ACL specified.

參考:

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html

對于多用戶的資源分配,Hadoop通過Fair Scheduler或者 Capacity Scheduler支持,而作業管理則通過ACL來滿足。

1)資源管理:以用戶組和用戶為主體配置可用資源。Fair Scheduler將整個Yarn的可用資源劃分成多個資源池,支持按照用戶名配置所屬的資源池。每個資源池中可以配置最小和最大的可用資源(內存和CPU)、最大可同時運行Application數量、權重、以及可以提交和管理Application的用戶等。

2)作業管理:主要是作業提交權限控制、作業運行狀態查看權限控制等。如限定可提交作業的用戶、限定可查看作業運行狀態的用戶、限定普通用戶只能修改自己作業的優先級、kill自己的作業、高級用戶可以控制所有作業等。

6、總結

對于Hadoop多用戶管理的機制,從用戶創建、到文件管理、資源和作業管理,通過兩天時間的學習,大致梳理了下。對于進一步深入掌握Hadoop相關機制,還有很漫長的路,需要通過實踐不斷總結。

Hadoop多用戶管理最主要是基于linux的用戶分組和用戶基礎,并應用ACL管理文件和作業訪問權限。在具體作業和資源管理上,還未進一步試驗練習。

總結

以上是生活随笔為你收集整理的关于Hadoop多用户管理支持客户端远程操作的理论总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。