我使用带有2名工作人员的独立群集。 使用spark kafka cassandra hdfs stream
val stream = kafkaUtils.createDirectStream...
stream.map(rec => Row(rec.offset, rev.value)).saveToCassandra(...)
stream.map(_.value).foreachRDD(rdd => {saving to HDFS})
我发送给Kafka大约40000 msg / sec
第一件事就是saveToCassandra工作缓慢,因为如果我发表评论stream.saveToCassandra
它的工作非常好而且速度很快。
在火花驱动器UI中我看到,对于5MB输出,它需要大约20秒。
我尝试调整spark-cassandra选项,但它也需要至少14秒。
第二个比我提到的,我的一个工人什么都不做,记录我看到这样的事情:
10:05:33 INFO remove RDD#
等等。
但如果我停止另一名工人,它就会开始工作。
我不使用spark-submit,只是
startSpark extends App {
和孔代码,然后用
启动它scala -cp "spark libs:kafka:startSpark.jar" startSpark
并且在使用ssc.sparkContext.addJars(pathToNeedableJars)
如何促进写作Cassandra以及如何让我的员工一起工作?
答案 0 :(得分:1)
我真的很难读官方spark kafka集成指南,问题,我用于我的主题1分区
Kafka分区与Spark分区之间的对应关系