CentOS7安裝CDH 第十三章:CDH資源池配置

相關文章連接

CentOS7安裝CDH 第一章:CentOS7系統安裝html

CentOS7安裝CDH 第二章:CentOS7各個軟件安裝和啓動java

CentOS7安裝CDH 第三章:CDH中的問題和解決方法node

CentOS7安裝CDH 第四章:CDH的版本選擇和安裝方式sql

CentOS7安裝CDH 第五章:CDH的安裝和部署-CDH5.7.0apache

CentOS7安裝CDH 第六章:CDH的管理-CDH5.12oop

CentOS7安裝CDH 第七章:CDH集羣Hadoop的HA配置測試

CentOS7安裝CDH 第八章:CDH中對服務和機器的添加與刪除操做優化

CentOS7安裝CDH 第九章:CDH中安裝Kafkaui

CentOS7安裝CDH 第十章:CDH中安裝Spark2this

CentOS7安裝CDH 第十一章:離線升級CDH版本

CentOS7安裝CDH 第十二章:YARN的資源調優

CentOS7安裝CDH 第十三章:CDH資源池配置

CentOS7安裝CDH 第十四章:CDH的優化

1. 靜態資源池

在CDH中,通常狀況下不建議使用靜態資源池,在CDH中默認的資源池是動態資源池,爲何不建議使用靜態資源池,緣由以下:

假設給NodeManager分配了4G內存,剛剛開始使用的時候使用了3G,一段時間後任務增多,使用到了4G內存,當任務再增多時,靜態資源池會OOM,但動態資源池會從其餘地方調集資源過來接着使用。

2. 動態資源池的三種默認使用池

一、使用池已在運行時指定 ,若是該池不存在則加以建立:

  hadoop jar -Dmapreduce.job.queuename=etl xxx.jar

  假若有資源池就使用etl,沒有建立etl

二、使用池 root.users.[username] ,若是該池不存在則加以建立:

  hadoop jar xxxx.jar

  以root來提交 root.users.root

  以hdfs來提交 root.users.hdfs

三、使用池 root.default:

  此規則始終知足。不會使用後續規則

3. 使用動態資源池

3.1. 動態資源池的其中2種性質

一、根據多個項目一個大的資源池的性質:

  A項目(spark streaming),B項目(spark sql/hive)

  一個項目:

  spark streaming  10%

  hive 30%

  spark sql 60%

  ---Dmapreduce.job.queuename=root.sparkstreaming

二、根據一個項目一個大的資源池性質:

  生產項目product,開發項目develop, 測試項目qa, 默認資源池

  人員:

  product一、product2: product

  develop一、develop2: develop

  qa一、qa2: qa

3.2. 配置動態資源池示例

一、建立資源池product,develop,qa和default,這些都是root的子資源池,其中內存和CPU能夠本身設置,但通常不設置,就只設置權重就能夠了,記得修改後要刷新動態資源池:

  

  

二、建立咱們本身的放置規則:

  

  當product1用戶提交hadoop jar xxxx.jar命令時,是使用的哪一個資源池?

  product1用戶提交的時候,取用戶組是product,拼接root.product

  此時判斷root.product池在不在系統配置裏?

  假如在,就使用root.product,假如不在,第二條規則

三、配置CDH集羣的Java Home目錄:

   

  在全部主機界面的配置選項中,使用安裝JDK建議使用tar包解壓安裝,解壓的目錄爲/usr/java下,配置好Java Home目錄後請到CDH主界面更新配置,若是不更新那該資源就不會生效。

四、開啓HDFS權限檢查(dfs.permissions):

  

五、建立用戶組和用戶:

  

六、開啓資源管理器ACL和設置相應的用戶或者用戶組:

  

  管理ACL的格式爲:" 以逗號分隔的用戶列表+空格+以逗號分隔的用戶組列表" ,例如 "user1,user2 group1,group2"

七、不容許未聲明的池:

  

八、不使用默認隊列時的 Fair Scheduler 用戶:

  

九、生效配置,重啓服務:

  

  或點擊電源按鈕。

十、提交訪問控制:

  對root用戶進行設置:

  

  

  對其餘用戶進行設置,如下以develop舉例,其餘相似:

  

  

  在動態資源池中主要刷新動態資源池就能夠生效了,不須要重啓服務。

3.3. 使用動態資源池示例

一、建立用戶和用戶組:

  

二、在HDFS中建立目錄:

  

三、給建立的目錄受權:

  hdfs dfs -chmod -R 777 /example

四、使用product1用戶上傳一個文件到建立的目錄下:

  

五、使用product1用戶在HDFS中建立一個文件夾:

  

六、使用product1用戶建立一個測試文件夾,並上傳到/example/input/目錄下:

  

七、進入到hadoop的跟目錄下,並找到hadoop自帶的測試jar包:

  

八、使用product1用戶執行此jar包下的wordcount程序:

hadoop jar \

/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.16.1.jar \

wordcount \

/example/input \

/example/output1

錯誤一:/user目錄訪問權限問題,能夠經過修改HDFS的/user目錄權限解決

修改前:

修改命令(需使用hdfs用戶來修改):

[hdfs@bigdata01 ~]$ hdfs dfs -chmod -R 777 /user/

修改後:

注:該文件列表中user文件夾能夠進行修改,但一些業務數據的文件夾,好比hbase文件夾就不能進行修改了。

 

錯誤二:用戶根沒法向隊列root.default提交應用程序

此錯誤爲沒有將任務提交到product資源池中,能夠將default資源池池設置成全部用戶均可以訪問便可,還能夠進行其餘設置,請去百度查看。

3.4. 提交一個spark程序中遇到的問題

一、當在CDH中安裝spark2後,提交spark程序的命令爲spark2-submit \;

二、提交任務命令以下:

cd /opt/cloudera/parcels/SPARK2/lib/spark2/examples/jars

spark2-submit \

--master yarn \

--queue $QUEUE_NAME \

--class org.apache.spark.examples.GroupByTest \

spark-examples_2.11-2.2.0.cloudera4.jar

三、錯誤一

17/10/21 13:18:48 INFO spark.SparkContext: Successfully stopped SparkContext

Exception in thread "main" java.lang.IllegalArgumentException:

Required executor memory (1024+384 MB) is above the max threshold (1049 MB) of this cluster!

Please check the values of 'yarn.scheduler.maximum-allocation-mb' and/or 'yarn.nodemanager.resource.memory-mb'.

at org.apache.spark.deploy.yarn.Client.verifyClusterResources(Client.scala:334)

at org.apache.spark.deploy.yarn.Client.submitApplication(Client.scala:168)

須要在yarn中配置yarn.nodemanager.resource.memory-mb參數

四、錯誤二

job的日誌 HDFS:

User [dr.who] is not authorized to view the logs for container_e25_1508567262904_0002_01_000001 in log file [i-bsbhj3uw_8041]

此時是沒有權限訪問hdfs中的日誌,須要在hdfs的配置文件中查找core-site,而後添加以下配置:

相關文章
相關標籤/搜索