zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    jsp四个域对象
    java,qq邮箱发邮件工具类(需要部分修改)
    Java使用qq邮箱发邮件实现
    JavaScript 高级
    JavaScript基础
    JQuery 高级
    JQuery 基础
    团队最后一次作业:总结
    C++多态
    结对编程
  • 原文地址:https://www.cnblogs.com/yjt1993/p/13963047.html
Copyright © 2011-2022 走看看