OOM |无法查询Spark临时表

时间:2016-06-17 17:36:09

标签: apache-spark apache-spark-sql spark-dataframe

我在Hive表中有450万条记录。 我的要求是通过Spark thrift服务器将此表缓存为临时表,直线使Tableau可以查询临时表并生成报告。

我有4个节点集群,每个节点有50g RAM和25个vCores。我正在使用HDP2.3和Spark 1.4.1

问题:

我能够在不到一分钟的时间内缓存表,并能够从临时表中获取正确的计数。但问题是当我尝试使用一列执行选择查询(使用beeline,相同的spark sqlContext)时,遇到OOM错误。

尝试以下配置而没有任何运气:

1)sudo ./sbin/start-thriftserver.sh --hiveconf hive.server2.thrift.bind.host = 10.74.129.175 --hiveconf hive.server2.thrift.port = 10002 --master yarn-client - -driver-memory 35g --driver-cores 25 --num-executors 4 --executor-memory 35g --executor-cores 25

$SPARK_HOME./bin/beeline> cache table temp1 as select * from hive_table;

在spark-default文件中设置以下配置 -     spark.driver.maxResultSize 20g     spark.kryoserializer.buffer.max 2000mb     spark.rdd.compress是的     spark.speculation true

2)sudo ./sbin/start-thriftserver.sh --hiveconf hive.server2.thrift.bind.host = 10.74.129.175 --hiveconf hive.server2.thrift.port = 10002 --master yarn-client - -driver-memory 35g --driver-cores 5 --num-executors 11 --executor-memory 35g --executor-cores 5

$SPARK_HOME./bin/beeline> cache table temp1 as select * from hive_table;

在spark-default文件中设置以下配置 -     spark.driver.maxResultSize 20g     spark.kryoserializer.buffer.max 2000mb     spark.rdd.compress是的     spark.speculation true

根据我的理解,我在驱动程序机器上有足够的RAM,应该能够将select的结果带到驱动程序。

0 个答案:

没有答案