spark一共有6种运行模式:local,standalone,yarn-cluster,yarn-client, mesos, kubernetes
- local: local 模式即单机模式,如果在命令语句中不加任何配置,则默认是 local 模式,在本地运行。这也是部署、设置最简单的一种模式,所有的 spark 进程都运行在一台机器或一个虚拟机上面。
- standalone: standalone 是 spark 自身实现的资源调度框架。如果我们只使用 spark 进行大数据计算,不使用其他的计算框架时,就采用 standalone 模式就够了,尤其是单用户的情况下。standalone 模式是 spark 实现的资源调度框架,其主要的节点有 client 节点、master 节点和 worker 节点。其中 driver 既可以运行在 master 节点上中,也可以运行在本地 client 端。当用 spark-shell 交互式工具提交 spark 的 job 时,driver 在 master 节点上运行;当使用 spark-submit 工具提交 job 或者在 eclipse、idea 等开发平台上使用
new sparkconf.setmanager(“spark://master:7077”)
方式运行 spark 任务时,driver 是运行在本地 client 端上的。
standalone 模式的部署比较繁琐,不过官方有提供部署脚本,需要把 spark 的部署包安装到每一台节点机器上,并且部署的目录也必须相同,而且需要 master 节点和其他节点实现 ssh 无密码登录。启动时,需要先启动 spark 的 master 和 slave 节点。提交命令类似于:
./bin/spark-submit \
--class org.apache.spark.examples.sparkpi \
--master spark://oscar-2.local:7077 \
/tmp/spark-2.2.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.2.0.jar \
100
其中 master:7077是 spark 的 master 节点的主机名和端口号,当然集群是需要提前启动。
不管使用什么模式,spark应用程序的代码是一模一样的,只需要在提交的时候通过–master参数来指定我们的运行模式即可
- client
driver运行在client端(提交spark作业的机器)
client会和请求到的container进行通信来完成作业的调度和执行,client是不能退出的
日志信息会在控制台输出:便于我们测试 - cluster
driver运行在applicationmaster中
client只要提交完作业之后就可以关掉,因为作业已经在yarn上运行了
日志是在终端看不到的,因为日志是在driver上,只能通过yarn logs -applicationidapplicatio
发表评论