我使用dse分析来分析数据,4个ec2服务器m5ad.xlarge(4个内核和16gb ram,3个分析和1个cassandra)
2.如下:
在cassandra中,键空间大小约为9gb,共有20mil行(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)
执行查询、cpu、内存(不使用所有资源)花费了将近10分钟。阶段是:
我不知道是什么导致了这种情况下的查询速度慢,可能是因为我错过了一些worker的配置,或者缺少服务器/分区?
1条答案
按热度按时间zc0qhyus1#
spark作业仅在一个节点上运行,即驱动程序。也就是说没有执行人参与这项工作。因此,整个作业是一个接一个地执行任务,而不是并行执行。
“可能是因为我错过了一些工人的配置,或者缺少服务器”?-很抱歉。情况就是这样。
您可能尚未将服务器注册到spark驱动程序,或者配置错误。
检查spark-env.sh中的配置值。查看spark.cores.max是否有限制。
同时确保你已经向spark提供了遗嘱执行人的IP。
更多信息:datastax-配置spark节点