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.1、hduser用戶測試
安裝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獲取了票據以后,可以省略這兩個參數。