使用Spark + Cassandra将一个表复制到另一个表的性能很低

时间:2017-09-07 14:36:11

标签: apache-spark cassandra spark-cassandra-connector

我正在尝试使用spark + spark-cassandra-connector将一个表复制到另一个表,这需要很长时间(约17个小时)。即使对于所有行(约20亿)的简单计数,我也花费大约1小时。 我怎样才能加快这个过程? Cassandra版本:3.1

object Init {
  def main(args: Array[String]): Unit = {
    val sparkConf = new SparkConf(true)
      .set("spark.cassandra.connection.host", "host")
//      .set("spark.cassandra.input.split.size_in_mb", "16")
//      .set("spark.executor.memory", "4g")
      .setAppName("spark2Cassandra")
      .setMaster("local[*]")

    val sparkContext = new SparkContext(sparkConf)

    val table = sparkContext.cassandraTable("testkeyspace", "test_5")
    table.saveToCassandra("testkeyspace", "test_4")
  }
}

1 个答案:

答案 0 :(得分:2)

我看到你正在使用" local" Spark应用程序的模式。这意味着您在一台计算机上运行应用程序。这通常意味着你不需要Spark。为了提高性能,我会考虑添加更多节点(因此会有更多的客户端在运行。)

如果您仍有问题,最好尝试确定系统中的实际瓶颈,然后尝试扩大它。目前,问题可能是你使用的是一台机器。