由于 Hive 元存储中的许多分区而导致的错误

Posted

技术标签:

【中文标题】由于 Hive 元存储中的许多分区而导致的错误【英文标题】:Errors due to many partitions in Hive metastore 【发布时间】:2015-11-22 18:34:00 【问题描述】:

我正在使用 Apache spark-sql 从数据库中查询数据。我知道 Spark 默认共享相同的配置单元元存储。我已根据具有超过 300k 个不同值的列 id 对输入数据进行了分区。截至目前,该表有超过 30 万个分区,并且会定期增加。

会不会因此而出现问题?

【问题讨论】:

【参考方案1】:

是的,这么多分区条目会在名称节点上产生开销来跟踪每个分区条目。

如果您只有一个表,那么对该列进行 Hive 索引是一个不错的选择。

【讨论】:

以上是关于由于 Hive 元存储中的许多分区而导致的错误的主要内容,如果未能解决你的问题,请参考以下文章

错误:失败:获取锁时出错:与元存储 org.apache.hadoop.hive.ql.lockmgr.LockException 通信时出错

hive 插入parquet二级分区表数据倾斜优化

hive外部表分区

Hive - 分桶和分区

hive表添加字段导致历史分区查询报错

获取 Spark 写入 Hive 元存储的所有新分区