蜂巢中的许多分区

时间:2015-11-20 11:05:05

标签: hadoop hive partitioning

我为该列提供了大约200,000个不同的值" id"我在其中一个动态分区的Hive表中使用它作为分区键。

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

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

谁能告诉我为什么?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

您可以从ID中选择*。例如;

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

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

答案 2 :(得分:0)

200,000是用于配置单元的动态分区太多。尝试减少分区数量。