spark yarn模式还用开启master,worker进程吗?

目录

spark standlone集群部署

spark yarn 集群部署时

spark yarn模式还用开启master,worker进程吗?


spark standlone集群部署

下载解压,进入官方下载地址下载最新版 Spark。

下载spark-1.6.1-bin-hadoop2.6.tar.gz。

解压: tar -xvf spark-1.6.1-bin-hadoop2.6.tar.gz

配置 Spark

cd spark-1.6.1-bin-hadoop2.6/conf    #进入spark配置目录

cp spark-env.sh.template spark-env.sh  #从配置模板复制

vim spark-env.sh    #添加配置内容

在spark-env.sh末尾添加以下内容(这是我的配置,你可以自行修改):

export SPARK_HOME=/home/fang/spark-1.6.1-bin-hadoop2.6
export SCALA_HOME=/home/fang/scala-2.10.6
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_77
export HADOOP_HOME=/home/fang/hadoop-2.7.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
     :$HADOOP_HOME/sbin:$SCALA_HOME/bin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$YARN_HOME/etc/hadoop
export SPARK_MASTER_IP=218.199.92.227
SPARK_LOCAL_DIRS=/home/fang/spark-1.6.1-bin-hadoop2.6
SPARK_DRIVER_MEMORY=1G
export SPARK_LIBARY_PATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
      :$HADOOP_HOME/lib/native

注:在设置Worker进程的CPU个数和内存大小,要注意机器的实际硬件条件,如果配置的超过当前Worker节点的硬件条件,Worker进程会启动失败。

vim slaves在slaves文件下填上slave主机名:

slave1
slave2

将配置好的spark-1.6.1-bin-hadoop2.6文件夹分发给所有slaves吧

scp -r ~/spark-1.6.1-bin-hadoop2.6 fang@fang-cenos:~/

启动Spark ,sbin/start-all.sh

验证 Spark 是否安装成功

主节点上启动了Master进程:

在 slave 上启动了Worker进程:

spark yarn模式还用开启master,worker进程吗?_第1张图片

执行命令:

bin/spark-shell --executor-memory 1g --driver-memory 1g --master spark://192.168.0.187:7077

 

spark yarn 集群部署时

vim spark-env.sh    #添加配置内容

在spark-env.sh末尾添加以下内容(这是我的配置,你可以自行修改):

export JAVA_HOME=/home/mmtrix/local/jdk/jdk1.7.0_65
export HADOOP_HOME=/home/mmtrix/Application/Gosun/enterprise/hadoop/hadoop-2.6.0-cdh5.4.1
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=www.migu-cdn-biz18.migu01.mmtrix.com:2181,www.migu-cdn-biz19.migu01.mmtrix.com:2181,www.migu-cdn-biz20.migu01.mmtrix.com:2181 -Dspark.deploy.zookeeper.dir=/spark"

### Let's run everything with JVM runtime, instead of Scala
export SPARK_LAUNCH_WITH_SCALA=0
export SPARK_LIBRARY_PATH=${SPARK_HOME}/lib
export SCALA_LIBRARY_PATH=${SPARK_HOME}/lib
export SPARK_MASTER_WEBUI_PORT=18080
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_PORT=7078
export SPARK_WORKER_WEBUI_PORT=18081
export SPARK_WORKER_DIR=/var/run/spark/work
export SPARK_LOG_DIR=/var/log/spark
export SPARK_PID_DIR='/var/run/spark/'
export SPARK_LOCAL_DIRS=/data/data4/spark/tmp,/data/data5/spark/tmp,/data/data6/spark/tmp
export SPARK_WORKER_CORES=7
export SPARK_WORKER_MEMORY=42g

spark yarn模式还用开启master,worker进程吗?

不要启动sbin/start-all.sh, 去开启master,worker进程。

hadoop yarn和spark进程它们两使用一个就好了,同时使用两个会有资源竞争的问题。

spark on yarn-cluster提交任务

./bin/spark-submit --class com.mmtrix.scala.server.SparkDataServerForHbase --master yarn --deploy-mode cluster --driver-memory 1G --executor-memory 1G --executor-cores 1 /sparkHBase-1.0-SNAPSHOT.jar 40

spark yarn模式还用开启master,worker进程吗?_第2张图片

Spark on YARN 支持两种运行模式,分别为yarn-clusteryarn-clientyarn-cluster适用于生产环境;而yarn-client适用于交互和调试,因为能在客户端终端看到程序输出。

对比一下两种模式

1、yarn-client用于测试,因为driver运行在本地客户端,负责调度aplication,会与yarn集群产生大量的网络通信,从而导致网卡流量激增。好处在于,直接执行时,本地可以看到所有的log,方便调试。

2、yarn-cluster用于生产环境,因为driver运行在nodemanager,没有网卡流量激增的问题,缺点在于调试不方便,本地用spark-submit提交之后,看不到log,只能通过yarn application -logs application_id 这种命令来查看,不方便。

 

参考:https://zhuanlan.zhihu.com/p/61902619

https://blog.csdn.net/u010638969/article/details/51283216

 

你可能感兴趣的:(spark,部署)