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

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

语法:

./bin/spark-submit \
  --class <main-class> \
  --master <master-url> \
  --deploy-mode <deploy-mode> \
  --conf <key>=<value> \
  ... # other options
  <application-jar> \
  [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代码提交任务时出现过这种问题,看图:
Java代码提交Spark 应用
错误信息:
在这里插入图片描述
原因就是他在开发机上提交本地的包到spark 机器。但是spark 根本就拿不到这个包,才导致报错。把jar 包放到 hdfs 上去,解决问题。

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

在这里插入图片描述

更多详细查看官方文档: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 搭建的
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值