现在我正在测试sparksql,就像测试microsoftpowerbi的查询引擎一样。我所拥有的:
一个巨大的Cassandra表格,里面有我需要分析的数据。
amazon服务器,8核,16gb内存。
此服务器上的spark thrift服务器。spark版本-1.6.1
Map到巨大cassandra表的配置单元表。 create table data using org.apache.spark.sql.cassandra options (cluster 'Cluster', keyspace 'myspace', table 'data')
;
一切正常,直到我试图连接电源biSpark。问题是powerbi试图从巨大的cassandra表中获取所有数据。显然,spark thrift服务器因oom错误而崩溃。在这种情况下,我不能仅仅将ram添加到spark thrift服务器,因为包含原始数据的cassandra表非常庞大。另外,我不能依赖于自定义的初始查询在双边,因为每次用户忘记设置这个查询服务器将崩溃。我看到的最好的方法是以某种方式自动 Package 来自bi的所有查询
SELECT * FROM (... BI select ...) LIMIT 1000000
对于当前的用例来说是可以的。那么,在服务器端有可能吗?我该怎么做?如果没有,我如何才能防止spark thrift服务器崩溃?在获得oom之前是否有可能删除或取消大量查询?谢谢。
1条答案
按热度按时间ax6ht2ek1#
好吧,我找到一个神奇的配置选项来解决我的问题:
spark.sql.thriftserver.incrementalcollect=真
设置此选项后,spark将使用卷的查询获取的数据拆分为块