1. 程式人生 > 實用技巧 >開啟Kerberos認證叢集(轉發)

開啟Kerberos認證叢集(轉發)

原文:

https://support.huaweicloud.com/qs-mrs/mrs_09_0003.html

本文導讀

本章節提供從零開始使用安全叢集並執行MapReduce程式、Spark程式和Hive程式的操作指導。

本指導的基本內容如下所示:

  1. 建立安全叢集並登入其Manager
  2. 建立角色和使用者
  3. 執行MapReduce程式
  4. 執行Spark程式
  5. 執行Hive程式

建立安全叢集並登入其Manager

當叢集版本為MRS 1.8.0及以後版本時,執行如下步驟:

  1. 建立安全叢集,請參見
    建立叢集
    頁面,開啟“Kerberos認證”引數開關,並配置“密碼”、“確認密碼”引數。該密碼用於登入MRS Manager,請妥善保管。

    圖1安全叢集引數配置
  2. 登入MRS管理控制檯頁面。
  3. 單擊“叢集列表”,在“現有叢集”列表,單擊指定的叢集名稱,進入叢集資訊頁面。
  4. 單擊“點選管理”,開啟“訪問MRS Manager頁面”。

    • 若使用者建立叢集時已經繫結彈性公網IP,如圖2所示。
      1. 新增安全組規則,預設填充的是使用者訪問公網IP地址9022埠的規則。如需對安全組規則進行檢視,修改和刪除操作,請單擊“管理安全組規則”。 說明:
        • 自動獲取的訪問公網IP與使用者本機IP不一致,屬於正常現象,無需處理。
        • 9022埠為knox的埠,需要開啟訪問knox的9022埠許可權,才能訪問MRS Manager服務。
      2. 勾選“我確認xx.xx.xx.xx為可信任的公網訪問IP,並允許從該IP訪問MRS Manager頁面。” 圖2訪問MRS Manager頁面
    • 若使用者建立叢集時暫未繫結彈性公網IP,如圖3所示。
      1. 在彈性公網IP下拉框中選擇可用的彈性公網IP或單擊“管理彈性公網IP”購買彈性公網IP。
      2. 新增安全組規則,預設填充的是使用者訪問公網IP地址9022埠的規則。如需對安全組規則進行檢視,修改和刪除操作,請點選“管理安全組規則”。 說明:
        • 自動獲取的訪問公網IP與使用者本機IP不一致,屬於正常現象,無需處理。
        • 9022埠為knox的埠,需要開啟訪問knox的9022埠許可權,才能訪問MRS Manager服務。
      3. 勾選“我確認xx.xx.xx.xx為可信任的公網訪問IP,並允許從該IP訪問MRS Manager頁面。”
      圖3訪問MRS Manager頁面設定
  5. 單擊“確定”,進入MRS Manager登入頁面,如需給其他使用者開通訪問MRS Manager的許可權,請參見訪問Manager章節,新增對應使用者訪問公網的IP地址為可信範圍。
  6. 輸入建立叢集時預設的使用者名稱“admin”及設定的密碼,單擊“登入”進入MRS Manager頁面。

當叢集版本為MRS 1.8.0以前版本時,執行如下步驟:

  1. 建立安全叢集,請參見建立叢集頁面,開啟“Kerberos認證”引數開關,並配置“密碼”、“確認密碼”引數。該密碼用於登入MRS Manager,請妥善保管。

    圖4安全叢集引數設定
  2. 在MRS管理控制檯,單擊“叢集列表”。

    說明:
  3. “現有叢集”列表中,單擊已建立的安全叢集名稱。

    記錄叢集的“可用區”、“虛擬私有云”、“叢集控制檯地址”,以及Master節點的“預設安全組”。

  4. 在彈性雲伺服器管理控制檯,建立一個新的彈性雲伺服器。

    • 彈性雲伺服器的“可用區”、“虛擬私有云”、“安全組”,需要和待訪問叢集的配置相同。
    • 選擇一個Windows系統的公共映象。
    • 其他配置引數詳細資訊,請參見購買彈性雲伺服器
    說明:

    如果彈性雲伺服器的安全組和Master節點的“預設安全組”不同,使用者可以選擇以下任一種方法修改配置:

    • 將彈性雲伺服器的安全組修改為Master節點的預設安全組,請參見更改安全組
    • 在叢集Master節點和Core節點的安全組新增兩條安全組規則使彈性雲伺服器可以訪問叢集,“協議”需選擇為“TCP”,“埠”需分別選擇“28443”和“20009”。請參見建立安全組

  5. 在虛擬私有云管理控制檯,申請一個彈性IP地址,並與彈性雲伺服器繫結。

    具體請參見為彈性雲伺服器申請和繫結彈性公網IP

  6. 登入彈性雲伺服器。

    登入彈性雲伺服器需要Windows系統的帳號、密碼,彈性IP地址以及配置安全組規則。具體請參見Windows雲伺服器登入方式

  7. 在Windows的遠端桌面中,開啟瀏覽器訪問Manager。

    例如Windows 2012作業系統可以使用Internet Explorer 11。

    Manager訪問地址形式為https://叢集控制檯地址:28443/web。叢集控制檯地址為3中記錄的“叢集控制檯地址”,訪問時需要輸入MRS叢集的使用者名稱和密碼,例如“admin”使用者,密碼為1建立叢集時開啟“Kerberos認證”引數開關時輸入的密碼。

    說明:
    • 如果使用其他MRS叢集使用者訪問Manager,第一次訪問時需要修改密碼。新密碼需要滿足叢集當前的使用者密碼複雜度策略。請諮詢管理員。
    • 預設情況下,在登入時輸入5次錯誤密碼將鎖定使用者,需等待5分鐘自動解鎖。

建立角色和使用者

開啟Kerberos認證的叢集,必須通過以下步驟建立一個使用者並分配相應許可權來允許使用者執行程式。

  1. 在MRS Manager介面選擇系統設定>角色管理”。
  2. 單擊“新增角色”,詳情請參見建立角色

    圖5新增角色

    填寫如下資訊:

    • 填寫角色的名稱,例如mrrole。
    • “許可權”的表格中選擇“Yarn > Scheduler Queue > root”,勾選“Submit”、“Admin”,勾選完全後,不要單擊確認,要單擊如下圖的“服務”,再進行後面許可權的選擇。
    • “許可權”表格中選擇“HBase > HBase Scope”,勾選global的“Create”、“Read”、“Write”、“Execute”,勾選完全後,不要單擊確認,要單擊如下圖的“服務”,再進行後面許可權的選擇。
    • “許可權”的表格中選擇“HDFS > File System > hdfs://hacluster/”,勾選“Read”、“Write”和“Execute”,勾選完全後,不要單擊確認,要單擊如下圖的“服務”,再進行後面許可權的選擇。
    • “許可權”的表格中選擇“Hive > Hive Read Write Privileges”,勾選default的“Create”、“Select”、“Delete”、“Insert”,單擊“確定”,完成角色的建立。 圖6配置服務許可權
  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,MapReduce程式開發及資料準備請參見MapReduce應用開發

  1. 採用遠端登入軟體(比如:MobaXterm)通過ssh登入(使用叢集彈性IP登入)到安全叢集的master節點。
  2. 登入成功後分別執行下列命令,在/opt/client目錄下建立test資料夾,在test目錄下建立conf資料夾:

    cd /opt/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/client
    source bigdata_env
    export YARN_USER_CLASSPATH=/opt/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.huawei.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會顯示如下:

    圖7檢視程式執行結果

執行Spark程式

本小節提供執行Spark程式的操作指導,旨在指導使用者在安全叢集模式下執行程式。

前提條件

已編譯好待執行的程式及對應的資料檔案,如FemaleInfoCollection.jar、input_data1.txt和input_data2.txt,Spark程式開發及資料準備請參見Spark應用開發

  1. 採用遠端登入軟體(比如:MobaXterm)通過ssh登入(使用叢集彈性IP登入)到安全叢集的master節點。
  2. 登入成功後分別執行下列命令,在/opt/client目錄下建立test資料夾,在test目錄下建立conf資料夾:

    cd /opt/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/client
    source bigdata_env
    export YARN_USER_CLASSPATH=/opt/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/client/Spark/spark
    bin/spark-submit --class com.huawei.bigdata.spark.examples.FemaleInfoCollection --master yarn-client /opt/client/test/FemaleInfoCollection-1.0.jar /tmp/input

  7. 程式執行成功後,會顯示如下:

    圖8程式執行結果

執行Hive程式

本小節提供執行Hive程式的操作指導,旨在指導使用者在安全叢集模式下執行程式。

前提條件

已編譯好待執行的程式及對應的資料檔案,如hive-examples-1.0.jar、input_data1.txt和input_data2.txt,Hive程式開發及資料準備請參見Hive應用開發

  1. 採用遠端登入軟體(比如:MobaXterm)通過ssh登入(使用叢集彈性IP登入)到安全叢集的master節點。
  2. 登入成功後分別執行下列命令,在/opt/client目錄下建立test資料夾,在test目錄下建立conf資料夾:

    cd /opt/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/client
    source bigdata_env
    export YARN_USER_CLASSPATH=/opt/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/client/Hive/Beeline/lib/*:/opt/client/HDFS/hadoop/lib/* com.huawei.bigdata.hive.example.ExampleMain

  6. 程式執行成功後,會顯示如下:

    圖9程式執行的結果