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
在CDH中,通常狀況下不建議使用靜態資源池,在CDH中默認的資源池是動態資源池,爲何不建議使用靜態資源池,緣由以下:
假設給NodeManager分配了4G內存,剛剛開始使用的時候使用了3G,一段時間後任務增多,使用到了4G內存,當任務再增多時,靜態資源池會OOM,但動態資源池會從其餘地方調集資源過來接着使用。
一、使用池已在運行時指定 ,若是該池不存在則加以建立:
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:
此規則始終知足。不會使用後續規則
一、根據多個項目一個大的資源池的性質:
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
一、建立資源池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舉例,其餘相似:
在動態資源池中主要刷新動態資源池就能夠生效了,不須要重啓服務。
一、建立用戶和用戶組:
二、在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資源池池設置成全部用戶均可以訪問便可,還能夠進行其餘設置,請去百度查看。
一、當在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,而後添加以下配置: