一、 準備3臺虛擬機 master slaves1 slaves2
修改hostname hosts
二、 java :1.8
scala :scala-2.12.12.tgz
spark :spark-2.4.6-bin-hadoop2.7.tgz (虛機位置相同)
環境變量:
export JAVA_HOME=/root/tools/jdk1.8.0_161
export SCALA_HOME=/root/tools/scala-2.12.12
export JRE_HOME=${JAVA_HOME}/jre
export SPARK_HOME=/root/tools/spark-2.4.6-bin-hadoop2.7
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH
export PATH=$SCALA_HOME/bin:$PATH
export PATH=$SPARK_HOME/bin:$PATH
三、安裝 ssh 設置虛機免密登錄
安裝:yum install openssh-server
開啓:service sshd start
cd /etc/.ssh 在master的linux上生成ssh密鑰: ssh-keygen -t rsa 直接回車3次 , 複製祕鑰到 slaves1 slaves2 虛機 命令:ssh-copy-id 192.168.1.1
vim /etc/ssh/sshd_config 關閉域名DNS解析 文件中
UseDNS no
測試命令 ssh 192.168.1.1 或者 ssh master 看是否能遠程
同理,slaves1和slaves2同以上操作!
四、關閉防火牆 開放端口8080 7077 8081 7777
1、開啓防火牆
systemctl start firewalld
2、開放指定端口
firewall-cmd --zone=public --add-port=1935/tcp --permanent
命令含義:
--zone #作用域
--add-port=1935/tcp #添加端口,格式爲:端口/通訊協議
--permanent #永久生效,沒有此參數重啓後失效
3、重啓防火牆
firewall-cmd --reload
4、查看端口號
netstat -ntlp //查看當前所有tcp端口·
netstat -ntulp |grep 1935 //查看所有1935端口使用情況·
5、關閉防火牆
systemctl stop firewalld.service
五、/root/tools/spark-2.4.6-bin-hadoop2.7/conf
複製spark-env.sh.template ---- spark-env.sh slaves.template ----slaves
在spark-env.sh 增加:
export SPARK_MASTER_IP=192.168.235.128
export SPARK_MASTER_HOST=master
export SPARK_MASTER_PORT=7077
export JAVA_HOME=/root/tools/jdk1.8.0_161
export PATH=$PATH:$JAVA_HOME/bin
在slaves 增加
slaves1
slaves2
兩個文件複製到slaves1、slaves2
六、啓動或停止spark命令
啓動:./start-master.sh,./start-slave.sh 或者./start-all.sh
停止:./stop-all.sh
七、打開webUI界面 http://ip:8080/
八、執行案例
spark bin目錄
./spark-submit --master spark://master:7077 --deploy-mode cluster --class org.apache.spark.examples.JavaWordCount ../examples/jars/spark-examples_2.11-2.4.6.jar 100
九、開啓日誌及查詢歷史日誌
spark-env.sh文件
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=7777 -Dspark.history.retainedApplications=10 -Dspark.history.fs.logDirectory=/root/tools/directory -Dspark.history.provider=org.apache.spark.deploy.history.FsHistoryProvider"
spark-defaults.conf文件
spark.eventLog.enabled true
spark.eventLog.dir /root/tools/directory
spark.eventLog.compress true
啓動成功後可以訪問driver節點的7777端口,查看歷史記錄 http://slaves1:7777/
十、定時清理work裏的內容
spark-env.sh文件中
export SPARK_WORKER_OPTS="
-Dspark.worker.cleanup.enabled=true # 是否開啓自動清理
-Dspark.worker.cleanup.interval=1800 # 清理週期,每隔多長時間清理一次,單位秒
-Dspark.worker.cleanup.appDataTtl=3600" # 保留最近多長時間的數據
十一、spark-defaults.conf文件增加清理日誌
#參數指定history-server的日誌是否定時清除,true爲定時清除,false爲不清除
spark.history.fs.cleaner.enabled 默認爲false
#日誌檢查間隔,默認每一天會檢查一下日誌文件
spark.history.fs.cleaner.interval 默認值爲1d
#日誌生命週期,當檢查到某個日誌文件的生命週期爲7d時,則會刪除該日誌文件
spark.history.fs.cleaner.maxAge 默認值爲7d