• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >云计算 > [Hive]Hive调优:让任务并行执行,hive调优

[Hive]Hive调优:让任务并行执行,hive调优

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含hive调优,任务并行库,多任务并行,并行任务,百度网盘下载并行任务等服务器相关知识,网友希望可以进行参考

[Hive]Hive调优:让任务并行执行,hive调优


业务背景

extract_trfc_page_kpi的hive sql如下:

set mapred.job.queue.name=pms;
set hive.exec.reducers.max=8;
set mapred.reduce.tasks=8;
set mapred.job.name=extract_trfc_page_kpi;

insert overwrite table pms.extract_trfc_page_kpi partition(ds='$yesterday')
select distinct 
    page_type_id,
    pv,
    uv,
    '$yesterday' update_time 
from
(
    --针对PC、H5
    select 
        page_type_id,
        sum(pv) as pv,
        sum(uv) as uv 
    from dw.rpt_trfc_page_kpi 
    where ds = '$yesterday' and stat_type = 1 
    group by page_type_id 

union all

    --PC搜索页特殊处理
    select 
        5 as page_type_id,
        sum(pv) as pv,
        sum(uv) as uv 
    from dw.rpt_trfc_page_kpi 
    where ds = '$yesterday' and stat_type = 1 and page_type_id in (51, 52)

union all

    --针对APP
    select 
        a.page_type_id,
        sum(pv) as pv,
        sum(uv) as uv 
    from dw.rpt_trfc_page_kpi a 
    left outer join (
        select distinct 
            page_type_id, 
            old_page_type_id 
        from tandem.mobile_backend_page_url_rule 
        where is_delete = 0
    ) b on (a.page_type_id = b.old_page_type_id)
    where a.ds = '$yesterday' and stat_type = 1 
    group by a.page_type_id 
) t;

上面的sql中存在两个union all操作,顺序执行下来的话,需要耗时20分钟。

优化策略

分析以上的sql,其中union all前后的三个查询操作并无直接关联,因此没有必要顺序执行,因此优化的思路是让这三个查询操作并行执行,hive提供了如下参数实现job的并行操作:

// 开启任务并行执行
set hive.exec.parallel=true;
// 同一个sql允许并行任务的最大线程数
set hive.exec.parallel.thread.number=8;

方案一

在执行sql时加上上面的两个hive参数,如:

set mapred.job.queue.name=pms;
set hive.exec.reducers.max=8;
set mapred.reduce.tasks=8;
set hive.exec.parallel=true;
set hive.exec.parallel.thread.number=8;
set mapred.job.name=extract_trfc_page_kpi;

insert overwrite table pms.extract_trfc_page_kpi partition(ds='$yesterday')
select distinct 
    page_type_id,
    pv,
    uv,
    '$yesterday' update_time 
from
(
    --针对PC、H5
    select 
        page_type_id,
        sum(pv) as pv,
        sum(uv) as uv 
    from dw.rpt_trfc_page_kpi 
    where ds = '$yesterday' and stat_type = 1 
    group by page_type_id 

union all

    --PC搜索页特殊处理
    select 
        5 as page_type_id,
        sum(pv) as pv,
        sum(uv) as uv 
    from dw.rpt_trfc_page_kpi 
    where ds = '$yesterday' and stat_type = 1 and page_type_id in (51, 52)

union all

    --针对APP
    select 
        a.page_type_id,
        sum(pv) as pv,
        sum(uv) as uv 
    from dw.rpt_trfc_page_kpi a 
    left 


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • [Hive]Hive调优:让任务并行执行,hive调优

相关文章

  • Hadoop之——自定义排序算法实现排序功能,hadoop排序功能
  • JOIN操作,数据库join操作
  • Sqoop工具,sqoop安装
  • 分布式系列,分布式系统
  • 大数据的两种处理方式,数据两种处理方式
  • 亚马逊是如何颠覆商业软件高昂价格这座”柏林墙”的,商业软件柏林墙
  • Spark开发指南,spark指南
  • Spark jar包找不到解决方法,sparkjar
  • HBase常用操作之namespace,hbasenamespace
  • Spark中配置Parquet参数,sparkparquet参数

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • 机器学习基础,学习基础
    • 【hadoop】 3002-mapreduce程序统计单词个数示例,hadoopmapreduce
    • kerberos下HBase访问Zookeeper的ACL问题,hbasezookeeper
    • hadoop2.7配置HA,使用zk和journal,hadoop2.7zk
    • Hadoop实战 Hadoop Pipes运行C++程序问题解决,hadooppipes
    • Hadoop Installation on Linux,hadoopinstallation
    • Elasticsearch之Nested Object Mapping,elasticsearch
    • Hbase Client Test Case,hbasecase
    • 闰秒导致hadoop集群崩溃,闰秒hadoop集群
    • 基于反射实现自动化restful开发,自动化restful开发

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有