使用spark-submit 提交第一个 spark 应用到集群中 & 使用 spark-shell 接口 运行spark 程序

1 提交第一个spark 应用到集群中运行

语法:

./bin/spark-submit \
  --class  \
  --master  \
  --deploy-mode  \
  --conf = \
  ... # other options
   \
  [application-arguments]

实际使用示例:

./spark-submit --class org.apache.spark.examples.SparkPi 
				--master spark://hadoop1:7077 
				--total-executor-cores 5 
				--executor-cores 1 
				--executor-memory 200mb 
				/opt/cloudera/parcels/CDH/lib/spark/examples/lib/spark-examples-1.6.0-cdh5.8.0-hadoop2.6.0-cdh5.8.0.jar  100

参数介绍:
–class: 业务运行代码class
–master: 提交到具体的master 地址 可以是 spark 的一个节点,可以是yarn
–total-executor-cores: 总核数
–executor-cores: 每个executor的核心数
–executor-memory: 每个executor使用的内存数
xxx.jar 为实际提交的jar 包
100 是业务运行代码class需要传入的参数

注意:jar 包的位置必须是位于Spark 的节点机器,或者是hdfs 文件目录上,必须对于Spark 来说是可见的。不然会报 ClassNotFoundException

有朋友使用Java代码提交任务时出现过这种问题,看图:
使用spark-submit 提交第一个 spark 应用到集群中 & 使用 spark-shell 接口 运行spark 程序_第1张图片
错误信息:
使用spark-submit 提交第一个 spark 应用到集群中 & 使用 spark-shell 接口 运行spark 程序_第2张图片
原因就是他在开发机上提交本地的包到spark 机器。但是spark 根本就拿不到这个包,才导致报错。把jar 包放到 hdfs 上去,解决问题。

关于参数的说明,官方文档说的非常明确。

使用spark-submit 提交第一个 spark 应用到集群中 & 使用 spark-shell 接口 运行spark 程序_第3张图片

更多详细查看官方文档:Launching Applications with spark-submit

2 使用spark-shell 接口运行spark 程序: 连接到yarn 上

[root@hadoop1 spark]# pwd
/opt/cloudera/parcels/CDH/lib/spark
[root@hadoop1 spark]# spark2-shell --master yarn
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Spark context Web UI available at http://192.168.80.131:4040
Spark context available as 'sc' (master = yarn, app id = application_1548574542102_0002).
Spark session available as 'spark'.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 2.2.0.cloudera4
      /_/
         
Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_144)
Type in expressions to have them evaluated.
Type :help for more information.

scala>

执行一个 wordcount

scala> sc.textFile("hdfs://hadoop1:8020/user/admin/spark-test").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).sortBy(_._2,false).collect   
res0: Array[(String, Int)] = Array((hello,9), (zhouq,3), (wocao,2), (memeda,2), (hxt,1), (heyxyw,1))

在Spark webui 中查看: 会在 spark 集群中产生一个app id : application_1548574542102_0002

注意: 此 UI 界面是使用 CDH5 搭建的
使用spark-submit 提交第一个 spark 应用到集群中 & 使用 spark-shell 接口 运行spark 程序_第4张图片

使用spark-submit 提交第一个 spark 应用到集群中 & 使用 spark-shell 接口 运行spark 程序_第5张图片

你可能感兴趣的:(Spark,大数据)