我有一些性能问题,我几乎没有问题:) 我创建了一个scala应用程序。此应用程序通过实时计算一些统计数据,如来自cassandra数据库的会话...。我使用喷雾作为http框架来创建我的API。 我使用spark来计算和映射从cassandra中减少的结果。 我把我的应用程序放在火花提交的spark中。火花上的应用程序网页?
您认为这是直接在火花中开发应用程序的最佳方式吗?或者我应该在spark之外创建一个应用程序(http),并调用其他应用程序仅用于使用spark从cassandra计算数据?我的测试(我知道它应该会更好,如果我在我的集群中有同样的服务器,但应该会更好,但是我应该更好一些)我暂时不能)。 我使用独立模式。 我在spark_default.sh配置:
spark.deploy.defaultCores=28
spark.executor.memory=30G
而此时它缓慢,它采取9秒用3火花TRAITEMENT:
- 地图,sortby和1收集(采取4S)
- 和操作(需要3秒)
- 和操作(需要2秒)
只是像一个结果这个:
{“result”:“success”,“list”:[{“item”:“1474236000”,“value”:6},{“item”:“1474239600”,“value” :3},{ “项”: “1474243200”, “值”:3},{ “项”: “1474246800”, “值”:3},{ “项”: “1474250400”, “值”:3 },{ “项”: “1474254000”, “值”:8},{ “项”: “1474257600”, “值”:4},{ “项”: “1474261200”, “值”:11}, { “项”: “1474264800”, “值”:1},{ “项”: “1474268400”, “值”:3},{ “项”: “1474272000”, “值”:18},{”项 “:” 1474275600" , “值”:6},{ “项”: “1474279200”, “值”:4},{ “项”: “1474282800”, “值”:2},{ “项目” : “1474286400”, “值”:2},{ “项”: “1474293600”, “值”:4},{ “项”: “1474297200”, “值”:10},{ “项”:” 1474300800" , “值”:10},{ “项”: “1474304400”, “值”:8},{ “项”: “1474308000”, “值”:6},{ “项”: “1474311600” “值”:8},{ “项”: “1474315200”, “值”:4},{ “项”: “1474318800”, “值”:4},{ “项”: “1474322400”,”值 “:6}],” nb_session” :137.0,“old_nb_session”:161}
您对我有什么建议吗?我不明白为什么它这么慢:(
非常感谢
我想你应该把Spark分开到应用程序。 Spark应该像服务一样行事。 https://github.com/spark-jobserver/spark-jobserver可能会有帮助。 – giaosudau
那么,我个人认为它并不慢。这些并不是令人印象深刻的延迟,但Spark并不是专为低延迟工作而设计的,而且您肯定不会轻松。为什么不直接针对Cassandra?关于分离这当然是一个好主意。 – zero323