【问题标题】:Low perfomance of coping one table to another using Spark + Cassandra使用 Spark + Cassandra 将一个表复制到另一个表的性能低下
【发布时间】:2018-02-16 08:30:33
【问题描述】:

我正在尝试使用 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")
  }
}

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 就像我说的那样,它可能取决于很多事情,您需要实际查看您的操作系统指标以确定瓶颈。
    猜你喜欢
    • 2020-09-29
    • 1970-01-01
    • 2017-09-02
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    相关资源
    最近更新 更多