如何在CDH集羣外配置Kerberos環境的Spark2和Kafka客戶端環境

本篇文章Fayson主要介紹如何在CDH集群外配置Spark2和Kafka的客戶端環境。

  • 內容概述:

1.部署環境說明

2.配置Spark2和Kafka客戶端環境及測試

3.總結

相信看到這裡的有很多是想學習瞭解大數據的,關注摳腳小哥,私信【學習】可以領取一整套的大數據學習資料哦。

  • 測試環境:

1.CM和CDH版本為5.14.2

2.操作系統為RedHat7.3

3.操作用戶root

  • 前置條件:

1.集群外節點與集群網絡正常

2.環境說明


集群外節點:

IP地址

HostName

操作系統

172.27.0.5

cdh05.fayson.com

RedHat7.3

集群環境:

IP地址

HostName

操作系統

172.27.0.4

cdh01.fayson.com

RedHat7.3

172.27.0.11

cdh02.fayson.com

RedHat7.3

172.27.0.7

cdh03.fayson.com

RedHat7.3

172.27.0.3

cdh04.fayson.com

RedHat7.3

cdh05.fayson.com節點並未添加到CM中:

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

3.部署Spark2及Kafka客戶端環境


1.將集群的hosts文件同步至該Gateway節點(cdh05.fayson.com)

[root@cdh01 ~]# scp /etc/hosts cdh05.fayson.com:/etc/

(可左右滑動)

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

2.集群啟用了Kerberos,所以需要在(cdh05.fayosn.com)節點安裝Kerberos客戶端,執行如下命令

[root@cdh05 ~]# yum -y install krb5-libs krb5-workstation

(可左右滑動)

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

將集群KDC服務器上的/etc/krb5.conf文件拷貝至(cdh05.fayson.com)節點的/etc目錄下

[root@cdh01 ~]# scp /etc/krb5.conf cdh05.fayson.com:/etc/

(可左右滑動)

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

在(cdh05.fayson.com)節點上查看文件是否已拷貝成功

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

測試Kerberos客戶端是否正常使用

[root@cdh05 ~]# kinit fayson[root@cdh05 ~]# klist

(可左右滑動)

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

3.登錄集群任意節點,將集群的Java目錄拷貝至(cdh05.fayson.com)節點的/usr/java目錄下

[root@cdh01 conf]# scp -r /usr/java/jdk1.8.0_131/ cdh05.fayson.com:/usr/java/

(可左右滑動)

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

注意:JDK的安裝目錄與集群的JDK目錄一致。

4.登錄CDH集群的任意節點,將/opt/cloudera/parcels目錄下的SPARK2和KAFKA目錄壓縮並拷貝至(cdh05.fayson.com)節點

[root@cdh01 ~]# cd /opt/cloudera/parcels/[root@cdh01 parcels]# tar -czvf SPARK2-2.2.0.cloudera2-1.cdh5.12.0.p0.232957.tar.gz SPARK2-2.2.0.cloudera2-1.cdh5.12.0.p0.232957[root@cdh01 parcels]# tar -czvf KAFKA-2.2.0-1.2.2.0.p0.68.tar.gz KAFKA-2.2.0-1.2.2.0.p0.68/

(可左右滑動)

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

相信看到這裡的有很多是想學習瞭解大數據的,關注摳腳小哥,私信【學習】可以領取一整套的大數據學習資料哦。

將Spark2和Kafka的壓縮包拷貝至cdh05.fayosn.com服務器的/opt/cloudera/parcels目錄下:

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

將/etc目錄下spark2和kafka目錄壓縮

[root@cdh01 etc]# cd /etc/[root@cdh01 etc]# tar -czvf spark2.tar.gz spark2[root@cdh01 etc]# tar -czvf kafka.tar.gz kafka/

(可左右滑動)

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

將spark2.tar.gz和kafka.tar.gz壓縮包拷貝至cdh05.fayosn.com的/etc目錄下

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

5.登錄(cdh05.fayson.com)節點的服務器上,創建/opt/cloudera/parcels目錄,並將cdh.tar.gz解壓至該目錄下

[root@cdh05 ~]# cd /opt/cloudera/parcels/[root@cdh05 parcels]# tar -zxvf SPARK2-2.2.0.cloudera2-1.cdh5.12.0.p0.232957.tar.gz[root@cdh05 parcels]# tar -zxvf KAFKA-2.2.0-1.2.2.0.p0.68.tar.gz

(可左右滑動)

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

為解壓出來的SPARK2和KAFKA目錄創建軟連

[root@cdh05 parcels]# pwd[root@cdh05 parcels]# ln -s SPARK2-2.2.0.cloudera2-1.cdh5.12.0.p0.232957 SPARK2[root@cdh05 parcels]# ln -s KAFKA-2.2.0-1.2.2.0.p0.68 KAFKA

(可左右滑動)

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

進入到/etc目錄下,將spark2.tar.gz和kafka.tar.gz壓縮包解壓至當前目錄

[root@cdh05 parcels]# cd /etc/[root@cdh05 etc]# tar -zxvf spark2.tar.gz [root@cdh05 etc]# tar -zxvf kafka.tar.gz 

(可左右滑動)

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

分別進入kafka和spark2目錄下刪除相應的軟連接,重新創建新的軟連

[root@cdh05 etc]# cd spark2[root@cdh05 spark2]# rm -rf conf[root@cdh05 spark2]# ln -s conf.cloudera.spark2_on_yarn/ conf[root@cdh05 spark2]# ll

(可左右滑動)

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

[root@cdh05 spark2]# cd ../kafka/[root@cdh05 kafka]# rm -rf conf[root@cdh05 kafka]# ln -s conf.cloudera.kafka/ conf

(可左右滑動)

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

6.在cdh05.fayson.com節點配置Spark2和Kafka的環境變量

修改/etc/profile配置文件,在文件的末尾增加如下配置:

export SPARK2_HOME=/opt/cloudera/parcels/SPARK2export PATH=$SPARK2_HOME/bin:$PATHexport KAFKA_HOME=/opt/cloudera/parcels/KAFKAexport PATH=$KAFKA_HOME/bin:$PATH

(可左右滑動)

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

修改後執行如下命令是環境變量生效:

[root@cdh05 ~]# source /etc/profile

4.部署Spark2及Kafka客戶端命令驗證


1.使用Kerberos賬號進行kinit操作

[root@cdh05 ~]# kinit fayson [root@cdh05 ~]# klist
如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

2.執行Spark2-shell命令

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

spark2-shell命令執行成功,通過CM查看Yarn作業

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

在未執行kinit操作時執行spark2-shell命令提示認證失敗錯誤,如下圖:

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

3.使用spark2-submit命令向集群提交一個spark作業

spark2-submit --class org.apache.spark.examples.SparkPi \ --master yarn-client --num-executors 4 --driver-memory 2g \ --driver-cores 1 --executor-memory 2g --executor-cores 1 \ /opt/cloudera/parcels/SPARK2/lib/spark2/examples/jars/spark-examples_2.11-2.2.0.cloudera2.jar 10
如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

通過Yarn界面查看,作業執行成功

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

4.測試Kafka命令,列出Kafka的所有topic

[root@cdh05 hadoop]# kafka-topics --list --zookeeper cdh01.fayson.com
如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

命令執行成功。

5.總結


1.本篇文章在前面配置Gateway的文章基礎上進行配置,如果為配置Hadoop等相關服務的Gateway則會導致Spark2無法加載Hadoop的依賴包等異常。

2.在使用Spark2-submit提交Spark作業時遇到“Exception running/etc/hadoop/conf.cloudera.yarn/topology.py”異常,由於前面的文章Fayson是直接將Hadoop的相關配置拷貝至/etc/hadoop/conf目錄下,需要將與集群的目錄配置一致,如下截圖:

如何在CDH集群外配置Kerberos環境的Spark2和Kafka客戶端環境

相信看到這裡的有很多是想學習瞭解大數據的,關注摳腳小哥,私信【學習】可以領取一整套的大數據學習資料哦。

為避免其他服務也出現該異常,也以同樣的方式配置。

3.在kerberos環境下配置客戶端環境,需要在集群外節點安裝Kerberos客戶端並配置/etc/krb5.conf文件。

4.Kerberos環境下要為JDK安裝JCE,否則訪問集群會報錯。


分享到:


相關文章: