https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Cli
Hive Command Line Options
To get help, run "hive -H
" or "hive --help
".
Usage (as it is in Hive 0.9.0):
usage: hive -d,--define <key=value> Variable subsitution to apply to hive commands. e.g. -d A=B or --define A=B -e <quoted-query-string> SQL from command line -f <filename> SQL from files -H,--help Print help information -h <hostname> Connecting to Hive Server on remote host --hiveconf <property=value> Use value for given property --hivevar <key=value> Variable subsitution to apply to hive commands. e.g. --hivevar A=B -i <filename> Initialization SQL file -p <port> Connecting to Hive Server on port number -S,--silent Silent mode in interactive shell -v,--verbose Verbose mode (echo executed SQL to the console)
Examples
See Variable Substitution for examples of using the hiveconf
option.
-
Example of running a query from the command line
$HIVE_HOME/bin/hive -e 'select a.col from tab1 a'
-
Example of setting Hive configuration variables
$HIVE_HOME/bin/hive -e 'select a.col from tab1 a' --hiveconf hive.exec.scratchdir=/home/my/hive_scratch --hiveconf mapred.reduce.tasks=32
-
Example of dumping data out from a query into a file using silent mode
$HIVE_HOME/bin/hive -S -e 'select a.col from tab1 a' > a.txt
-
Example of running a script non-interactively from local disk
$HIVE_HOME/bin/hive -f /home/my/hive-script.sql
-
Example of running a script non-interactively from a Hadoop supported filesystem (starting in Hive 0.14)
$HIVE_HOME/bin/hive -f hdfs://<namenode>:<port>/hive-script.sql $HIVE_HOME/bin/hive -f s3://mys3bucket/s3-script.sql
-
Example of running an initialization script before entering interactive mode
$HIVE_HOME/bin/hive -i /home/my/hive-init.sql
Hive Batch Mode Commands
When $HIVE_HOME/bin/hive
is run with the -e
or -f
option, it executes SQL commands in batch mode.
hive -e '<query-string>'
executes the query string.hive -f <filepath>
executes one or more SQL queries from a file.
Version 0.14
As of Hive 0.14, <filepath> can be from one of the Hadoop supported filesystems (HDFS, S3, etc.) as well.
$HIVE_HOME/bin/hive -f hdfs://<namenode>:<port>/hive-script.sql
$HIVE_HOME/bin/hive -f s3://mys3bucket/s3-script.sql
Logging
Hive uses log4j for logging. These logs are not emitted to the standard output by default but are instead captured to a log file specified by Hive's log4j properties file. By default Hive will use hive-log4j.default
in the conf/
directory of the Hive installation which writes out logs to /tmp/<userid>/hive.log
and uses the WARN
level.
It is often desirable to emit the logs to the standard output and/or change the logging level for debugging purposes. These can be done from the command line as follows:
$HIVE_HOME/bin/hive --hiveconf hive.root.logger=INFO,console
hive.root.logger
specifies the logging level as well as the log destination. Specifying console
as the target sends the logs to the standard error (instead of the log file).