Spark on YARN的部署
Spark on YARN的原理就是依靠yarn来调度Spark,比默认的Spark运行模式性能要好的多,前提是首先部署好hadoop HDFS并且运行在yarn上,然后就可以开始部署spark on yarn了,假设现在准备环境已经部署完毕,这里是在CDH 环境下部署Spark
除了上面的环境准备,安装Spark前,还应该保证Scala正常安装,基于Scala的情况下,就可以开始部署Spark了,
首先还是解压Spark,安装位置就是/bigdata/spark
tar -xvzf spark-1.6.2-bin-hadoop2.6.tgz mv spark-1.6.2-bin-hadoop2.6 /bigdata/ ln -s /bigdata/spark-1.6.2-bin-hadoop2.6 /bigdata/spark cd /bigdata/spark
这里为了方便升级,使用/bigdata/sprak指向具体的spark目录,接下来可以配置环境变量,以方便随时输入命令来提交相关程序,直接在环境变量配置文件的PATH变量最后追加 :/bigdata/spark/bin 即可配置,配置完成后source一下即可生效
然后同样是处理配置文件:
cp conf/spark-env.sh.template conf/spark-env.sh cp conf/slaves.template conf/slaves
这时slaves不用做任何修改默认即可,如果有多台spark,也可以配置除master之外的主机名列表,这个不用配置也可以
执行 vim conf/spark-env.sh 编辑配置文件,在最后追加如下配置:
# JDK目录 export JAVA_HOME=/usr/local/java/jdk1.8.0_73 # Scala目录 export SCALA_HOME=/usr/local/scala/scala-2.11.8 # Master IP地址 export SPARK_MASTER_IP=192.168.0.187 # Worker运行内存 export SPARK_WORKER_MEMORY=2G # hadoop配置文件目录 cdh中默认是如下目录 这个hadoop必须运行在yarn上 spark才能直接通过此配置文件目录通过yarn进行调度 export HADOOP_CONF_DIR=/etc/hadoop/conf # spark master端口 默认7077 下面是可选的 export SPARK_MASTER_PORT=7077 # 此项默认 也是可选的 export MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}
配置完这些项之后,spark就可以跑在yarn上了,到这里就部署完了,也没必要启动spark的master和slaves服务,因为是靠yarn进行任务调度,所以直接提交任务即可