1.上传并且解压spark安装包
2.将解压出来的目录重命名为spark
3.进入spark/conf修改配置文件
1.进入conf目录并且复制spark-env.sh.template并重命名为spark-env.sh,并在文件最后添加如下配置内容
cp spark-env.sh.template spark-env.sh
vi spark-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_191
export SCALA_HOME=/home/hadoop/apps/scala-2.11.8
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.6
export HADOOP_CONF_DIR=/home/hadoop/apps/hadoop-2.7.6/etc/hadoop
export SPARK_WORKER_MEMORY=500m
export SPARK_WORKER_CORES=1
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=ali:2181,tencent:2181,huawei:2181 -Dspark.deploy.zookeeper.dir=/spark"
Dspark.deploy.zookeeper.url后面添加的是ZK中所有可以当master的节点
2.复制slaves.template成slaves添加如下内容
ali
tencent
huawei
3.配置环境变量,如下
export SPARK_HOME=/home/hadoop/apps/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
source /etc/profile
4.由于有的程序中的stat-all.sh和stop-all.sh与spark/sbin中的这两个文件重名,可以将这两个文件重命名,例如修改为stat-allspark.sh和stop-allspark.sh
4.启动
1.启动zookeeper集群
zkServer.sh start(在任意一个节点)
2.启动HDFS集群
start-dfs.sh(在一个节点启动)
3.启动Spark集群
start-allspark.sh
4.jps查看进程
可能只有ali节点成功启动了master,那么可以启动start-master.sh即可
5.验证
现在kill掉alive节点的Master进程
刚才alive的节点无法访问
刚才standby状态的节点进行recovering
现在另外一个节点已经成功启动
完成
standalone模式
只在spark-env.sh中配置如下信息
#指定JAVA_HOME位置
export JAVA_HOME=/usr/local/jdk1.8.0_191
#指定spark老大Master的IP
export SPARK_MASTER_IP=ali
#指定spark老大Master的端口
export SPARK_MASTER_PORT=7077
#指定可用的CPU内核数量(默认:所有可用,实际使用时没有配置最后这两个参数)
export SPARK_WORKER_CORES=1
#作业可使用的内存容量,默认格式为1000m或者2g(默认:所有RAM去掉给操作系统用的1GB)
export SPARK_WORKER_MEMORY=1000m
在启动了hadoop的高可用之后启动start-allspark.sh
启动sparkshell
spark-shell \
--master spark://ali:7077 \
--executor-memory 500m \
--total-executor-cores 1