工作中常常使用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