我有一个运行的火花丛
spark://host1:7077 spark://host2:7077 spark://host3:7077
并通过/ bin / spark-shell连接–master spark:// host1:7077
尝试读取文件时:
val textFile = sc.textFile("README.md") textFile.count()
提示说
WARN TaskSchedulerImpl:初始作业未接受任何资源;检查群集UI以确保工作人员已注册并具有足够的资源
通过host1:8080上的Web ui检查时,它显示:
Workers: 0 Cores: 0 Total,0 Used Memory: 0.0 B Total,0.0 B Used Applications: 0 Running,2 Completed Drivers: 0 Running,0 Completed Status: ALIVE
我的问题是如何在spark-shell集群模式下运行时指定内核和内存?或者我必须通过将我的scala代码打包到.jar文件中运行然后将作业提交给spark?
谢谢
解决方法
请使用jar打包您的代码并在代码中使用它
String[] jars = new String[] { sparkJobJar }; sparkConf.setMaster("masterip"); sparkConf.set("spark.executor.memory",sparkWorkerMemory); sparkConf.set("spark.default.parallelism",sparkParallelism); JavaSparkContext ctx = new JavaSparkContext(sparkConf);
使用spark.executor.memory可以提供worker内存,Parallelism将帮助在集群上运行多个并行任务.
你有../spark/conf中的奴隶文件,你需要把奴隶放在这里.
请在主节点/spark/sbin/start-master.sh上启动master
请在从属节点/spark/sbin/start-slaves.sh上启动slave