首页 > 其他分享 >问题排查Hive本地计算模式失败

问题排查Hive本地计算模式失败

时间:2023-08-13 21:05:00浏览次数:37  
标签:task java scheduler hive 排查 yarn 本地 Hive

问题排查Hive本地计算模式失败

查看hive.log后发现是java space heap,也就是java内存溢出。

解决方案:

  1. 配置yarn集群的资源分配。
  • 由于是本地计算,因此container一定是申请在本地的,限制AM申请container容器资源的大小很重要。机器节点的资源可用通过配置NodeManager,所以第一步是配该节点的NodeManager资源。

    我的服务器是8G2核的,大家可以参考一下。

    我的配置如下:

    <!-- 不设置nm虚拟cpu核数,使用默认值-1,即8核,注:这里的8核指的是虚拟cpu核数,为了屏蔽物理机器差异,nodemanager所定义的核数指的是虚拟cpu,所以我物理2核也没关系-->
    
    <!-- 设置nm分配的物理内存,此值得大于container的最小内存 -->
    <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>2048</value>
    </property>
    

    NodeManager配置完后,需要配置Container,即申请容器的大小。一个job会被ApplicationMaster分成多个task,task再分为task_attampt。而AM和task_attampt都是运行在Container中的,每个Container可申请的资源数可以通过配置约束。

    	<!-- 分配给container的最小内存 -->
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>256</value>
    </property>
    	<!-- 分配给container的最大内存 -->
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>512</value>
    </property>
        <!-- 分配给container的最小虚拟cpu核数,使用默认值1 -->
    
        <!-- 分配给container的最大虚拟cpu核数 -->
    <property>
        <name>yarn.scheduler.maximum-allocation-vcores</name>
        <value>1</value>
    </property>
    
  1. 调整java堆大小

    有两处需要设置

  • 在hive-site.xml中写入

    <!--This would set your java heap space to 2048 MB (2GB), you may even try it with a lower value first if that works -->
    <property>
        <name>mapred.child.java.opts</name>
        <value>-Xmx2048m</value>
    </property>
    
  • 在hive-env.sh中写入

    export HADOOP_HEAPSIZE=2048
    

建议:

如果本地跑的任务会被分片很多,建议设置

<property>
   <name>hive.exec.mode.local.auto.input.files.max</name>
   <value>10</value>
</property>

参考资料:

  1. https://stackoverflow.com/questions/15609909/error-java-heap-space
  2. https://developer.aliyun.com/article/1258023

标签:task,java,scheduler,hive,排查,yarn,本地,Hive
From: https://www.cnblogs.com/nangk/p/17627212.html

相关文章

  • 问题排查Hive本地计算模式失败
    问题排查Hive本地计算模式失败查看hive.log后发现是javaspaceheap,也就是java内存溢出。解决方案:配置yarn集群的资源分配。由于是本地计算,因此container一定是申请在本地的,限制AM申请container容器资源的大小很重要。机器节点的资源可用通过配置NodeManager,所以第一步是......
  • 【HIVE系列】01-HIVE 常用操作
    title:【HIVE系列】01-HIVE常用操作date:2018-11-1320:20:31update:2018-11-1517:10:43categories:-大数据技术-hivetags:[hive]参考资料:https://blog.csdn.net/wisgood/article/details/17376393http://ju.outofmemory.cn/entry/1764081.数据库操作(增删......
  • 关于hive的字段注释乱码解决
    今天我发现我的DBeaver执行完sql后,表的注释乱码,深究下来是要去设置hive的编码,要不注释是乱码。教程:hive设置中文编码格式utf-8_hive建表指定字符集_2021xyz666的博客-CSDN博客......
  • hive如何提高查询性能
    本文会通过四个方面介绍Hive性能调优,主要包括:√性能调优工具√设计优化策略√数据存储优化√作业优化技巧1.合并中间表一个日志文件中,每一行记录,会有很多很多字段,四五十个字段很正常。实际分析中,常常使用少数几个字段将原始的表中数据,依据业务需求提取出要分析的字段,数据放......
  • 本地启动 ABAP Platform Trial 的 Docker 命令行程序
    Docker是一个开源的容器化平台,用于轻松地构建、发布和运行应用程序。DockerDesktop是适用于Windows和Mac的Docker桌面应用程序,它允许用户在本地运行和管理容器化应用程序。在本文中,我们将详细介绍以下两个命令行并解释每个参数的含义:dockerpullsapse/abap-platform-trial:190......
  • Maven引入本地jar包
    如果是我们一个人的项目,那直接使用传统方式将jar导入项目中即可,但是在多人开发中每个人都需要导一次,太过麻烦,因此使用另外一种方法。如:引入taobao-sdk-java.jar操作自定义目录,这里在project的根目录新建lib文件夹,将jar放进去pom.xml中引入<dependency><groupId......
  • 支持本地部署,完全免费的 ABAP 来了 - ABAP Platform Trial 1909 发布
    我曾经编写过一套零基础的ABAP编程学习教程,截至2023年8月2日,总共包含114篇文章:零基础快速学习ABAP有零基础自学ABAP的朋友咨询,如果手头没有ABAP开发环境该怎么办?我在2019年时写过一篇文章,提到了SAP云平台上免费的ABAP编程环境:ABAP开发者上云的时候到了-......
  • 如何修改 Fiori Elements 工程包含的本地注解(annotations)文件试读版
    本教程前一篇文章:8.如何找到SAPFioriElements应用某个字段显示值具体的数据源,笔者试图解答我的知识星球里一个朋友的提问:在WebIde(SAPUI版本1.97.0)生成FioriElements的Overviewpage并发布后,再次在消费视图中修改UI注解后,本地运行该Overviewpage应用发现页面已经变动,......
  • 问题排查org
    问题排查org.apache.hadoop.ipc.Client背景是在三台云服务器上部署Hadoop集群,当提交job到yarn上执行时,一直处在map阶段,记录一下排查问题的过程。排查思路都已经到map阶段了,说明ApplicationMaster(AM)已经起了,所以我打算查看AM的日志。如何知道AM起在哪台机器呢?appllicati......
  • VMware中的虚拟机Debian10的服务器配置,使主机(win10)能够通过本地域名(如www.xxx.com)
    VMware中的虚拟机Debian10的服务器配置,使主机(win10)能够通过本地域名(如www.xxx.com)访问该服务器安装过程下载debian-10.13.0-amd64-DVD-1.iso(可选下载链接:Indexof/cdimage/archive(debian.org))在VMware中安装虚拟机这里点击浏览,选择下载好的镜像文件,然后......