hadoop - 如何确定Hive中的动态分区数

标签 hadoop mapreduce hive hbase apache-pig

我正在为一个被分区和绑定的表执行insert语句
但是在运行期间,它抛出了一个关于动态分区数量的错误——即,没有足够的动态分区。
所以,我设置如下:

set hive.exec.max.dynamic.partitions=2000;
set hive.exec.max.dynamic.partitions.pernode=2000;

有人能解释一下应该设置多少个分区吗?我只是给了它们一个随机值。

最佳答案

我们可以通过使用分区列的不同值来预测将要创建的动态分区的最大数量。
分区数的最大值将是每个分区列不同值计数的乘积。
例如,对于某个表,如果我将年份和周列声明为分区列,并且假设我有2013和2014年的数据,那么动态分区的计数可以计算如下:

count of YEAR distinct values X count of week distinct values

2 (2013,2014) X 52 (weeks) = 104 dynamic partitions.

希望这有帮助。

关于hadoop - 如何确定Hive中的动态分区数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32657327/

相关文章:

hadoop - 线程 "main"java.lang.UnsupportedClassVersionError : org/apache/hadoop/fs/FsShell : Unsupported major. 次要版本 51.0 中的异常

scala - Spark : sc. WholeTextFiles 执行时间过长

javascript - 在数组中分组、过滤和计数

unix - 更改生成的配置单元文件的权限

hadoop - 有人可以向我解释 orcfiledump 的输出吗?

hadoop - 我们如何在 Hadoop 中导入视频或音频或图像,并可以做进一步的分析。

apache-spark - 今天使用 MapReduce 代替 Spark 有什么好处?

hadoop - 星火集群启动问题

java - 在hadoop中运行此程序时出错

git - 版本控制 couchdb map-reduce 函数