2017-09-07 90 views
1

我试图使用spark + spark-cassandra-connector将一张桌子复制到另一张桌子,花费很多时间(〜17小时)。即使对于所有行(~2亿)的简单计数,我也花费了大约1个小时。 我如何加快这个过程? 卡桑德拉版本:3.1使用Spark + Cassandra处理一张桌子到另一张桌子的低性能

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") 
    } 
} 

回答

2

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

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

+1

就像我说过,它可能依赖于很多事情,你需要真正看看你的OS指标来确定瓶颈。 – RussS