`
superlxw1234
  • 浏览: 548796 次
  • 性别: Icon_minigender_1
  • 来自: 西安
博客专栏
Bd1c0a0c-379a-31a8-a3b1-e6401e2f1523
Hive入门
浏览量:44125
社区版块
存档分类
最新评论

hive动态分区遇到的一个错误

    博客分类:
  • hive
阅读更多

原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参数的值不知道是否可行,还没试。

分享到:
评论

相关推荐

    hive2.1.1中orc格式读取报数组越界错误解决方法

    “数组越界”错误是Java编程语言中常见的异常类型,表明程序试图访问数组的一个不存在的元素,即下标超出数组边界。在Hive中,这可能源于Hive执行引擎或ORC读写库的问题。在描述中提到的解决方案是替换相关的jar包,...

    Hive常见错误及解决方案.docx

    Hive 是一个基于 Hadoop 的数据仓库工具,用于存储、查询和分析大规模数据。但是,在使用 Hive 过程中,经常会遇到一些常见错误,影响着整个项目的进度和效率。因此,本文将总结常见的 Hive 错误及解决方案,帮助...

    Hive内部表合并小文件Java程序

    在大数据处理领域,Hive作为一个基于Hadoop的数据仓库工具,被广泛用于存储和查询大规模数据集。然而,Hive在处理大量小文件时可能会遇到性能问题,因为HDFS(Hadoop分布式文件系统)对小文件的管理效率较低。为了...

    Hive metastore 使用达梦数据库存储元数据

    在大数据处理领域,Hive作为一个分布式数据仓库工具,被广泛用于存储和管理大规模结构化数据。Hive的元数据是其核心组成部分,它包含了表、分区、列等信息,使得Hive能够正确地组织和查询数据。通常,Hive元数据默认...

    hive的一些报错及解决方法

    #### 一、Hive连接报错 在更换网络接口卡后重新启动服务时,可能会遇到Hive连接失败的问题。此类问题通常与元数据存储中的异常有关,例如存在多个版本的元数据或者端口被其他服务占用。 1. **元数据版本冲突**: ...

    hive编程手册,从入门到精通

    同时,也会介绍错误排查和日志分析,帮助读者解决Hive使用过程中可能遇到的问题。 总的来说,《Hive编程手册,从入门到精通》是一本全方位的Hive学习资源,涵盖了理论知识、实战技能和优化策略,无论你是初入大数据...

    简单的spark 读写hive以及mysql

    在读取 Hive 数据时,我们可以通过创建一个 HiveContext 对象,然后使用 `sql()` 函数执行 SQL 查询。写入 Hive 需要将 DataFrame 转换为 Dataset,然后使用 `saveAsTable()` 方法指定表名和存储格式。 接下来,`...

    Hive编程指南(带书签)

    Hive主要为非结构化或半结构化的数据提供了一个灵活的数据层,使得数据分析人员可以无需深入了解MapReduce即可进行数据操作。 2. **Hive架构**:包括Hive的组件、工作原理以及与Hadoop的关系。例如,Hive Server、...

    hadoop hive入门学习总结

    Hadoop Hive 是一个基于 Hadoop 的数据仓库工具,用于处理和分析大量分布式数据。它提供了SQL-like查询语言,称为HQL,使得非程序员也能方便地进行大数据分析。以下是对Hadoop Hive入门学习的详细总结: ### 1. ...

    sqoop导入数据到hive中,数据不一致

    Sqoop是一个用于在关系数据库和Hadoop之间传输数据的工具,它可以高效地批量导入和导出数据。而Hive则是基于Hadoop的数据仓库系统,提供了SQL-like查询语言(HQL)来操作存储在HDFS上的大量数据。当使用Sqoop将数据...

    大数据技术之-08-Hive学习-05-Hive实战之谷粒影音+常见错误及解决方案.docx

    ### 大数据技术之Hive学习—Hive实战之谷粒影音+常见错误及解决方案 #### 10.1 需求描述 本实战案例旨在通过对谷粒影音视频网站的大数据分析,提炼出一系列关键指标,包括但不限于视频观看数量、类别热度等Top N...

    Hive基本语法使用

    Hive是Apache Hadoop生态系统中的一个数据仓库工具,它允许用户使用SQL-like的语言(称为HQL,Hive Query Language)对大规模分布式数据集进行查询、分析和管理。在本主题中,我们将深入探讨Hive的基本语法及其使用...

    Hive常见问题维护手册V1.01

    Hive 是一个基于 Hadoop 的数据仓库工具,用于将结构化的数据文件映射为一张数据库表,并提供 SQL 类似的查询语言(HQL)来查询数据。Hive 主要由以下几个组件组成: 1. **Hive Metastore**:存储元数据,如表名、...

    Hadoop-2.8.0-Day07-HA-Hive安装部署与HQL-课件与资料.zip

    Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它使得在大规模数据集上运行应用程序变得更加简单。Hive则是基于Hadoop的数据仓库工具,它提供了SQL-like查询语言HQL,使得非程序员也能方便地处理和分析...

    big_data small_data.tar.gz

    例如,可以创建一个时间分区的表,然后将"big_data"按照日期分段导入对应的分区。 4. **数据对比**:"small_data"可能用于验证"big_data"的处理结果。在大数据处理中,我们常常用小规模数据进行快速测试,确保算法...

    HiveBDR

    4. **用户界面**:为了便于管理和监控,HiveBDR可能包含一个用户界面,允许管理员配置复制规则、查看复制状态、处理异常等。 5. **Python支持**:标签“Python”表明HiveBDR的开发可能使用了Python语言。Python因其...

    谨慎修改ORC文件.doc

    然而,在此过程中遇到了一个非常奇怪的问题:无论是使用Hive还是Spark执行SQL操作,都会出现异常,导致任务失败。具体的错误信息如下: ``` Most recent failure: Lost task 1.1 in stage 0.0 (TID 2, master02, ...

    jasper*.jar

    Hive是Apache软件基金会的一个项目,它提供了一个基于Hadoop的数据仓库工具,用于查询和管理大规模数据集。HWI是Hive的一部分,允许用户通过Web浏览器直接执行HQL(Hive Query Language)查询,方便数据分析师进行...

    VerticaHiveStorageHandler

    【标题】VerticaHiveStorageHandler 是一个专为在Apache Hive与Vertica数据库之间进行数据交换而设计的存储处理程序。Hive是一个基于Hadoop的数据仓库工具,它允许用户使用SQL-like查询语言(HQL)来操作分布式数据...

Global site tag (gtag.js) - Google Analytics