开发者社区> 问答> 正文

在处理流维表JOIN时,面对Hive大维表导致的OOM问题,采取了哪些优化措施?

在处理流维表JOIN时,面对Hive大维表导致的OOM问题,采取了哪些优化措施?

展开
收起
真的很搞笑 2024-07-22 22:36:59 28 0
2 条回答
写回答
取消 提交回答
  • "为了处理Hive大维表导致的OOM问题,我们采取了以下优化措施:

    Hive维表Hash分片:将Hive大维表按照Join Key进行Hash分片,通过Hash函数计算后分布到Flink作业的不同并行子任务的HashMap中。这样,每个HashMap只存放大维表的一部分数据,通过增加作业的并行度,可以将大维表的数据拆分成足够多份进行分片保存。
    使用Rocksdb Map State:对于一些仍然太大的维表分片,我们使用Rocksdb Map State来保存分片数据,以进一步减少内存压力。
    image.png
    "

    2024-07-23 09:50:47
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    增加内存分配:如果资源允许,可以增加Hive任务的内存分配,以处理更大的数据集。

    使用压缩列存储:使用列存储格式(如Parquet或ORC)可以减少I/O操作,并且这些格式通常支持压缩,可以减少内存使用。

    过滤数据:在JOIN之前,尽可能使用WHERE子句来过滤掉不需要的数据,减少JOIN操作的数据量。

    2024-07-23 08:05:33
    赞同 1 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Hive Bucketing in Apache Spark 立即下载
spark替代HIVE实现ETL作业 立即下载
2019大数据技术公开课第五季—Hive迁移到MaxCompute最佳实践 立即下载