2015-04-19 63 views
0
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 國,Hauula,夏威夷

{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 ::不嚴格

hive.enforce.bucketing :: true

+0

算不同值的分區列,並設置hive.exec.max.dynamic.partitions和hive.exec.max.dynamic.partitions.pernode比明顯count.In你的情況可能會市多有更明確的值,可能會超過100,並將上述參數設置爲比分區列的不同計數更高的值 –

回答

3

嘗試將這些屬性設置爲更高的值。

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

嗨,Sir, 請檢查帖子並回復 – Manish