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

标签 scala apache-spark

我有一个运行的 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: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
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 来运行文件然后提交作业来激发?

谢谢

最佳答案

请使用 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 您可以提供工作内存,Parallelism 将有助于在集群上运行的并行任务数量。

您在 ../spark/conf 中有 slaves 文件,您需要将来自 slaves 的 ips 放在这里。

请在主节点/spark/sbin/start-master.sh 上启动 master

请在从节点上启动从节点/spark/sbin/start-slaves.sh

关于scala - 如何在集群模式下以交互方式运行 spark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29789382/

相关文章:

scala - alpakka-kafka 连接器在生成消息时使用的直通是什么?

来自 github 存储库的 Scala sbt 文件依赖项

scala - 无法使用 Breeze 编译 "dot"函数

r - Spark + rsparkling : Error while connecting to a cluster

python - PySpark 代码是在 JVM 还是 Python 子进程中运行?

scala - 为什么 shapeless.Nat 没有在运行时访问其值的方法?

Scala:基于同一层次结构的另一个类型参数值限制参数

scala - Spark : NullPointerException when RDD isn't collected before map

scala - 集合中 AnyVals 的最佳 FP 习语

java - 从磁盘读取 Spark 流错误 - java.io.NotSerializedException : org. apache.spark.streaming.api.java.JavaStreamingContext