spark-shell是Spark自带的交互式Shell程序,方便用户进行交互式编程,用户可以在该命令行下用scala编写spark程序。
启动spark shell:
./spark-2.1.0-bin-hadoop2.6/bin/spark-shell --master spark://linux1:7077,linux2:7077 --executor-memory 1g --total-executor-cores 3 --master spark://linux1:7077 指定Master的地址 --executor-memory 1g 指定每个worker可用内存为1G --total-executor-cores 3 指定整个集群使用的cup核数为3个简化版:
./spark-2.1.0-bin-hadoop2.6/bin/spark-shell --master spark://linux1:7077这种写法 worker数和executor数都是默认值
./spark-2.1.0-bin-hadoop2.6/bin/spark-shell如果启动spark shell时没有指定master地址,但是也可以正常启动spark shell和执行spark shell中的程序,其实是启动了spark的local模式,该模式仅在本机启动一个进程,没有与集群建立联系。
启动spark shell后,查看UI管理界面,会发现Application ID多了一个正在运行的spark shell进程。 在spark-shell中可以用scala语言编写spark程序:
用scala语言在idea中,需先创建一个Maven项目 上传jar包到服务器,然后使用sparksubmit命令提交任务
/bigdata/spark-3.0.0-bin-hadoop3.2/bin/spark-submit --master spark://linux1:7077 --executor-memory 1g --total-executor-cores 4 --class com.spark.day01.WordCount /root/spark15-1.0-SNAPSHOT.jar hdfs://linux1:9000/words.txt hdfs://linux1:9000/out参数说明: –master 指定masterd地址和端口,协议为spark://,端口是RPC的通信端口 –executor-memory 指定每一个executor的使用的内存大小 –total-executor-cores指定整个application总共使用了cores –class 指定程序的main方法全类名 jar包路径 args0 args1
spark程序每次都打包上在提交到集群上比较麻烦且不方便调试,Spark还可以进行Local模式运行,方便测试和调试
setMaster("local[*]")spark高可用: