• hive 由于distcp导致执行sql慢


    HDP version: 3.x

    1、hive执行sql慢

    • 执行sql
      hive通过Tez引擎执行如下的sql语句:
    insert overwrite select ....
    

    整个执行过程消耗十分钟左右,平时任务2-3分钟可以完成,可以明显看到,任务调度出现问题了。

    • 分析
      上述的sql语句对应两个mapreduce,分别是查询数据的和插入数据的mapreduce,执行插入数据是使用的distcp的方式。
      通过对日志的分析:

    查询数据(select) 消耗4分钟左右。
    插入数据(distcp) 消耗6分钟,平时这个阶段一分钟左右就能完成,但是这次居然多消耗了五分钟。
    distcp其实在一分钟之内,map已经运行到100%,但是执行的容器或者任务居然一直卡了五分钟之久,如果是一个任务可能还是偶发性的,但是大量任务都出现这个问题,那说明集群应该是异常了。

    • 查看distcp任务对应的mapreduce日志信息:

    满屏的异步调度waitting。
    接着往下看应用程序日志

    可以看到sockettimeout 异常,fa发生这个异常的线程是ATS事件。

    • 解决
      发生这种情况是因为来自ATSv2的嵌入式HBASE崩溃。
      解决这个问题的方法需要重置ATsv2内嵌HBASE数据库(当然也可能是外部的hbase集群)
      解决方式1:
      我这边的问题是单节点的hbase,regionserver由于内存分配太低,导致内存崩溃,进程退出
      修改hbase-env.sh 增加对应的内存大小,重启服务
      解决方式2:

    停止yarn

    Ambari -> Yarn-Actions -> Stop
    

    删除Zookeeper上的ATSv2 Znode

    rmr /atsv2-hbase-unsecure或rmr /atsv2-hbase-secure(如果是kerberized集群)
    

    删除hbase的数据存储目录

    hdfs dfs -mv /atsv2/hbase/tmp/
    

    启动yarn

    Ambari - > Yarn-Actions- > Start
    

    借鉴:
    | https://www.cnblogs.com/fbiswt/p/12455364.html

  • 相关阅读:
    web进修之—Hibernate 继承映射(5)
    web进修之—Hibernate 类型(4)
    web进修之—Hibernate 关系映射(3)
    web进修之—Hibernate起步(1)(2)
    poj2828(Buy Tickets)线段树
    hdu2795(Billboard)线段树
    hdu1394(Minimum Inversion Number)线段树
    hdu4407Sum(容斥原理)
    树的重心
    匈牙利算法
  • 原文地址:https://www.cnblogs.com/yjt1993/p/13963047.html
Copyright © 2020-2023  润新知