一、 准备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