本章節提供從零開始使用安全集群并執行MapReduce程序、Spark程序和Hive程序的操作指導。
翼MR 3.x版本Presto組件暫不支持開啟Kerberos認證。
本指導的基本內容如下所示:
1.創建安全集群并登錄其Manager
2.創建角色和用戶
3.執行MapReduce程序
4.執行Spark程序
5.執行Hive程序
創建安全集群并登錄其Manager
1.創建安全集群,請參見創建自定義集群頁面,開啟“Kerberos認證”參數開關,并配置“密碼”、“確認密碼”參數。該密碼用于登錄Manager,請妥善保管。
2.登錄翼MR管理控制臺頁面。
3.單擊“集群列表”,在“現有集群”列表,單擊指定的集群名稱,進入集群信息頁面。
4.單擊“集群管理頁面”后的“前往Manager”,打開Manager頁面。
- 若用戶創建集群時已經綁定彈性公網IP。
a. 添加安全組規則,默認填充的是用戶訪問公網IP地址9022端口的規則。如需對安全組規則進行查看,修改和刪除操作,請單擊“管理安全組規則”。
說明
自動獲取的訪問公網IP與用戶本機IP不一致,屬于正常現象,無需處理 。
9022端口為knox的端口,需要開啟訪問knox的9022端口權限,才能訪問Manager服務 。
b.勾選“我確認xx.xx.xx.xx為可信任的公網訪問IP,并允許從該IP訪問翼MR Manager頁面。”
- 若用戶創建集群時暫未綁定彈性公網IP。
a.在彈性公網IP下拉框中選擇可用的彈性公網IP或單擊“管理彈性公網IP”創建彈性公網IP。
b.添加安全組規則,默認填充的是用戶訪問公網IP地址9022端口的規則。如需對安全組規則進行查看,修改和刪除操作,請點擊“管理安全組規則”。
說明
自動獲取的訪問公網IP與用戶本機IP不一致,屬于正常現象,無需處理 。
9022端口為knox的端口,需要開啟訪問knox的9022端口權限,才能訪問Manager服務 。
c.勾選“我確認xx.xx.xx.xx為可信任的公網訪問IP,并允許從該IP訪問翼MR Manager頁面。”
5.單擊“確定”,進入Manager登錄頁面,如需給其他用戶開通訪問Manager的權限,請參見用戶操作指南訪問集群Manager章節,添加對應用戶訪問公網的IP地址為可信范圍。
6.輸入創建集群時默認的用戶名“admin”及設置的密碼,單擊“登錄”進入Manager頁面。
創建角色和用戶
開啟Kerberos認證的集群,必須通過以下步驟創建一個用戶并分配相應權限來允許用戶執行程序。
1.在Manager界面選擇“系統 > 權限 > 角色”。
2.單擊“添加角色”,詳情請參見下方 創建角色 。
填寫如下信息:
- 填寫角色的名稱,例如mrrole。
- 在“配置資源權限”選擇待操作的集群,然后選擇“Yarn > 調度隊列 > root”,勾選“權限”列中的“提交”和“管理”,勾選完全后,不要單擊確認,要單擊如下圖的待操作的集群名,再進行后面權限的選擇。
- 選擇“HBase > HBase Scope > global”,勾選“權限”列的“創建”、“讀”、“寫”和“執行”,勾選完全后,不要單擊確認,要單擊如下圖的待操作的集群名,再進行后面權限的選擇。
- 選擇“HDFS > 文件系統 > hdfs://hacluster/”,勾選“權限”列的“讀”、“寫”和“執行”,勾選完全后,不要單擊確認,要單擊如下圖的待操作的集群名,再進行后面權限的選擇。
- 選擇“Hive > Hive讀寫權限 > default”,勾選“權限”列的“查詢”、“刪除”、“插入”和“建表”,單擊“確定”,完成角色的創建。
3.選擇“系統 > 權限 > 用戶組 > 添加用戶組”,為樣例工程創建一個用戶組,例如mrgroup,詳情請參見下方 創建用戶組 。
4.選擇“系統 > 權限 > 用戶 > 添加用戶”,為樣例工程創建一個用戶,詳情請參見下方 創建用戶 。
- 填寫用戶名,例如 test ,當需要執行Hive程序時,請設置用戶名為“hiveuser”。
- 用戶類型為“人機”用戶。
- 輸入密碼(特別注意該密碼在后面運行程序時要用到)。
- 加入用戶組mrgroup和supergroup。
- 設置其“主組”為supergroup,并綁定角色mrrole取得權限。
單擊“確定”完成用戶創建。
5.選擇“系統 > 權限 > 用戶”,選擇新建用戶 test ,選擇“更多 > 下載認證憑據”,保存后解壓得到用戶的keytab文件與krb5.conf文件。
執行MapReduce程序
本小節提供執行MapReduce程序的操作指導,旨在指導用戶在安全集群模式下運行程序。
前提條件
已編譯好待運行的程序及對應的數據文件,如mapreduce-examples-1.0.jar、input_data1.txt和input_data2.txt。
操作步驟
1.采用遠程登錄軟件(比如:MobaXterm)通過ssh登錄(使用集群彈性IP登錄)到安全集群的master節點。
2.登錄成功后分別執行下列命令,在/opt/Bigdata/client目錄下創建test文件夾,在test目錄下創建conf文件夾:
cd /opt/Bigdata/client
mkdir test
cd test
mkdir conf
3.使用上傳工具(比如:WinScp)將mapreduce-examples-1.0.jar、input_data1.txt和input_data2.txt復制到test目錄下,將“創建角色和用戶”中的步驟5獲得的keytab文件和krb5.conf文件復制到conf目錄。
4.執行如下命令配置環境變量并認證已創建用戶,例如test。
cd /opt/Bigdata/client
source bigdata_env
export YARN_USER_CLASSPATH=/opt/Bigdata/client/test/conf/
kinit test
然后按照提示輸入密碼,無異常提示返回(首次登錄需按照系統提示修改密碼),則完成了用戶的kerberos認證。
5.執行如下命令將數據導入到HDFS中:
cd test
hdfs dfs -mkdir /tmp/input
hdfs dfs -put input_data* /tmp/input
6.執行如下命令運行程序:
yarn jar mapreduce-examples-1.0.jar
com.xxx.bigdata.mapreduce.examples.FemaleInfoCollector /tmp/input
/tmp/mapreduce_output
其中:
/tmp/input指HDFS文件系統中input的路徑。
/tmp/mapreduce_output指HDFS文件系統中output的路徑,該目錄必須不存在,否則會報錯。
7.程序運行成功后,執行 hdfs dfs -ls/tmp/mapreduce_output會顯示如下:
詳見下圖:查看程序運行結果

執行Spark程序
本小節提供執行Spark程序的操作指導,旨在指導用戶在安全集群模式下運行程序。
前提條件
已編譯好待運行的程序及對應的數據文件,如FemaleInfoCollection.jar、input_data1.txt和input_data2.txt。
操作步驟
1.采用遠程登錄軟件(比如:MobaXterm)通過ssh登錄(使用集群彈性IP登錄)到安全集群的master節點。
2.登錄成功后分別執行下列命令,在/opt/Bigdata/client目錄下創建test文件夾,在test目錄下創建conf文件夾:
cd /opt/Bigdata/client
mkdir test
cd test
mkdir conf
3.使用上傳工具(比如:WinScp)將樣FemaleInfoCollection.jar、input_data1.txt和input_data2.txt復制到test目錄下,將“創建角色和用戶”中的步驟5獲得的keytab文件和krb5.conf文件復制到conf目錄。
4.執行如下命令配置環境變量并認證已創建用戶,例如test。
cd /opt/Bigdata/client
source bigdata_env
export YARN_USER_CLASSPATH=/opt/Bigdata/client/test/conf/
kinit test
然后按照提示輸入密碼,無異常提示返回,則完成了用戶的kerberos認證。
5.執行如下命令將數據導入到HDFS中:
cd test
hdfs dfs -mkdir /tmp/input
hdfs dfs -put input_data* /tmp/input
6.執行如下命令運行程序:
cd /opt/Bigdata/client/Spark/spark
bin/spark-submit --class com.xxxx.bigdata.spark.examples.FemaleInfoCollection
--master yarn-client /opt/Bigdata/client/test/FemaleInfoCollection-1.0.jar
/tmp/input
7.程序運行成功后,會顯示如下:
詳見下圖:程序運行結果

執行Hive程序
本小節提供執行Hive程序的操作指導,旨在指導用戶在安全集群模式下運行程序。
前提條件
已編譯好待運行的程序及對應的數據文件,如hive-examples-1.0.jar、input_data1.txt和input_data2.txt。
操作步驟
1.采用遠程登錄軟件(比如:MobaXterm)通過ssh登錄(使用集群彈性IP登錄)到安全集群的master節點。
2.登錄成功后分別執行下列命令,在/opt/Bigdata/client目錄下創建test文件夾,在test目錄下創建conf文件夾:
cd /opt/Bigdata/client
mkdir test
cd test
mkdir conf
3.使用上傳工具(比如:WinScp)將樣FemaleInfoCollection.jar、input_data1.txt和input_data2.txt復制到test目錄下,將“創建角色和用戶”中的步驟5獲得的keytab文件和krb5.conf文件復制到conf目錄。
4.執行如下命令配置環境變量并認證已創建用戶,例如test。
cd /opt/Bigdata/client
source bigdata_env
export YARN_USER_CLASSPATH=/opt/Bigdata/client/test/conf/
kinit test
然后按照提示輸入密碼,無異常提示返回,則完成了用戶的kerberos認證。
5.執行如下命令運行程序:
chmod +x /opt/hive_examples -R
cd /opt/hive_examples java -cp
.:hive-examples-1.0.jar:/opt/hive_examples/conf:/opt/Bigdata/client/Hive/Beeline/lib/*:/opt/Bigdata/client/HDFS/hadoop/lib/*
com.xxxx.bigdata.hive.example.ExampleMain
6.程序運行成功后,會顯示如下:
詳見下圖: 程序運行的結果
