1.spark提供了交互式接口 spark-shell

spark-shell 实现了用户可以逐行输入代码,进行操作的功能。  即可以不像Java一样,编写完所有代码,然后编译才能运行

spark-shell 支持 Scala交互环境 和 python交互环境

在学习测试中可以使用spark-shell 进行API学习

spark shell传参 spark shell操作_根目录

2.进入Scala交互环境

在spark安装目录的根目录下,有个bin目录中有个 spark-shell 

 

在bin 目录中执行  ./spark-shell    回车键

即可进入 spark-shell 环境

spark shell传参 spark shell操作_根目录_02

可以进行操作

spark shell传参 spark shell操作_spark-shell_03

2.1 添加参数 --master  

指定Driver 生成在哪个节点

在本机生成Driver ,spark指挥所,创建sparkContext指挥官

在 spark安装根目录中 执行, 

 

spark shell传参 spark shell操作_客户端_04

 

eg:根目录下执行

./bin/spark-shell --master local    

标识用一个worker 线程运行spark, 即单线程

 

 

也可以指定线程数

./bin/spark-shell --master local[2]

标识用两个线程执行

 

./bin/spark-shell --master local[*]

用 * 表示用当前物理机最大 线程数, 比如 说当前机器 物理CPU是 2个,然后每个物理CPU是2个核,  那就是4个逻辑核,所以 【*】 最大线程是4

,所以说 如果当前物理机 最大逻辑核是 4, 如果 参数写个【8】 也是没有用的,8个线程中只有4个线程执行,然后另外4个线程等待

 

spark shell传参 spark shell操作_spark_05

退出   :quit

即可退出

 

ps: 在根目录中执行 ./bin/spark-shell,  什么参数都不加,默认执行的是 ./bin/spark-shell --master local[*]

在集群中生成spark指挥所,生成sparkContext

 

一般有3中 集群模式 standalone 、yarn 、 mesos ,分别对应不同的集群管理模式

其中standalone 是spark 自带的集群资源管理,效果不是特别好。

yarn是 hadoop的集群资源管理,当spark 与 hadoop 集成场景,多使用该模式。

mesos是 单独一个专门做 集群资源管理的,与spark兼容性 比较好。

 

1) spark-shell的 独立集群模式,即standalone 模式

在spark根目录中执行

spark-shell --master spark://master:7077

或者  spark-shell --master spark://192.168.43.100:7077

即启用standalone 模式

2) yarn 集群模式的 spark-shell

 

yarn 有两种模式:yarn-client 和 yarn-cluster

 

首先要启动 hadoop 和yarn

第一种:yarn-client 模式

在spark 根目录上

./bin/spark-shell --master yarn

或者

./bin/spark-shell --master yarn --deploy-mode client

 

这两个命令是一样的都是进入yarn-client 模式

spark shell传参 spark shell操作_客户端_06

 

相当于把 Driver节点 (指挥所) 建在了 客户端上,在客户端中生成 sparkContext(指挥官),

所以该模式下 客户端在提交程序后,是不能关闭的,应为指挥所在客户端中

spark shell传参 spark shell操作_spark_07

 

可以再yarn上看到

master:8088

spark shell传参 spark shell操作_spark_08

 

第二种:yarn-cluster 

 

在spark 根目录上

./bin/spark-shell --master yarn --deploy-mode cluster

 

该模式下 客户端提交的程序会被 提交到 集群中,在集群中找一个节点作为 Driver端,生成指挥所和指挥官sparkContext

该模式下 客户端提交完代码后,可以关闭

spark shell传参 spark shell操作_spark-shell_09

 

3)mesos集群模式的spark-shell

 

在spark 根目录上

./bin/spark-shell --master mesos://***.**.*.*:端口号

 

2.2 添加 --jar 参数

--jar 参数指定一些需要用到的jar包

spark shell传参 spark shell操作_spark_10

 

2.3添加 --executor-memory 参数

指定程序占用内存大小

--executor-memory 1G 

 

2.4 添加 --total-executor-cores 参数

指定程序开启几个逻辑核

 --total-executor-cores 2