`
静水深流
  • 浏览: 19434 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hive执行job的时候卡死,执行进度总是0%,然后报错的问题分析和解决

    博客分类:
  • hive
阅读更多
因为跨机房业务需要,在另一个机房部署了一个小型的hadoop集群,其中一个节点为namenode无计算节点datanode,而其它两个节点为datanode节点其中每过节点分配50G的内存,总共100G内存资源;而每台机器都是32核CPU,制定最高使用80% 即26核,配置如下:
yarn-site.xml
<property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>51200</value>
</property>
<property>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>26</value>
</property>


因为目前主要是用hive做离线数据分析,一开始数据量少的情况下hive执行基本没什么问题,当我们的业务量上来之后,对应的数据量也上升,突然有一天发现,之前执行得好好的hive任务执行不成功。后来经过这控制台执行发现如下问题:


执行进度总是0%


过一段时间报上图的错误,然后退出。
也有的时候是报内存溢出:
Diagnostic Messages for this Task:
Error: java.lang.OutOfMemoryError: Java heap space

大概估计应该是集群资源不足导致。所以在网上搜索了一下关于hive内存溢出相关问题的文章,找到http://blog.csdn.net/godspeedlaile9/article/details/13776595,按照这篇文章提出的解决方案:
Currently hive.map.aggr.hash.percentmemory is set to 0.5. Try setting it to a lower value. i.e 'set hive.map.aggr.hash.percentmemory = 0.25;'
也就是说hive目前的这个属性是0.5,我们把它在hive中调整成0.25,调整完之后任务居然能够正常执行了。

但是其中的缘由确给我打了一个深深的问号?

查看了一下hive中hive.map.aggr.hash.percentmemory属性的说明:Hive Map 端聚合的哈稀存储所占用虚拟机的内存比例。
意思是说,当内存的Map大小,占到JVM配置的Map进程的25%的时候(默认是50%),就将这个数据flush到reducer去,以释放内存Map的空间。
错误原因:Map端聚合时hash表所占用的内存比例默认为0.5,这个值超过可用内存大小,导致内存溢出。

PS:资源不足很多同学可能第一想的是加机器,我一开始也是这么想的,但是现实总是有差距,只能尽力做到物尽其用了。



欢迎大家提出不同的方案或补充!



参考资料:
http://dacoolbaby.iteye.com/blog/1880089
http://blog.csdn.net/lixucpf/article/details/20458617

  • 大小: 8.7 KB
  • 大小: 24.2 KB
分享到:
评论

相关推荐

    hive的一些报错及解决方法

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

    hive on tez 常见报错问题收集

    这里我们将深入探讨五个在Hive on Tez中常见的报错问题及其解决方案。 1. 错误一:Failing because I am unlikely to write too。 这个问题是由于Hive中的一个已知bug,具体问题可以在Apache JIRA的HIVE-16398中...

    hive执行计划可视化工具

    3. **性能分析**:通过统计每个操作的成本(如时间、内存和CPU使用量),帮助用户定位潜在的性能问题。例如,可能会发现某个join操作过于复杂或者数据倾斜导致了性能瓶颈。 4. **优化建议**:根据分析结果,提供...

    Hive优化以及执行原理

    总的来说,理解Hive的优化策略和执行原理对于提升查询性能至关重要。通过对SQL语句的精心设计和对集群配置的适当调整,可以有效地处理大规模数据查询。同时,随着Hive与其他计算框架如Spark的融合,其执行效率和灵活...

    hive开发中常遇到的坑

    在这个例子中,我们首先通过`EXPLAIN`关键字获取查询的执行计划,然后分析各个部分是如何连接和过滤的,以此来判断查询的效率并做出相应的调整。 #### 四、避免SQL注释中的分号问题 在Hive SQL中,注释中不应包含...

    基于SpringBoot+hiveJDBC+echarts的数据大屏可视化和大数据分析源码+项目使用说明.zip

    基于SpringBoot+hiveJDBC+echarts的数据大屏可视化和大数据分析源码+项目使用说明.zip 【项目介绍】 使用Hadoop技术可快速生成分析结果,对6万条美妆销售数据分析,将数据转化为有价值的数据。 在Centos7中搭建 ...

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

    替换这些jar包意味着升级了Hive在CDH环境中的执行部分和ORC处理库,以解决在2.1.1版本中遇到的问题。 分发新jar包到各个服务器是必要的步骤,因为Hive通常在分布式环境中运行,每个节点都需要有正确的库才能正确...

    Spark不能使用hive自定义函数.doc

    ### Spark与Hive自定义函数兼容性问题解析 在大数据处理领域,Apache Spark 和 Apache Hive 都是非常重要的工具。Spark 是一种快速通用的大规模数据处理系统,而Hive 则是一种数据仓库工具,主要用于对存储在 ...

    Hive 优化以及执行原理

    综上,Hive的优化和执行原理涉及多个层面,包括数据组织、查询设计、系统配置和执行引擎的选择。理解这些原理并结合实际场景进行调优,能够有效提升Hive在大数据处理中的性能。通过深入学习和实践,我们可以更好地...

    spark或mr引擎插入的数据,hive表查询数据为0

    通过上述分析可以看出,对于“Spark或MR引擎插入的数据,Hive表查询数据为0”的问题,主要是因为Tez引擎在执行`UNION ALL`操作时生成了额外的子目录,而查询引擎未能正确处理这些子目录。通过改变数据写入方式或是...

    hive执行文件.zip

    Hive是Apache Hadoop生态系统中的一个数据仓库工具,它允许用户使用SQL(称为HQL,Hive查询语言)对大规模存储在Hadoop分布式文件系统(HDFS)中的结构化数据进行查询和分析。Hive提供了数据整理、离线查询以及用户...

    windows下安装hive2.3.3缺少的可执行文件

    windows10下安装hive2.3.3的时候,无法执行hive命令,原因是官方下载文件中缺少可执行文件(好多个cmd文件),安装的时候无法执行成功。下载后,解压替换hive的bin目录即可执行成功。

    datax数据从hive导入mysql数据缺失解决

    ### DataX 数据从 Hive 导入 MySQL 数据缺失解决 #### 背景介绍 在大数据处理领域,Hive 和 MySQL 分别作为...通过以上分析和实践,我们不仅解决了当前的数据缺失问题,也为未来处理类似问题提供了宝贵的经验和参考。

    Hive on Spark源码分析DOC

    Hive on Spark源码分析 Hive on Spark 源码分析是指将 Hive 默认的执行...通过对 Hive on Spark 的源码分析,我们可以更好地理解 Hive on Spark 的运行机理和实现原理,从而更好地应用 Hive on Spark 解决实际问题。

    hive_windows可执行文件

    在Windows环境下,Hive的使用需要特定的配置和执行文件。以下是对标题和描述中涉及的知识点的详细解释: 1. **Hive在Windows上的安装**: - Hive通常在Linux环境下运行,但在Windows上也可以通过安装Java环境和...

    hdfs开启高可用+hive报错

    ### HDFS高可用机制与Hive兼容性问题详解 #### 一、背景介绍 Hadoop分布式文件系统(HDFS)是...综上所述,通过合理的配置调整和技术优化,可以有效解决HDFS HA与Hive之间的兼容性问题,保障大数据平台的稳定运行。

    windows下hive的可执行文件

    不同版本的Hive和Hadoop可能对Windows支持程度不同,有时候即使找到可下载的版本,也可能因为特定环境的配置或依赖问题导致无法正常运行。在这种情况下,用户通常需要尝试多个版本,或者进行一些额外的配置调整来使...

    基于Hive的搜狗日志分析

    基于Hive的搜狗日志分析 本文档主要介绍了基于Hive的搜狗日志分析的整个过程,从数据预处理、构建数据仓库、数据分析到其他数据操作等方面进行了详细的介绍。 一、 数据预处理 数据预处理是整个日志分析的第一步...

    利用Hive进行复杂用户行为大数据分析及优化案例

    利用Hive进行复杂用户行为大数据分析及优化案例(全套视频+课件+代码+讲义+工具软件),具体内容包括: 01_自动批量加载数据到hive 02_Hive表批量加载数据的脚本实现(一) 03_Hive表批量加载数据的脚本实现(二) ...

    如何在python中写hive脚本

    在Python中编写Hive脚本主要是为了方便地与Hadoop HIVE数据仓库进行交互,这样可以在数据分析和机器学习流程中无缝地集成大数据处理步骤。以下将详细介绍如何在Python环境中执行Hive查询和管理Hive脚本。 1. **直接...

Global site tag (gtag.js) - Google Analytics