高效使用hive


工作中经常使用hive,熟练使用hvie的配置参数可以更加高效的使用Hive

Hive option:

        hive -f   script.hql : 从文件script.hql中的读取hql执行

        hive -e 'select * from xxx': 启动hive时指定执行的hql,此种方式hql会先经过shell解释,然后再用hive执行,因此需要注意hql中被shell转义的字符

        hive -S :安静模式执行hql,这样标准输出中只有hql执行的结果,没有进度等信息,便于对结果进行过滤

        hive -i  .hiverc  :指定启动的hiverc文件

        hive --help:显示帮助信息

        hive --serverice:启动hive service,可用的service: beeline cli help hiveserver2 hiveserver hwi jar lineage metastool rcfilecat

        hive --service service_name --help: 显示hive service的帮助信息

        hive --define/-d/--hivevar:命令行传递hive变量

 Hive set  var Option:

        可用在hive命令行中查看hive配置参数和所有的变量,hive中的变量有不同的命名空间和访问权限:

        hivevar:可读/可写:用户自定义变量

        hiveconf: 可读/可写:hive想配置属性

        system: 可读/可写:Java定义配置属性

        env: 只可读: Shell环境变量

       set; 显示hiveconf, hivevar,env,system中变量

       set hivevar/env/system:var_name 显示具体某一个空间中的某个变量

      set -v : 显示所有变量,包括hadoop相关配置

常用hive配置:

       set hive.cli.print.header=true; 输出列名

       set hive.cli.print.current.db=true; 输出current db

        set hive.mapred.mode=nostrict; 使用nostrict模式,允许order by 而不limit

        set hive.exec.mode.local.auto=true; 尽量以高效地本地模式执行hql


 hive  ql 注释:  --command

 hive执行hdfs cmd: dfs command, 类似hadoop fs command

 hive执行shell:!shell_cmd

  hive 历史命令:.hivehistory

  hive默认配置: hivedefault.xml.template

  hive log配置:hive-log4j.properties, 更改hive.root.logger=DEBUG, console可将调试信息输出到console 


相关内容