安装
1、下载软件解压缩,移动到指定位置
cd /opt/software/
tar zxvf spark-2.4.5-bin-without-hadoop-scala-2.12.tgz
mv spark-2.4.5-bin-without-hadoop-scala-2.12/ ../servers/spark-2.4.5/
2、设置环境变量,并使之生效
vi /etc/profile
export SPARK_HOME=/opt/servers/spark-2.4.5 export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
source /etc/profile
3、修改配置
cd $SPARK_HOME/conf
把template文件改成
slaves、spark-defaults.conf、spark-env.sh、log4j.properties more slaves
4、Standalone模式(独立模式)
vim slaves
linux126
linux127
linux128
vim spark-defaults.conf
spark.master spark://linux128:7077
spark.eventLog.enabled true
spark.eventLog.dir hdfs://linux126:9000/spark-eventlog
spark.serializer
org.apache.spark.serializer.KryoSerializer
spark.driver.memory 512m
如果不用hadoop, vim spark-defaults.conf可以配置成
spark.master spark://linux128:7077
spark.driver.memory 512m
vim spark-env.sh
export JAVA_HOME=/opt/servers/jdk1.8.0_231
export HADOOP_HOME=/opt/servers/hadoop-2.9.2
export HADOOP_CONF_DIR=/opt/servers/hadoop2.9.2/etc/hadoop
export SPARK_DIST_CLASSPATH=$(/opt/servers/hadoop2.9.2/bin/hadoop classpath)
export SPARK_MASTER_HOST=linux128
export SPARK_MASTER_PORT=7077
复制spark2.4.5到各个节点
cd /opt/lagou/servers/
scp -r spark-2.4.5/ linux122:$PWD
scp -r spark-2.4.5/ linux123:$PW
5、启动集群
在linux128节点上
先启动hdfs和zk
cd $SPARK_HOME/sbin
./start-all.sh
6、验证
http://192.168.226.128:8080/
验证
run-example SparkPi 1000
或者
spark-shell
输入
val lines = sc.textFile("/wc/wc.txt")
lines.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect().foreach(println)
7、History Server
在linux128上
vim spark-defaults.conf
vim $SPARK_HOME/spark-env.sh
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=50 -Dspark.history.fs.logDirectory=hdfs://linux126:9000/spark-eventlog"
修改后,并分发到集群中
启动hdfs
linux128上
cd $SPARK_HOME/sbin
./start-history-server.sh
验证 jps
或者
浏览器访问linux128:18080
8、高可用配置
linux128上 vim $SPARK_HOME/spark-env.sh
复制下面内容
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=linux126,linux127,linux128 -Dspark.deploy.zookeeper.dir=/spark"
分发到其它节点
Spark Standalone集群是 Master-Slaves架构的集群模式,和大部分的MasterSlaves结构集群一样,存着Master单点故障的问题。如何解决这个问题,Spark提供 了两种方案:
(1)基于zookeeper的Standby Master,适用于生产模式。将 Spark 集群连接到 Zookeeper,利用 Zookeeper 提供的选举和状态保存的功能,一个 Master 处于 Active 状态,其他 Master 处于Standby状态; 保证在ZK中的元数据主要是集群的信息,包括:Worker,Driver和Application以及 Executors的信息;
如果Active的Master挂掉了,通过选举产生新的 Active 的 Master,然后执行状态恢 复,整个恢复过程可能需要1~2分钟;
(2)基于文件系统的单点恢复(Single-Node Rcovery with Local File System), 主要用于开发或者测试环境。将 Spark Application 和 Worker 的注册信息保存在文 件中,一旦Master发生故障,就可以重新启动Master进程,将系统恢复到之前的状 态
本文,我们进行方案一
启动集群zookeeper
在linux126上
sh /root/shells/zk.sh start
linux128启动 Spark 集群
$SPARK_HOME/sbin/start-all.sh
在 linux127 上启动master
$SPARK_HOME/sbin/start-master.sh
杀到linux128上 Master 进程,再观察 linux127 上 Master 状态,由 STANDBY
=> RECOVERING => ALIVE
本地模式
关闭集群
cd $SPARK_HOME/sbin
./stop-all.sh
不启动hdfs
vim spark-defaults.conf可以配置成
spark.master spark://linux128:7077
spark.driver.memory 512m
启动 其它linux上的spark
spark-shell --master local
或者
spark-shell --master local[*] 表示两核
val lines = sc.textFile("file:///root/wc/wc.txt")
lines.count
伪分布式
spark-shell --master local-cluster[3,1,256]
集群模式--Yarn模式
需要启动的服务:hdfs服务、yarn服务 historyserver 服务 需要关闭 Standalone 对应的服务(即集群中的Master、Worker进程),一山不容二 虎!