繁体   English   中英

Hive 中的许多分区

[英]Many Partitions in Hive

对于列“id”,我有大约 200,000 个不同的值,并且我将它用作动态分区的 Hive 表之一中的分区键。

现在分区已创建,当我尝试查询时(我使用了简单的Select *查询),它总是返回以下错误:

FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: org.apache.thrift.transport.TTransportException: java.net.SocketTimeoutException: Read timed out

谁能告诉我为什么?

在列“id”上使用 Hive(新引入)的索引功能。 当创建太多分区时,分区不是一个好主意,它会增加名称节点上的负载以跟踪创建的每个分区。

您可以从划分 id 中选择 *。 例如;

select * from where id >0 and id < 50000
select * from where id >=50000 and id =< 100000
...

因为对于每个动态分区,hive 都会分配一个内存部分。 这种查询方式需要更少的内存,但是整个过程需要更多的时间。

对于 hive 来说,200,000 个动态分区太多了。 尝试减少分区数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM