【问题标题】:Execute job on distributed cassandra DSE spark cluster在分布式 cassandra DSE spark 集群上执行作业
【发布时间】:2018-08-24 05:29:33
【问题描述】:

我有 RF=3 的三节点 Cassandra DSE 集群和数据库模式。现在我正在创建一个要在 DSE spark 上执行的 scala 应用程序。 Scala 代码如下:-

package com.spark

import com.datastax.spark.connector._
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.sql._
import org.apache.spark.sql.SQLContext

object sample {
def main(args: Array[String]) {
val conf = new SparkConf()
  .setMaster("local")
  .setAppName("testing")
  .set("spark.cassandra.connection.host", "192.168.0.40")
  .set("spark.driver.allowMultipleContexts", "true")
  .set("spark.executor.memory", "1g")
  .set("spark.driver.memory", "1g")
  .set("spark.driver.maxResultSize", "500M")
  .set("spark.executor.heartbeatInterval", "30s")
  .set("spark.submit.deployMode", "cluster")

val sc = new SparkContext(conf)
val lRDD = sc.cassandraTable("dbname", "tablename")
lRDD.collect.foreach(println)
}}

我正在使用

运行脚本
dse> bin/dse spark-submit --class com.spark.sample --total-executor-cores 4 /home/db-svr/sample.jar

所以,现在我想从 1 个节点执行我的 spark 应用程序,但系统应该在内部对 3 个节点进行处理,我想对其进行监控,以便我可以共同利用 3 个节点的 RAM 和处理器。我该怎么做?

此外,当前的脚本需要花费大量时间来生成结果(表大小为 100 万行,每行 128 字节)。有没有我遗漏的性能调整参数?

【问题讨论】:

    标签: scala apache-spark cassandra datastax-enterprise


    【解决方案1】:

    您可能想要更改一些内容。阻止您在多台机器上运行的主要因素是

    .setMaster("local")

    它指示应用程序不应使用分布式资源管理器,而应在应用程序进程中本地运行所有内容。对于 DSE,您应该关注 relevant documentation 或从 Spark Build Examples 开始。

    此外,您很可能永远不想设置

    .set("spark.driver.allowMultipleContexts", "true")

    在一个 JVM 中拥有多个 Spark 上下文会带来很多问题,通常意味着设置不正确。

    【讨论】:

    • 嗨 Russ,所以现在它分布在所有节点上,但我担心它会占用大量内存,就像我在 100 万个结果集上执行程序一样,这不过是大约 148 MB 数据,但任务管理器显示 RAM 被占用超过 2 GB,在 Monitor 上显示 worker/executor 任务。此外,它在任务完成后继续保持记忆。任务执行后如何释放内存?
    • Spark 资源一直保留到应用程序关闭并使用用户设置的内存。堆本身的大小会波动,但资源管理器会考虑使用完整的堆来进行作业调度。
    • 如您所见,我创建了一个简单的代码来在控制台上显示一组记录,理想情况下它应该停止。那么,我可能需要在应用程序代码中或在调用 spark-submit 时编写任何内容,以便在屏幕上打印数据后释放内存?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-10
    • 2015-08-20
    相关资源
    最近更新 更多