1、資源隔離 1.1、現(xiàn)狀 a、每一個隊列設(shè)置'Min Resources'、'Max Resources',當(dāng)該隊列處于空閑狀態(tài),其他隊列可從該隊列爭奪資源,突破該隊列的最小資源數(shù)。而忙碌的隊列可突破最大資源數(shù)。此時空閑隊列,同時提交很多job,資源不夠,搶占隊列在一定的時間內(nèi)
a、每一個隊列設(shè)置'Min Resources'、'Max Resources',當(dāng)該隊列處于空閑狀態(tài),其他隊列可從該隊列爭奪資源,突破該隊列的最小資源數(shù)。而忙碌的隊列可突破最大資源數(shù)。此時空閑隊列,同時提交很多job,資源不夠,搶占隊列在一定的時間內(nèi)沒有釋放資源,會強(qiáng)制kill job,釋放資源,還給空閑隊列。
b、設(shè)置 mapreduce.job.queuename='資源多隊列',可跨隊列提交。
1.2.1、禁止跨隊列提交任務(wù),即屏蔽'mapreduce.job.queuename'參數(shù)。
1.2.2、修改配置文件步驟
a、修改fair_scheduler.xml 文件在
dd001 --- dd001為user dd001
描述: aclSubmitApps:可向隊列中提交應(yīng)用程序的Linux用戶或用戶組列表,默認(rèn)情況下為“*”,表示任何用戶均可以向該隊列提交應(yīng)用程序。
需要注意的是,該屬性具有繼承性,即子隊列的列表會繼承父隊列的列表。配置該屬性時,用戶之間或用戶組之間用“,”分割,用戶和用戶組之間用空格分割,比如“user1, user2 group1,group2”。
aclAdministerApps:該隊列的管理員列表。一個隊列的管理員可管理該隊列中的資源和應(yīng)用程序,比如可殺死任意應(yīng)用程序。
a、yarn.admin.acl的value值為'*',表示所有的用戶都可以kill其他用戶的job。
2.2.1、禁止跨隊列kill job,保證除了超級用戶,其他用戶只能kill自己對應(yīng)的隊列job。 2.2.2、修改配置步驟
a、mapred_site.xml 文件增加以下參數(shù)
mapreduce.cluster.acls.enabled true
b、yarn-site.xml 文件增加以下參數(shù)
yarn.acl.enable true yarn.admin.acl hadp
c、core-site.xml文件注入如下參數(shù) -----防止前端的appcluser UI 出現(xiàn)訪問權(quán)限問題
hadoop.http.staticuser.user hadp
a、不同用戶只能對自己用戶下的目錄有寫的權(quán)限,但目錄大小沒有上限。可能導(dǎo)致有些用戶無止境的寫,而另一些用戶,沒有空間寫。
3.2.1、根據(jù)業(yè)務(wù)大小,對用戶對應(yīng)的目錄大小進(jìn)行配置。
a、未設(shè)置配額的文件屬性
[dd001[@test_12123](/user/test_12123) ~]$hdfs dfs -count -q hdfs://ns1/user/dd001/warehouse/test_lh none inf none inf 1 0 0 hdfs://ns1/user/dd_edw/warehouse/test_lh
文件數(shù)限額 可用文件數(shù) 空間限額 可用空間 目錄數(shù) 文件數(shù) 總大小 文件/目錄名
b、設(shè)置配額命令
[dd001[@test_12123](/user/test_12123) ~]$hdfs dfsadmin -setSpaceQuota 400 hdfs://ns1/user/dd001/warehouse/test_lh
c、設(shè)置配額后的屬性值
[dd001[@test_12123](/user/test_12123) ~]$hdfs dfs -count -q hdfs://ns1/user/dd001/warehouse/test_lh none inf 400 400 1 0 0 hdfs://ns1/user/dd_edw/warehouse/test_lh
d、測試目錄超過配額后,出現(xiàn)什么結(jié)果
[dd001[@test_12123](/user/test_12123) ~]$hdfs dfs -cp hdfs://ns1/user/dd001/warehouse/000026_0.lzo hdfs://ns1/user/dd001/warehouse/test_lh 14/10/04 17:54:14 WARN hdfs.DFSClient: DataStreamer Exception org.apache.hadoop.hdfs.protocol.DSQuotaExceededException: The DiskSpace quota of /user/dd_edw/warehouse/test_lh is exceeded: quota = 400 B = 400 B but diskspace consumed = 402653184 B = 384 MB at org.apache.hadoop.hdfs.server.namenode.INodeDirectoryWithQuota.verifyQuota(INodeDirectoryWithQuota.java:191) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.verifyQuota(FSDirectory.java:2054) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.updateCount(FSDirectory.java:1789) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.updateCount(FSDirectory.java:1764) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.addBlock(FSDirectory.java:357) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.saveAllocatedBlock(FSNamesystem.java:2847) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2508) at org.apache.hadoop.hd cp文件時候報錯,文件比配額來的大。
e、配額刪除命令
[dd001[@test_12123](/user/test_12123) ~]$hdfs dfsadmin -clrSpaceQuota hdfs://ns1/user/dd001/warehouse/test_lh
3.3、監(jiān)控
增加配額只是一條命令的事情,限制存儲不是目的,是手段。最終目的還是為了資源更充分的得到利用,防止超過配額,而不是任務(wù)報錯。因此做好監(jiān)控是首要任務(wù)。
3.3.1、資源分配
隊列名 用戶機(jī)器數(shù) 機(jī)器總配額(T) 集群機(jī)器分配總數(shù) 平均配額=(總配額/集群機(jī)器分配總數(shù))(T) 硬盤預(yù)留值(T) 實際配額=(平均配額-硬盤預(yù)留值 )*機(jī)器數(shù)
dd001 20 21 20 20.9715 0.0488 418.454
a、平均配額=總配額/集群機(jī)器分配總數(shù)。
實際配額=(平均配額-硬盤預(yù)留值 )*機(jī)器數(shù)。
b、報警值=實際配額 * 0.8。
3.3.2、磁盤報警后處理
a、刪除冗余數(shù)據(jù)。
b、加機(jī)器。
在加機(jī)器的時候,內(nèi)存、cpu也需要相對的調(diào)整。
401 mb,19vcores 401 mb,19vcores
兩個參數(shù)做相應(yīng)的調(diào)整,而配額的調(diào)整命令如下:
a、hdfs dfsadmin –clrSpaceQuota hdfs://ns1/user/dd001/warehouse/test_lh ---刪除配額
b、hdfs dfsadmin -setSpaceQuota ‘實際配額’ hdfs://ns1/user/dd001/warehouse/test_lh ---增加新的配額。
c、增加多少配額,即增加多少機(jī)器
c.1、目錄存儲量使用平均日增長=sum(日增長)/count(1)
c.2、機(jī)器數(shù) =(磁盤可用存儲天數(shù) * 目錄存儲量使用平均日增長)/(平均配額-硬盤預(yù)留值)
c.3、實例:
假設(shè)'目錄存儲量使用平均日增長'=0.5T
機(jī)器數(shù)=(90*0.5)/ (18.4279-0.0488)= 3臺
參考文檔:
http://blog.csdn.net/caizhongda/article/details/7468363
http://dongxicheng.org/mapreduce-nextgen/hadoop-yarn-configurations-fair-scheduler/
http://www.yufan-liu.com/blog/?p=291
http://blog.itpub.net/122978/viewspace-1119883/
http://www.07net01.com/zhishi/520762.html
http://f.dataguru.cn/thread-103012-1-1.html
原文地址:HADOOP資源/存儲隔離, 感謝原作者分享。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com