不开启
一个个分区导入,分区需要做到一对一。
hive (zmgdb)> insert overwrite table p_t3 partition (city='ningbo')
> select name,post,address from p_t1 where city='ningbo';
会启动mapreduce进行导入,mr卡在kill job_xxxx,等了很久没反应,原因是分配给yarn的内存太小。需要修改yarn-site.xml里的配置。
见博客: http://blog.csdn.net/zengmingen/article/details/52609873
(如果按照上面的博客配置了,时而行,时而不行。如果是vm虚拟机搭建的,那就重启吧)
如果一张表,比如按全国的城市分区的表,那一个个分区导入,费时费力。
于是需要有自动能一对一导入的功能,即动态分区装载数据。
开启
hive>set hive.exec.dynamic.partition=true;
hive>set hive.exec.dynamic.partition.mode=nostrict;
hive>set hive.exec.max.dynamic.partitions.pernode=1000;
hive (zmgdb) > create table p_t4 like p_t1;
hive (zmgdb)> insert overwrite table p_t4 partition (city)
> select * from p_t1;
hive会启动mapreduce导入。
hive (zmgdb)> select * from p_t4;
OK
p_t4.name p_t4.post p_t4.address p_t4.city
1 dddd dddd beijing
2 www www beijing
3 eeee wwww beijing
4 tttt cccc beijing
5 yyycc dddd beijing
1 dddd dddd ningbo
2 www www ningbo
3 eeee wwww ningbo
4 tttt cccc ningbo
5 yyycc dddd ningbo
1 dddd dddd taizhou
2 www www taizhou
3 eeee wwww taizhou
4 tttt cccc taizhou
5 yyycc dddd taizhou
Time taken: 0.155 seconds, Fetched: 15 row(s)
hive (zmgdb)>
table p_t1
table p_t4