原SQL:
insert overwrite table in_yuncheng_tbshelf partition (pt)
select userid, bookid, bookname, createts, rpid, addts, updatets, isdel, rcid, category_type, wapbookmarks, addmarkts, readingchapterid, readpercentage, readingts,
substring(addts,0,10) as pt from search_product.yuncheng_tbshelf where pt>='2012-09-01'
报错:
[Fatal Error] Operator FS_3 (id=3): Number of dynamic partitions exceeded hive.exec.max.dynamic.partitions.pernode.. Killing the job.
hive.exec.max.dynamic.partitions.pernode (缺省值100):
每一个mapreduce job允许创建的分区的最大数量,如果超过了这个数量就会报错
hive.exec.max.dynamic.partitions (缺省值1000):一个dml语句允许创建的所有分区的最大数量
hive.exec.max.created.files (缺省值100000):所有的mapreduce job允许创建的文件的最大数量
当源表数据量很大时,单独一个mapreduce job中生成的数据在分区列上可能很分散,举个简单的例子,比如下面的表要用3个map:
1
1
1
2
2
2
3
3
3
如果数据这样分布,那每个mapreduce只需要创建1个分区就可以了:
|1
map1 --> |1
|1
|2
map2 --> |2
|2
|3
map3 --> |3
|3
但是如果数据按下面这样分布,那第一个mapreduce就要创建3个分区:
|1
map1 --> |2
|3
|1
map2 --> |2
|3
|1
map3 --> |2
|3
为了让分区列的值相同的数据尽量在同一个mapreduce中,
这样每一个mapreduce可以尽量少的产生新的文件夹,可以借助distribute by的功能,将分区列值相同的数据放到一起:
insert overwrite table in_yuncheng_tbshelf partition (pt)
select userid, bookid, bookname, createts, rpid, addts, updatets, isdel, rcid, category_type, wapbookmarks, addmarkts, readingchapterid, readpercentage, readingts,
substring(addts,0,10) as pt from search_product.yuncheng_tbshelf where pt>='2012-09-01'
distribute by substring(addts,0,10)
另外,调大hive.exec.max.dynamic.partitions.pernode参数的值不知道是否可行,还没试。
分享到:
相关推荐
hive表修改分区数据
Hive表分区,里面有比较详细的Hive表分区方法,希望能够有所帮助。
hive双分区外部表复合数据结构博客的数据资料,欢迎下载。
北京马士兵教育公众号:马士兵《 Java系列课程》Hive动态分区和分桶北京马士兵教育公众号:马士兵《 Java系列课程》动态分区hive 动态分区– 开启支持
Hive分区表 ...分区还能够更加方便的管理一些特殊数据,例如一些日志数据,可以是一个天一个分区或者一个月一个分区,视数据量而定,这样就能很好地管理日志数据了。 分区表的基本操作 现在有以下数据: 10 A
详细描述了hive分桶表,分区表的创建,附带详细建表语句,包含一级静态分区,二级静态分区,一级动态分区,二级动态分区,分区的查询,删除,添加,数据的导入
BLOG_如何将一个普通表转换为分区表.pdfBLOG_如何将一个普通表转换为分区表.pdf
4.2.1 Hive 新增一个字段: 4 4.2.2 Hive 修改字段名/字段类型/字段位置/字段注释: 4 4.2.3 Hive 重命名表名: 4 4.3Hive 删除表: 4 5 Hive 分区 4 5.1 Hive 添加分区 4 5.2 Hive 删除分区 5 6 SHOW语句 5 7 ...
hive 下dual表,Lock,explain, 数据类型,开发常见的问题
hive数据分区时分区字段不可为中文。
hive2.1.1orc格式读取报数组越界错误,替换jar包。hive-exec-2.1.1-cdh6.3.2.jar、hive-orc-2.1.1-cdh6.3.2.jar。分发各个服务器即可。
NULL 博文链接:https://jonas-wang.iteye.com/blog/1927709
大数据MR原理启动hive设置队列,对已经存在hdfs的有分区有表结构和数据信息的表,进行查询表.查询表分区,查询表结构的完整流程如下.学无长幼.
Hive与Hbase的整合,集中两者的优势,使用HiveQL语言,同时具备了实时性
hive hive hive hive hive hive hive hive hive hive hive hive
大数据时代基于Hadoop的一个数据仓库工具hive
Hive分区表和分桶表,进阶篇
HiveSQL基础(一).pdf
{ job: { setting: { speed: { channel: 1 }, errorLimit: { record: 0, percentage: 0.02 } }, content: [ { reader: {