spark-submit提交方式测试Demo详解大数据
编写一个蒙特卡罗求PI的代码
import java.util.ArrayList; import java.util.List; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.Function; import org.apache.spark.api.java.function.Function2; import redis.clients.jedis.Jedis; * Computes an approximation to pi * Usage: JavaSparkPi [slices] public final class JavaSparkPi { public static void main(String[] args) throws Exception { SparkConf sparkConf = new SparkConf().setAppName("JavaSparkPi")/*.setMaster("local[2]")*/; JavaSparkContext jsc = new JavaSparkContext(sparkConf); Jedis jedis = new Jedis("192.168.49.151",19000); int slices = (args.length == 1) ? Integer.parseInt(args[0]) : 2; int n = 100000 * slices; List Integer l = new ArrayList Integer (n); for (int i = 0; i i++) { l.add(i); JavaRDD Integer dataSet = jsc.parallelize(l, slices); int count = dataSet.map(new Function Integer, Integer () { @Override public Integer call(Integer integer) { double x = Math.random() * 2 - 1; double y = Math.random() * 2 - 1; return (x * x + y * y 1) ? 1 : 0; }).reduce(new Function2 Integer, Integer, Integer () { @Override public Integer call(Integer integer, Integer integer2) { return integer + integer2; }); jedis.set("Pi", String.valueOf(4.0 * count / n)); System.out.println("Pi is roughly " + 4.0 * count / n); jsc.stop(); }
前提条件的setMaster( local[2] ) 没有在代码中hard code
本地模式测试情况:# Run application locally on 8 cores
spark-submit /
master local[8] /
class com.spark.test.JavaSparkPi /
executor-memory 4g /
executor-cores 4 /
/home/dinpay/test/Spark-SubmitTest.jar 100
运行结果在本地:运行在本地一起提交8个Task,不会在WebUI的8080端口上看见提交的任务
-
spark-submit /
master local[8] /
class com.spark.test.JavaSparkPi /
executor-memory 8G /
total-executor-cores 8 /
hdfs://192.168.46.163:9000/home/test/Spark-SubmitTest.jar 100
运行报错:java.lang.ClassNotFoundException: com.spark.test.JavaSparkPi
spark-submit /
master local[8] /
deploy-mode cluster /
supervise /
class com.spark.test.JavaSparkPi /
executor-memory 8G /
total-executor-cores 8 /
/home/dinpay/test/Spark-SubmitTest.jar 100
运行报错:Error: Cluster deploy mode is not compatible with master local
====================================================================
Standalone模式client模式 # Run on a Spark standalone cluster in client deploy mode
spark-submit /
master spark://hadoop-namenode-02:7077 /
class com.spark.test.JavaSparkPi /
executor-memory 8g /
tital-executor-cores 8 /
/home/dinpay/test/Spark-SubmitTest.jar 100
运行结果如下:
-
spark-submit /
master spark://hadoop-namenode-02:7077 /
class com.spark.test.JavaSparkPi /
executor-memory 4g /
executor-cores 4g /
hdfs://192.168.46.163:9000/home/test/Spark-SubmitTest.jar 100
运行报错:java.lang.ClassNotFoundException: com.spark.test.JavaSparkPi
=======================================================================
standalone模式下的cluster模式 # Run on a Spark standalone cluster in cluster deploy mode with supervise
spark-submit /
master spark://hadoop-namenode-02:7077 /
class com.spark.test.JavaSparkPi /
deploy-mode cluster /
supervise /
executor-memory 4g /
executor-cores 4 /
/home/dinpay/test/Spark-SubmitTest.jar 100
运行报错:java.io.FileNotFoundException: /home/dinpay/test/Spark-SubmitTest.jar (No such file or directory)
-
spark-submit /
master spark://hadoop-namenode-02:7077 /
class com.spark.test.JavaSparkPi /
deploy-mode cluster /
supervise /
driver-memory 4g /
driver-cores 4 /
executor-memory 2g /
total-executor-cores 4 /
hdfs://192.168.46.163:9000/home/test/Spark-SubmitTest.jar 100
运行结果如下:
=============================================
如果代码中写定了.setMaster( local[2] );
则提交的集群模式也会运行driver,但是不会有对应的application并行运行
spark-submit deploy-mode cluster /
master spark://hadoop-namenode-02:6066 /
class com.dinpay.bdp.rcp.service.Window12HzStat /
driver-memory 2g /
driver-cores 2 /
executor-memory 1g /
total-executor-cores 2 /
hdfs://192.168.46.163:9000/home/dinpay/RCP-HZ-TASK-0.0.1-SNAPSHOT.jar
如果代码中限定了.setMaster( local[2] );
则提交方式还是本地模式,会找一台worker进行本地化运行任务
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/9050.html
分布式文件系统,分布式数据库区块链并行处理(MPP)数据库,数据挖掘开源大数据平台数据中台数据分析数据开发数据治理数据湖数据采集相关文章
- Python 3 读取和存储Excel数据(应用到接口测试)
- Jmeter并发测试_高并发测试
- 七层网络性能测试可视化工具 - httpstat
- CSRF自动化测试-CSRFTester
- 2022-10-31-验收测试
- 灾备测试_数据级灾备
- markdown测试
- 使用 HammerDB 对 Citus 和 Postgres 进行 Benchmark,每分钟200万新订单处理测试(官方博客)
- 数据驱动测试-从方法探研到最佳实践
- LR性能测试常见问题及处理方法(六)
- 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码
- 【rainbowzhou 面试11/101】技术提问--说说你做的大数据性能测试案例
- 《花雕学AI》19:比较ChatGPT与新Bing在文章润色方面的应用优势与测试案例
- MongoDB副本集丢失数据的测试实例教程
- Spark集群基础概念 与 spark架构原理详解大数据
- 搭建maven开发环境测试Hadoop组件HDFS文件系统的一些命令详解大数据
- Spark-Sql源码解析之六 PrepareForExecution: spark plan -> executed Plan详解大数据
- codis测试详解大数据
- MySQL测试:深入了解你的数据集(mysql测试数据集)
- MySQL性能测试:试验数据报告(mysql测试数据)
- 测试 Redis 的 性能优势(redis性能测试)
- 测试Redis数据,探索其精彩之处(redis测试数据)
- 如何使用ODROID-C2打造个人专属的渗透测试系统?
- 「Linux磁盘测试工具」,让你了解磁盘性能,全面测试磁盘输入输出速度,检测磁盘健康和可靠性,提高数据稳定性。(linux磁盘测试工具)
- 性测试Redis探索可用性前景(测试redis可用)
- 作为缓存Spark利用Redis缓冲数据的应用(spark需要redis)
- Spark构建Redis数据按照高效实时处理(spark连接redis)
- 使用Spark进行Redis数据读取(spark 读redis)