本篇文章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中:
3.部署Spark2及Kafka客戶端環境
1.將集群的hosts文件同步至該Gateway節點(cdh05.fayson.com)
[root@cdh01 ~]# scp /etc/hosts cdh05.fayson.com:/etc/
(可左右滑動)
2.集群啟用了Kerberos,所以需要在(cdh05.fayosn.com)節點安裝Kerberos客戶端,執行如下命令
[root@cdh05 ~]# yum -y install krb5-libs krb5-workstation
(可左右滑動)
將集群KDC服務器上的/etc/krb5.conf文件拷貝至(cdh05.fayson.com)節點的/etc目錄下
[root@cdh01 ~]# scp /etc/krb5.conf cdh05.fayson.com:/etc/
(可左右滑動)
在(cdh05.fayson.com)節點上查看文件是否已拷貝成功
測試Kerberos客戶端是否正常使用
[root@cdh05 ~]# kinit fayson[root@cdh05 ~]# klist
(可左右滑動)
3.登錄集群任意節點,將集群的Java目錄拷貝至(cdh05.fayson.com)節點的/usr/java目錄下
[root@cdh01 conf]# scp -r /usr/java/jdk1.8.0_131/ cdh05.fayson.com:/usr/java/
(可左右滑動)
注意: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/
(可左右滑動)
相信看到這裡的有很多是想學習瞭解大數據的,關注摳腳小哥,私信【學習】可以領取一整套的大數據學習資料哦。
將Spark2和Kafka的壓縮包拷貝至cdh05.fayosn.com服務器的/opt/cloudera/parcels目錄下:
將/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/
(可左右滑動)
將spark2.tar.gz和kafka.tar.gz壓縮包拷貝至cdh05.fayosn.com的/etc目錄下
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
(可左右滑動)
為解壓出來的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
(可左右滑動)
進入到/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
(可左右滑動)
分別進入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
(可左右滑動)
[root@cdh05 spark2]# cd ../kafka/[root@cdh05 kafka]# rm -rf conf[root@cdh05 kafka]# ln -s conf.cloudera.kafka/ conf
(可左右滑動)
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
(可左右滑動)
修改後執行如下命令是環境變量生效:
[root@cdh05 ~]# source /etc/profile
4.部署Spark2及Kafka客戶端命令驗證
1.使用Kerberos賬號進行kinit操作
[root@cdh05 ~]# kinit fayson [root@cdh05 ~]# klist
2.執行Spark2-shell命令
spark2-shell命令執行成功,通過CM查看Yarn作業
在未執行kinit操作時執行spark2-shell命令提示認證失敗錯誤,如下圖:
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
通過Yarn界面查看,作業執行成功
4.測試Kafka命令,列出Kafka的所有topic
[root@cdh05 hadoop]# kafka-topics --list --zookeeper cdh01.fayson.com
命令執行成功。
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目錄下,需要將與集群的目錄配置一致,如下截圖:
相信看到這裡的有很多是想學習瞭解大數據的,關注摳腳小哥,私信【學習】可以領取一整套的大數據學習資料哦。
為避免其他服務也出現該異常,也以同樣的方式配置。
3.在kerberos環境下配置客戶端環境,需要在集群外節點安裝Kerberos客戶端並配置/etc/krb5.conf文件。
4.Kerberos環境下要為JDK安裝JCE,否則訪問集群會報錯。
閱讀更多 摳腳程序員 的文章