Apache Spark 参数详解

Spark参数详解

spark-shell

spark-shell是Spark自带的交互式Shell程序,方便用户进行交互式编程,
用户可以在该命令行下可以用scala编写spark程序

示例

spark-shell可以携带参数

spark-shell --master local[N] 数字N表示在本地模拟N个线程来运行当前任务

spark-shell --master local[*] *表示使用当前机器上所有可用的资源

默认不携带参数就是–master local[*]

spark-shell --master spark://hadoop01:7077,hadoop02:7077 表示运行在集群上

spark-submit

spark-submit命令用来提交jar包给spark集群/YARN

spark-shell交互式编程确实很方便我们进行学习测试,但是在实际中我们一般是使用IDEA开发Spark应用程序打成jar包交给Spark集群/YARN去执行。

spark-submit命令是我们开发时常用的!!!

示例:计算π

cd /export/servers/spark
/export/servers/spark/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://node01:7077  \
--executor-memory 1g \
--total-executor-cores 2 \
/export/servers/spark/examples/jars/spark-examples_2.11-2.2.0.jar \
10

Master参数形式

  • local 本地以一个worker线程运行(例如非并行的情况).
  • local[N] 本地以K worker 线程 (理想情况下, N设置为你机器的CPU核数).
  • local[*] 本地以本机同样核数的线程运行.
  • spark://HOST:PORT 连接到指定的Spark standalone cluster master.
    端口是你的master集群配置的端口,缺省值为7077.
  • mesos://HOST:PORT 连接到指定的Mesos 集群. Port是你配置的mesos端口, 默认5050.
    或者使用ZK,格式为 mesos://zk://…
  • yarn-client 以client模式连接到YARN cluster. 集群的位置基于HADOOP_CONF_DIR 变量找到.
  • yarn-cluster 以cluster模式连接到YARN cluster. 集群的位置基于HADOOP_CONF_DIR 变量找到.

其他参数示例

  • –master spark://node01:7077 指定 Master 的地址
  • –name “appName” 指定程序运行的名称
  • –class 程序的main方法所在的类
  • –jars xx.jar 程序额外使用的 jar 包
  • –driver-memory 512m Driver运行所需要的内存, 默认1g
  • –executor-memory 2g 指定每个 executor 可用内存为 2g, 默认1g
  • –executor-cores 1 指定每一个 executor 可用的核数
  • –total-executor-cores 2 指定整个集群运行任务使用的 cup 核数为 2 个
  • –queue default 指定任务的对列
  • –deploy-mode 指定运行模式(client/cluster)

注意:

如果 worker 节点的内存不足,那么在启动 spark-submit的时候,就不能为 executor分配超出 worker 可用的内存容量。
如果–executor-cores超过了每个 worker 可用的 cores,任务处于等待状态。
如果–total-executor-cores即使超过可用的 cores,默认使用所有的。以后当集群其他的资源释放之后,就会被该程序所使用。
如果内存或单个 executor 的 cores 不足,启动 spark-submit 就会报错,任务处于等待状态,不能正常执行。

发布了295 篇原创文章 · 获赞 184 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42072754/article/details/105285280