微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

scala – 如何在群集模式下以交互方式运行spark

我有一个运行的火花丛

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐