spark集成kerberos


1、生成票據

1.1、創建認證用戶

登陸到kdc服務器,使用root或者可以使用root權限的普通用戶操作:

# kadmin.local -q “addprinc -randkey spark/yjt”

1.2、生成密鑰文件

生成spark密鑰文件

# kadmin.local -q “xst  -norankey  -k  /etc/spark.keytab spark/yjt”

 

拷貝sparkkeytab到所有的spark集群節點的conf目錄下

1.3、修改權限

# chmod 404 /data1/hadoop/spark/conf/spark.keytab

# chown hduser:hduser /data1/hadoop/spark/conf/spark.keytab

2、集群內部測試

2.1、獲取票據

# klint -it /data1/hadoop/spark/conf/spark.keytab spark/yjt

(1)、本地機器測試

# spark-submit  --principal spark/yjt --keytab /data1/hadoop/spark/conf/spark.keytab --class  org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.4.0.jar 10

(2) 、提交到yarn, 模式是client

spark-submit  --principal spark/yjt --keytab /data1/hadoop/spark/conf/spark.keytab --class  org.apache.spark.examples.SparkPi  --master yarn  examples/jars/spark-examples_2.11-2.4.0.jar 10

查看8088信息:

 

 

 

 

(3) 、提交到yarn集群,模式是cluster

# spark-submit  --principal spark/yjt --keytab /data1/hadoop/spark/conf/spark.keytab --class  org.apache.spark.examples.SparkPi  --master yarn --deploy-mode cluster  examples/jars/spark-examples_2.11-2.4.0.jar 10

查看8088信息:

 

 

 

3、客戶端測試

3.1hduser用戶測試

安裝spark或者從集群拷貝一份到客戶端

客戶端測試用戶使用hduser

 

獲取票據

# kinit -kt /data1/hadoop/spark/conf/spark.keytab spark/yjt

 

 

 

(1) 、提交到本地集群

# ./bin/spark-submit  --principal spark/yjt --keytab /data1/hadoop/spark/conf/spark.keytab  --class  org.apache.spark.examples.SparkPi --master spark://192.168.0.230:7077 examples/jars/spark-examples_2.11-2.4.0.jar 10

注意:使用這種方式提交需要在集群里面的hosts文件配置客戶端的主機域名映射關系。

 

 

 

(2) 、提交到yarn,模式client

# ./bin/spark-submit  --principal spark/yjt --keytab /data1/hadoop/spark/conf/spark.keytab  --class  org.apache.spark.examples.SparkPi --master yarn  examples/jars/spark-examples_2.11-2.4.0.jar 10

注:這種方式也需要在集群內部設置客戶端主機名映射關系

(3) 、提交到yarn,模式cluster

# ./bin/spark-submit  --principal spark/yjt --keytab /data1/hadoop/spark/conf/spark.keytab --class  org.apache.spark.examples.SparkPi --master yarn  --deploy-mode cluster  examples/jars/spark-examples_2.11-2.4.0.jar 10

 

 

 

3.2、其他用戶測試

(1)、創建用戶yujt

# useradd -s /bin/bash -m -d /home/yujt -G hduser yujt

# echo “Your Password” | passwd --stdin yujt

(2)、修改spark.keytab權限

# chmod 404 /data1/hadoop/spark/conf/spark.keytab

注: 以上操作root或者sudo,需要root權限

# su -  yujt

(3)、修改yujt這個用戶的環境變量

修改用戶的~/.bashrc文件,添加如下信息:(當然最好是直接修改/etc/profile,這樣在創建用戶的時候就不需要為每個用戶添加環境變量信息)

export JAVA_HOME=/data1/hadoop/jdk

export PATH=${JAVA_HOME}/bin:$PATH

 

export HADOOP_HOME=/data1/hadoop/hadoop

export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH

 

(4) 、測試本地standlone模式

# ./bin/spark-submit  --principal spark/yjt --keytab /data1/hadoop/spark/conf/spark.keytab  --class  org.apache.spark.examples.SparkPi --master spark://192.168.0.230:7077  examples/jars/spark-examples_2.11-2.4.0.jar 10

 

 

 

如上述,執行成功。

(5) 、測試yarn, 部署模式client

# $ ./bin/spark-submit  --principal spark/yjt --keytab /data1/hadoop/spark/conf/spark.keytab  --class  org.apache.spark.examples.SparkPi --master yarn  examples/jars/spark-examples_2.11-2.4.0.jar 10

執行結果如下:

 

 

 

Web界面如下:

 

 

 

(6) 、測試yarn, 部署模式cluster

 

 

 

 

 

注:上述在執行任務的時候,我們使用了--principal --keytab參數,其實,如果使用kinit -kt /data1/hadoop/spark/conf/spark.keytab  spark/yjt獲取了票據以后,可以省略這兩個參數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM