我正在使用DSE Analytics来分析数据,4 EC2服务器m5ad.xlarge(4核和16GB RAM,3个分析和1个Cassandra) 2 dc像这样:
在Cassandra中,密钥空间大小约为9GB,总共20行(50列) 和查询:
t0 = time()
df = exclusive_df.groupBy('id_store','id_area').agg(
F.sum("numberin").alias("total_people")
).orderBy("id_store")
df.show()
tt = str(time() - t0)
花了近10分钟执行查询,CPU,内存如上(不使用所有资源)。阶段是:
我不知道在这种情况下导致查询速度慢的原因可能是因为我错过了一些工作人员的配置,或者缺少服务器/分区?
您的Spark作业仅在一个节点上运行,该节点是驱动程序。意思是没有执行者参与工作。因此,整个工作一个接一个地执行,而不是并行执行。
“也许是因为我错过了一些工人配置,或者缺少服务器”? - 兴奋地。情况就是这样。
您要么没有将服务器注册到Spark驱动程序,要么配置错误。
检查spark-env.sh中的配置值。看看spark.cores.max是否有限制。
还要确保您已经为Spark提供了执行程序的IP。