gpt4 book ai didi

java - 用于公开大文件的 Spark Thrift 服务器?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:13:38 32 4
gpt4 key购买 nike

我们在 Mesos 客户端模式下设置了一个带有 Spark 2.0 的 Thrift 服务器。

当尝试查询一个 170 MB 的 parquet 文件(从表中选择 *)时,它总是因 Java 内存不足异常(Java 堆空间)而失败。甚至认为有几个 Executor/Workers 并且 executor 的任务已成功完成(从 Spark UI 读取)。

当JVM内存增加到25GB,Spark Driver Memory达到21GB时,终于查询成功了!似乎瓶颈在驱动程序内存本身。

使用了Kryo序列化(spark.kryoserializer.buffer.max=1024m);文件存储在 S3 存储桶中;不使用 YARN。

--为什么Driver会为如此简单的查询消耗那么多内存?
--还有哪些其他参数/​​配置可以帮助支持大型数据集和并发 JDBC 连接?

谢谢。

最佳答案

Q1:Parquet文件是压缩文件,加载到内存后会解压。更重要的是,包含字符串的 Java 对象有其开销,如果您有很多小字符串,成本可能会相当可观。

Q2:不确定 Spark 2.0,但对于某些以前的版本,您可以使用增量收集选项来逐批获取结果。

关于java - 用于公开大文件的 Spark Thrift 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39986827/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com