20
2021
01

hive-site.xml 与 hive cli 调参


<configuration>

    <property>

        <name>javax.jdo.option.ConnectionURL</name>

        <value>jdbc:mysql://bd01:3306/hive?createDatabaseIfNotExist=true</value>

        <description>JDBC connect string for a JDBC metastore</description>

    </property>

    <!--开启 spark 引擎-->

    <property>

        <name>hive.execution.engine</name>

        <value>spark</value>

    </property>

    <!-- 合并 block 减少 task 数量-->

    <property>

        <name>ngmr.partition.automerge</name>

        <value>true</value>

    </property>

    <!-- 表示将 n 个 block 安排给单个线程处理。    -->

    <property>

        <name>ngmr.partition.mergesize.mb</name>

        <value>3</value>

    </property>

    <!--    开启小文件合并-->

    <property>

        <name>hive.merge.sparkfiles</name>

        <value>true</value>

    </property>

    <!--    开启小文件合并-->

    <property>

        <name>hive.map.agg</name>

        <value>true</value>

    </property>

    <!--    使用向量化查询-->

    <property>

        <name>hive.vectorized.execution.enabled</name>

        <value>true</value>

    </property>



    <!--    cbo可以优化hive的每次查询-->

    <property>

        <name>hive.cbo.enable</name>

        <value>true</value>

    </property>

    <property>

        <name>hive.stats.fetch.column.stats</name>

        <value>true</value>

    </property>

    <property>

        <name>hive.stats.fetch.partition.stats</name>

        <value>true</value>

    </property>

    <property>

        <name>hive.compute.query.using.stats</name>

        <value>true</value>

    </property>


    <!--    开启数据压缩-->

    <property>

        <name>hive.exec.compress.intermediate</name>

        <value>true</value>

    </property>

    <property>

        <name>hive.exec.compress.output</name>

        <value>true</value>

    </property>

    <!--    使简单的sql语句不执行spark引擎-->

    <property>

        <name>hive.fetch.task.conversion</name>

        <value>more</value>

    </property>

    <!--    有数据倾斜的时候进行负载均衡

    group by操作是否允许数据倾斜,默认是false,当设置为true时,执行计划会生成两个map/reduce作业,第一个MR中会将map的结果随机分布到reduce中,达到负载均衡的目的来解决数据倾斜,

    -->

    <property>

        <name>hive.groupby.skewindata</name>

        <value>true</value>

    </property>

    <!--    列裁剪,默认开启true,在做查询时只读取用到的列,这个是个有用的优化;-->

    <property>

        <name>hive.optimize.cp</name>

        <value>true</value>

    </property>

    <!--jvm重用-->

    <property>

        <name>mapreduce.job.jvm.numtasks</name>

        <value>10</value>

        <description>How many tasks to run per jvm. If set to -1, there is no limit.</description>

    </property>

    <property>

        <name>javax.jdo.option.ConnectionDriverName</name>

        <value>com.mysql.jdbc.Driver</value>

        <description>Driver class name for a JDBC metastore</description>

    </property>


    <property>

        <name>javax.jdo.option.ConnectionUserName</name>

        <value>root</value>

        <description>username to use against metastore database</description>

    </property>


    <property>

        <name>javax.jdo.option.ConnectionPassword</name>

        <value>root</value>

        <description>password to use against metastore database</description>

    </property>

</configuration>


hive cli 中设置调优参数


// 合并 block 减少 task 数量

set ngmr.partition.automerge = true;

// jvm 重用

set mapreduce.job.jvm.numtasks=10;   

// 表示将 n 个 block 安排给单个线程处理。

set ngmr.partition.mergesize.mb =3;

// 开启小文件合并

set hive.merge.sparkfiles = true;

// 开启小文件合并

set hive.map.agg = true;

// 使用向量化查询

set hive.vectorized.execution.enabled = true;

// cbo可以优化hive的每次查询

set hive.cbo.enable = true;

set hive.stats.fetch.column.stats = true;

set hive.stats.fetch.partition.stats = true;

set hive.compute.query.using.stats = true;

 

// 开启数据压缩

set hive.exec.compress.intermediate = true;

set hive.exec.compress.output = true;

// 有数据倾斜的时候进行负载均衡group by操作是否允许数据倾斜,默认是false,当设置为true时,执行计划会生成两个map/reduce作业,第一个MR中会将map的结果随机分布到reduce中,达到负载均衡的目的来解决数据倾斜,

set hive.groupby.skewindata =  true;

// 列裁剪,默认开启true,在做查询时只读取用到的列,这个是个有用的优化;

set hive.optimize.cp = true;


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。