zoukankan      html  css  js  c++  java
  • 060 关于Hive的调优(本身,sql,mapreduce)

    1.关于hive的优化

      -》大表拆分小表
        -》过滤字段
        -》按字段分类存放


      -》外部表与分区表
        -》外部表:删除时只删除元数据信息,不删除数据文件
              多人使用多个外部表操作同一份数据文件
        -》分区表:hive中的数据库,表,分区来说都是文件夹
              提高了检索效率
          -》手动创建
          -》动态分区
        -》外部表+分区表


      -》数据的存储
        -》存储格式:列式存储

        -》压缩

    2.SQL的优化
        -》后 join 先 filter

    3.mapreduce的优化

      -》并行处理

        job1&job2 job3
        hive.exec.parallel=true
        hive.exec.parallel.thread.number=8


      
    -》JVM重用
        mapreduce.job.jvm.numtasks=$number

        因为每次的jvm开启与关闭都是需要许多的资源


      -》推测执行
        mapreduce.map.speculative=true
        mapreduce.reduce.speculative=true
        hive.mapred.reduce.tasks.speculative.execution=true


      -》map和reduce的个数
        -》map个数:不好人为的设置
        -》hdfs块的大小:dfs.blocks.size=128M
          分片的大小:minisize/maxsize
          mapreduce.input.fileinputformat.split.minisize

          -》企业情景
            -》文件大,少 200M 100个 map默认按块处理
            -》文件小,多 40M 400个 map按分片


      -》reudce个数
        0.95-1.75*node*容器的个数


      -》本地模式local:在当前节点运行整个任务
        <property>
          <name>hive.exec.mode.local.auto</name>
          <value>true</value>
          <description> Let Hive determine whether to run in local mode automatically </description>
        </property>
        条件:
          1、job的输入数据的大小不能超过默认参数
            inputbytes.size=128M
          2、job处理的map task的个数
            至多4个

          3.reduce task的个数

            至多1个。

        

  • 相关阅读:
    java之redis篇(spring-data-redis整合) (转)
    web.xml
    点击类名方法名如何连接到相应的Android源代码
    eclipse能够自动提示变量名.
    Android自定义ActionBar
    Android 自定义View
    android 自定义titlebar
    Android SharedPreferences登录记住密码
    Android 正则表达式验证手机和邮箱格式是否正确
    Android 首次进入应用时加载引导界面
  • 原文地址:https://www.cnblogs.com/juncaoit/p/6077512.html
Copyright © 2011-2022 走看看