`
philip_kissme
  • 浏览: 16561 次
  • 来自: ...
社区版块
存档分类
最新评论

Yarn临时目录不足导致Hive任务失败

阅读更多

从一张已有的Hive Table中创建新表及Partition出现如下问题

  1. 原有Hive Table中有160g数据(为三个月中所有应用和服务器的用户访问记录)
  2. 新表选取需要字段,并按照应用/服务器Ip/访问时间创建Partition
  3. //创建table
    set hive.exec.dynamic.partition=true;
    set hive.exec.dynamic.partition.mode=nonstrict;
    
    CREATE TABLE IF NOT EXISTS app_trace(
          trace_id string,
          client_ip string,
          user_device string,
          user_id string,
          user_account string,
          org_id string,
          org_name string,
          org_path string,
          org_parent_id string,
          url string,
          completed boolean,
          cost int,
          create_time bigint,
          parameters map<string,string>,
          subtrace array<string>
    )
    PARTITIONED BY (app_id int,server_ip string,create_date string)
    ROW FORMAT DELIMITED
          FIELDS TERMINATED BY '\|'
          COLLECTION ITEMS TERMINATED BY '\$'
          MAP KEYS TERMINATED BY '\:'
    STORED AS SEQUENCEFILE
    
    //加载数据
    insert OVERWRITE table app_trace partition(app_id,server_ip,craete_date)
      select
          trace_id,
          client_ip,
          user_device,
          user_id,
          user_account,
          org_id,
          org_name,
          org_path,
          org_parent_id,
          url,
          completed,
          cost,
          create_time,
          parameters,
          subtrace,
          app_id,
          server_ip,
          create_date
      from user_trace;
  4. Hive错误信息 写道
    Task with the most failures(4):
    -----
    Task ID:
    task_1418272031284_0203_r_000071

    URL:
    http://HADOOP-5-101:8088/taskdetails.jsp?jobid=job_1418272031284_0203&tipid=task_1418272031284_0203_r_000071
    -----
    Diagnostic Messages for this Task:
    Error: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in shuffle in InMemoryMerger - Thread to merge in-memory shuffled map-outputs
    at org.apache.hadoop.mapreduce.task.reduce.Shuffle.run(Shuffle.java:134)
    at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:376)
    at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1557)
    at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)
    Caused by: org.apache.hadoop.fs.FSError: java.io.IOException: No space left on device
    at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileOutputStream.write(RawLocalFileSystem.java:221)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    at java.io.BufferedOutputStream.write(BufferedOutputStream.java:126)
    at org.apache.hadoop.fs.FSDataOutputStream$PositionCache.write(FSDataOutputStream.java:58)
    at java.io.DataOutputStream.write(DataOutputStream.java:107)
    at org.apache.hadoop.mapred.IFileOutputStream.write(IFileOutputStream.java:88)
    at org.apache.hadoop.fs.FSDataOutputStream$PositionCache.write(FSDataOutputStream.java:58)
    at java.io.DataOutputStream.write(DataOutputStream.java:107)
    at org.apache.hadoop.mapred.IFile$Writer.append(IFile.java:250)
    at org.apache.hadoop.mapred.Merger.writeFile(Merger.java:208)
    at org.apache.hadoop.mapreduce.task.reduce.MergeManagerImpl$InMemoryMerger.merge(MergeManagerImpl.java:476)
    at org.apache.hadoop.mapreduce.task.reduce.MergeThread.run(MergeThread.java:94)
    Caused by: java.io.IOException: No space left on device
    at java.io.FileOutputStream.writeBytes(Native Method)
    at java.io.FileOutputStream.write(FileOutputStream.java:345)
    at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileOutputStream.write(RawLocalFileSystem.java:219)
    ... 11 more


    FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
    MapReduce Jobs Launched:
    Job 0: Map: 282 Reduce: 80 Cumulative CPU: 12030.1 sec HDFS Read: 79178863622 HDFS Write: 15785449373 FAIL
    Total MapReduce CPU Time Spent: 0 days 3 hours 20 minutes 30 seconds 100 msec

经过排查,发现

  1. HDFS存储正常
    [jyzx@HADOOP-5-101 main_disk]$ hdfs dfs -df -h
    Filesystem Size Used Available Use%
    hdfs://HADOOP-5-101:8020 8.9 T 625.9 G 7.8 T 7%
  2. DataNode本地存储异常
    [jyzx@HADOOP-5-101 main_disk]$ df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root
    50G 46G 837M 99% /
    tmpfs 7.8G 56K 7.8G 1% /dev/shm
    /dev/cciss/c0d0p1 485M 32M 428M 7% /boot 
  3. 具体出现问题的目录
    /hadoop/yarn/local/usercache

    [root@HADOOP-6-199 local]# du -h --max-depth=1
    4.0K ./usercache_DEL_1411698127772
    4.0K ./usercache_DEL_1411700964513
    4.0K ./usercache_DEL_1411713191383
    4.0K ./usercache_DEL_1418272057670
    4.0K ./usercache_DEL_1411699568217
    628K ./filecache
    4.0K ./usercache_DEL_1411713338641
    7.2G ./usercache
    4.0K ./usercache_DEL_1411698079868
    4.0K ./usercache_DEL_1411713240205
    104K ./nmPrivate
    7.2G .
  4. /hadoop/yarn/local/usercache
    是yarn的node-manager本地目录
    yarn.nodemanager.local-dirs=/hadoop/yarn/local/usercache
     

解决方法

  • 只需要修改yarn的配置yarn.nodemanager.local-dirs,指定到更大的存储上即可
  • yarn.nodemanager.local-dirs=/mnt/disk1/hadoop/yarn/local/usercache
  • 重启yarn集群

 

分享到:
评论

相关推荐

    Hive任务提交流程.pdf

    【Hive任务提交流程】 Hive作为大数据处理领域的一个重要工具,它允许用户通过SQL语句来查询和管理存储在Hadoop集群上的大规模数据。在Hive中,复杂的SQL查询会被解析并转换为一系列的任务(Task),这些任务通常是...

    Yarn 内存分配管理机制及相关参数配置.

    综上所述,YARN内存管理的优化需要综合考虑RM、NM和AM的角色及它们的配置参数,确保资源有效利用,同时避免内存不足或溢出导致的问题。在实际操作中,需根据应用需求和集群资源状况合理调整这些参数,以实现最佳性能...

    windows中使用yarn-cluster模式提交spark任务

    windows中使用yarn-cluster模式提交spark任务,百度找不着的啦,看我这里。另外spark的版本要使用正确哦 更简单的方式参考: https://blog.csdn.net/u013314600/article/details/96313579

    hive监控巡检优化文档

    - 可以通过`yarn application -list`命令来查看所有正在运行的任务列表,并从中找到Hive任务的应用ID,以此来检查任务的状态。 - **Cdh集群-yarn-resourcemanager-web-ui** - Cloudera Data Hub(CDH)提供了一个...

    hive-3.1.1安装包

    Hive是一个基于Hadoop的数据仓库工具,它本身并不存储数据,部署在...Hive也不提供资源调度系统,默认由Hadoop集群中的YARN集群来调度。 Hive可以将结构化的数据映射为一张数据库表,并提供HQL(HiveSQL)查询功能。

    hive的一些报错及解决方法

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

    hive客户端安装_hive客户端安装_hive_

    1. 将下载的Hive压缩包解压到指定目录,例如:/usr/local/hive。 2. 配置环境变量,在~/.bashrc或~/.bash_profile文件中添加以下内容: ``` export HIVE_HOME=/usr/local/hive export PATH=$PATH:$HIVE_HOME/bin ```...

    yarn.lock yarn install 安装失败,使用官方下载的yarn.lock文件

    npm install -g yarn yarn install 安装失败,使用官方下载的yarn.lock文件

    基于CDH 6.3.0 搭建 Hive on Spark 及相关配置和调优

    ### 基于CDH 6.3.0 搭建 Hive on Spark 及相关配置和调优 #### 概述 随着大数据技术的发展,Hadoop生态系统不断成熟与完善,其中Apache Hive作为数据仓库工具,支持通过SQL语句进行查询、分析存储在Hadoop文件系统...

    Cloudera的yarn任务监控api

    本文将深入探讨Cloudera提供的YARN任务监控API,以及与之相关的Hadoop MapReduce API,帮助开发者更好地理解和利用这些工具进行集群管理和任务监控。 首先,我们关注YARN的Resource Manager API。Resource Manager...

    apache-hive-2.1.1-bin.tar.gz

    安装和使用 Hive 需要先安装 Hadoop 环境,因为 Hive 依赖于 HDFS 进行数据存储,依赖于 YARN 或 MRv1 进行任务调度。安装完成后,配置 Hive 的环境变量,然后可以通过 Hive 提供的 CLI(命令行界面)或者 Beeline...

    一键启动HDFS集群、YARN集群、Hive服务脚本

    一键启动HDFS集群、YARN集群、Hive服务脚本

    一键停止HDFS集群、YARN集群、Hive服务脚本

    一键停止HDFS集群、YARN集群、Hive服务脚本

    hive on tez 常见报错问题收集

    当遇到Java堆空间溢出错误时,这意味着Hive on Tez的内存配置可能不足。可以通过调整`hive.tez.container.size`和`hive.tez.java.opts`来增加内存分配,例如设置前者为9216MB,后者为6144MB。同时,如果物理内存或...

    yarn 前端打包工具指定配置文件

    在前端开发领域,`Yarn` 是一个非常流行的依赖管理工具,它被广泛用于替代 `npm` 进行包的安装和管理。`Yarn` 提供了更快的速度、更可靠的重复性和更好的安全性。在某些情况下,我们可能需要对前端项目进行特定的...

    java提交spark任务到yarn平台的配置讲解共9页.pdf.zip

    Java提交Spark任务到YARN平台是一项常见的大数据处理操作,它结合了Java的编程能力和Spark的高性能计算框架,以及Hadoop的资源管理系统YARN。在这个过程中,开发者需要理解多个关键概念和配置步骤,以便有效地调度和...

    Hive优化(提高hive运行速度)

    1. **资源限制**:本地模式仅在单个节点上运行,如果任务所需资源超出节点容量,可能会影响其他进程或导致任务失败。 2. **不适合大规模任务**:对于大数据量的查询,本地模式可能无法充分利用集群资源,此时还是...

    hive执行计划可视化工具

    5. **资源管理**:显示Hive如何分配资源(如MapReduce或Tez任务)来执行查询,帮助管理员理解资源使用情况,以便进行更有效的集群管理。 在标签中提到的“软件/插件”,暗示可能有多种不同的实现方式。例如: - **...

    windows hive cmd 下载

    3. **Windows环境下安装Hive**: 在Windows系统上安装Hive通常需要先安装Hadoop的本地模式或者伪分布式模式,因为Hive依赖于Hadoop的HDFS(Hadoop Distributed File System)和YARN(Yet Another Resource Negotiator...

    yarn任务邮件监控及linux进程邮件监控(python脚本)

    yarn任务邮件监控及linux进程邮件监控,定时检查 ,本人在生产环境使用的,可以监控yarn任务,各种进程 如namenode ,java jar进程,如果不明白可以留言或者联系我(文档里面有联系方式)

Global site tag (gtag.js) - Google Analytics