【问题标题】:Hive: Fatal error when trying to create dynamic partitionsHive:尝试创建动态分区时出现致命错误
【发布时间】:2015-06-25 21:23:26
【问题描述】:
    create table MY_DATA0(session_id STRING, userid BIGINT,date_time STRING, ip STRING, URL STRING ,country STRING, state STRING, city STRING) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES 
TERMINATED BY '\n' STORED AS TEXTFILE ;

    LOAD DATA INPATH '/inputhive' OVERWRITE INTO TABLE MY_DATA0;

    create table part0(session_id STRING, userid BIGINT,date_time STRING, ip STRING, URL STRING) partitioned by (country STRING, state STRING, city STRING) 

    clustered by (userid) into 256 buckets ROW FORMAT DELIMITED FIELDS 
    TERMINATED BY ',' LINES TERMINATED BY '\n' STORED AS TEXTFILE ;

    \insert overwrite table part0 partition(country, state, city) select session_id, userid, date_time,ip, url, country, state,city from my_data0;

我的数据集概览:

{60A191CB-B3CA-496E-B33B-0ACA551DD503},1331582487,2012-03-12 13:01:27,66.91.193.75,http://www.acme.com/SH55126545/VD55179433,United 州,豪拉,夏威夷

{365CC356-7822-8A42-51D2-B6396F8FC5BF},1331584835,2012-03-12 13:40:35,173.172.214.24,http://www.acme.com/SH55126545/VD55179433,United 美国,埃尔帕索,德克萨斯

当我运行最后一个插入脚本时,我得到一个错误:

java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveFatalException:[错误 20004]: 节点尝试创建过多动态时发生致命错误 分区。动态分区的最大数量由 hive.exec.max.dynamic.partitions 和 hive.exec.max.dynamic.partitions.pernode。最大值设置为:100

PS:

我已经设置了这两个属性:

hive.exec.dynamic.partition.mode::nonstrict

hive.enforce.bucketing::true

【问题讨论】:

  • 计算分区列的不同值,并将 hive.exec.max.dynamic.partitions 和 hive.exec.max.dynamic.partitions.pernode 设置为超过不同的计数。在你的情况下city 可能有更多不同的值,可能超过 100,并将上述参数设置为高于分区列的不同计数的值

标签: hadoop hive bigdata hiveql


【解决方案1】:

尝试将这些属性设置为更高的值。

SET hive.exec.max.dynamic.partitions=100000;
SET hive.exec.max.dynamic.partitions.pernode=100000;

【讨论】:

  • 先生您好,请查看帖子并回复
【解决方案2】:

在选择语句中最后应该提到分区列。 例如:如果 state 是分区列,则 "insert into table t1 partition(state) select Id, name, dept, sal, state from t2";这会奏效。例如,如果我的查询是这样的“插入表 t1 分区(状态)从 t2 中选择 Id、名称、部门、状态、sal;”然后将使用salary(sal) 列创建分区

【讨论】:

  • 谢谢。我遇到了同样的问题。你的建议对我有用。
猜你喜欢
  • 1970-01-01
  • 2018-08-29
  • 2019-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-30
  • 1970-01-01
相关资源
最近更新 更多