spark有多种模式:主要有以下几种
Standalone Deploy Mode: simplest way to deploy Spark on a private cluster
Apache Mesos
Hadoop YARN
Kubernetes
下面介绍在高可用(HA)集群上搭建standalone的spark集群
搭建前提你已经有了一个高可用的HA集群,如果没有可以参考高可用集群搭建
第一步:下载对应版本的spark,下载地址这里
第二步:解压到相应的目录文件
第三步:修改配置文件,有且仅有三个
(1)spark-env.sh.template
将文件重命名cp spark-env.sh.template spark-env.sh
#java路径,必须配置
export JAVA_HOME=/usr/local/jdk1.8.0_73
#主节点端口号,默认7077
export SPARK_MASTER_PORT=7077
#执行程序的内核数量(默认值:1)
export SPARK_EXECUTOR_CORES = 1
#每个执行程序的内存(例如1000M,2G)(默认值:1G)
export SPARK_EXECUTOR_MEMORY = 1000m
#驱动程序内存(例如1000M,2G)(默认值:1G)
export SPARK_DRIVER_MEMORY = 1000m
#配置zookeeper,必须配置,不能换行
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop02:2181,hadoop0
3:2181,hadoop04:2181 -Dspark.deploy.zookeeper.dir=/spark2.3"
#将Spark指向Hadoop配置文件,必须配置,方便spark加载高可用配置
export HADOOP_CONF_DIR=/home/hadoop/apps/hadoop-2.7.5/etc/hadoop
(2)spark-defaults.conf.template
将文件重命名cp spark-defaults.conf.template spark-defaults.conf
#指定spark的主节点,可以指定多个,用","分割,作为standby,可以进行切换
spark.master spark://hadoop03:7077,hadoop02:7077
如果不指定,默认为本地模式(local)
!!!!将其注释后,可以在命令行手动指定master节点,
(3)slaves.template
重命名文件cp slaves.template slaves
输入worker的节点主机映射名称
hadoop02
hadoop03
hadoop04
hadoop05
第四步:分发测试,如果想方便使用可以配置环境变量
启动测试:
首先启动zookeeper
然后启动hdfs
最后启动spark集群,在sbin目录下使用./start-all.sh命令,备用节点需要手动启动,命令为start-master.sh
至此高可用集群搭建完毕。
通过测试,主备节点可以顺利切换,任务执行时,主节点挂掉,任务任然可以继续运行
yarn集群搭建,在配置文件中将下面去掉注释即可
export YARN_CONF_DIR=/home/hadoop/apps/hadoop-2.7.5/etc/hadoop
修改yarn-site.xml的配置文件,添加
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
<description>Whether virtual memory limits will be enforced for containers</description>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>4</value>
<description>Ratio between virtual memory to physical memory when setting memory limits for containers</description>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
使用命令:
spark-shell --master yarn --deploy-mode client
启动即可
完整搭建连接:
http://www.cnblogs.com/qingyunzong/p/8888080.html