码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【博学谷学习记录】超强总结,用心分享|Hive调优-本地模式


    文章目录

        • 本地模式
        • 用案例测试本地模式的效果
          • 创建普通表
          • 加载数据到普通表
          • 创建分桶表
          • 查询普通表数据插入分桶表
          • 记录关闭本地模式的插入数据用时
          • 记录开启本地模式的插入数据用时
          • 记录关闭本地模式的查询数据用时
          • 记录开启本地模式的查询数据用时
        • 总结

    本地模式

    当数据量很大时,Hadoop Job是通过集群来处理大数据集的,这样可以充分发挥分布式计算的优势。
    但是有时候数据量很小的时候,原来的优化反而成了劣势,因为在数据量小的情况下,触发执行任务所消耗的时间比job执行的时间还要多得多,对于这种情况,Hive可以通过本地模式在单台机器处理所有任务,对于小数据集,执行时间可以明显缩短
    用户可以通过设置hive.exec.mode.local.auto=true,让Hive在适当的时候自动启动这个优化

    --开启本地mr
    set hive.exec.mode.local.auto=true;  
    
    --设置local mr的最大输入数据量,当输入数据量小于这个值时采用local  
    --mr的方式,默认为134217728,即128M
    set hive.exec.mode.local.auto.inputbytes.max=51234560;
    
    --设置local mr的最大输入文件个数,当输入文件个数小于这个值时采用local 
    --mr的方式,默认为4
    set hive.exec.mode.local.auto.input.files.max=10;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    用案例测试本地模式的效果

    创建普通表
    create table score2
    (
        id    string,
        cid   string,
        score string
    )
    	row format delimited
    	fields terminated by ' '
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    加载数据到普通表
    load data local inpath '/export/testdatas/score.txt' into table score2
    
    • 1

    创建分桶表
    create table score
    (
        id    string,
        cid   string,
        score string
    )
    	clustered by (id) into 3 buckets
    	row format delimited
    	fields terminated by ' '
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    查询普通表数据插入分桶表

    分桶表的数据无法通过hdfs dfs -put文件或者load data加载
    只能通过insert into 或insert overwrite

    insert overwrite table score
    select * from score2 cluster by id;
    
    • 1
    • 2

    记录关闭本地模式的插入数据用时

    花费时间: 1分49秒

    image.png

    记录开启本地模式的插入数据用时

    花费时间: 37s

    image.png

    记录关闭本地模式的查询数据用时

    花费用时: 35秒

    image.png

    记录开启本地模式的查询数据用时

    花费用时: 1秒

    image.png

    总结

    在数据量小的时候,不论是插入数据还是查询数据时,开启本地模式后,任务的执行时间都大幅缩短
    插入数据时缩短三分之二的执行时间
    查询数据效果更为明显,从35s缩短到1s
    在Hive调优时可以开启这个参数,缩短小数据量的任务执行时间

  • 相关阅读:
    TCP三次握手和四次挥手(彻底弄明白)
    Docker + Nacos + Spring Cloud Gateway 实现简单的动态路由配置修改和动态路由发现
    2009-2022年上市公司华证 ESG数据
    解救Kubernetes混乱:Descheduler快速实现资源平衡
    HTML+CSS+JavaScript仿京东购物商城网站 web前端制作服装购物商城 html电商购物网站
    m基于Matlab的fir和iir数字滤波器的设计与仿真
    JVM将初始和最大内存大小设置为相同值的好处
    HTML学生个人网站作业设计:基于HTML+CSS+JavaScript设计多用途的图文展示博客HTML模板(16页)
    7-51 愿天下有情人都是失散多年的兄妹——dfs
    03-npm安装包详解,解决npm下载慢的问题,引入nrm等
  • 原文地址:https://blog.csdn.net/xz842913787/article/details/127978223
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号