impala-shell Configuration Options
      You can specify the following options when starting the impala-shell command to change how
      shell commands are executed. The table shows the format to use when specifying each option on the command
      line, or through the $HOME/.impalarc configuration file.
    
        These options are different than the configuration options for the impalad daemon itself.
        For the impalad options, see Modifying Impala Startup Options.
      
Summary of impala-shell Configuration Options
The following table shows the names and allowed arguments for the impala-shell configuration options. You can specify options on the command line, or in a configuration file as described in impala-shell Configuration File.
| Command-Line Option | Configuration File Setting | Explanation | 
|---|---|---|
| -B or --delimited | write_delimited=true | 
                  Causes all query results to be printed in plain format as a delimited text file. Useful for
                  producing data files to be used with other Hadoop components. Also useful for avoiding the
                  performance overhead of pretty-printing all output, especially when running benchmark tests using
                  queries returning large result sets. Specify the delimiter character with the
                   | 
| -b or --kerberos_host_fqdn | kerberos_host_fqdn= load-balancer-hostname | 
                  If set, the setting overrides the expected hostname of the
                  Impala daemon's Kerberos service principal.
                    impala-shell will check that the server's
                  principal matches this hostname. This may be used when
                     | 
| --print_header | print_header=true | |
| -o filename or --output_file filename | output_file=filename | 
                  Stores all query results in the specified file. Typically used to store the results of a single
                  query issued from the command line with the  | 
| --output_delimiter=character | output_delimiter=character | 
                  Specifies the character to use as a delimiter between fields when query results are printed in
                  plain format by the  | 
| -p or --show_profiles | show_profiles=true | 
                  Displays the query execution plan (same output as the  | 
| -h or --help | N/A | Displays help information. | 
| N/A | history_max=1000 | Sets the maximum number of queries to store in the history file. | 
| -i hostname or --impalad=hostname[:portnum] | impalad=hostname[:portnum] | 
                  Connects to the  | 
| -q query or --query=query | query=query | 
                  Passes a query or other impala-shell command from the command line. The
                  impala-shell interpreter immediately exits after processing the statement. It
                  is limited to a single statement, which could be a  | 
| -f query_file or --query_file=query_file | query_file=path_to_query_file | 
                  Passes a SQL query from a file. Multiple statements must be semicolon (;) delimited.
                  In Impala 2.3 and higher, you can specify a filename of  | 
| --query_option="option=value" -Q "option=value" | 
                 Header line  | Sets default query options for an invocation of the impala-shell command. To set multiple query options at once, use more than one instance of this command-line option. The query option names are not case-sensitive. | 
| -k or --kerberos | use_kerberos=true | 
                  Kerberos authentication is used when the shell connects to  | 
| -s kerberos_service_name or --kerberos_service_name=name | kerberos_service_name=name | 
                  Instructs  | 
| -V or --verbose | verbose=true | Enables verbose output. | 
| --quiet | verbose=false | Disables verbose output. | 
| -v or --version | version=true | Displays version information. | 
| -c | ignore_query_failure=true | Continues on query failure. | 
| -d default_db or --database=default_db | default_db=default_db | 
                  Specifies the database to be used on startup. Same as running the
                   | 
| -ssl | ssl=true | Enables TLS/SSL for impala-shell. | 
| --ca_cert=path_to_certificate | ca_cert=path_to_certificate | The local pathname pointing to the third-party CA certificate, or to a copy of the server
                certificate for self-signed server certificates. If --ca_certis not set,
                impala-shell enables TLS/SSL, but does not validate the server certificate. This is
                useful for connecting to a known-good Impala that is only running over TLS/SSL, when a copy of the
                certificate is not available (such as when debugging customer installations). | 
| -l | use_ldap=true | Enables LDAP authentication. | 
| -u | user=user_name | Supplies the username, when LDAP authentication is enabled by the -loption.
                (Specify the short username, not the full LDAP distinguished name.) The shell then prompts
                interactively for the password. | 
| --ldap_password_cmd=command | N/A | Specifies a command to run to retrieve the LDAP password,
                when LDAP authentication is enabled by the -loption.
                If the command includes space-separated arguments, enclose the command and
                its arguments in quotation marks. | 
| --config_file=path_to_config_file | N/A | Specifies the path of the file containing impala-shell configuration settings. The default is $HOME/.impalarc. This setting can only be specified on the command line. | 
| --live_progress | N/A | Prints a progress bar showing roughly the percentage complete for each query. The information is updated interactively as the query progresses. See LIVE_PROGRESS Query Option (Impala 2.3 or higher only). | 
| --live_summary | N/A | Prints a detailed report, similar to the SUMMARYcommand, showing progress details for each phase of query execution.
              The information is updated interactively as the query progresses.
              See LIVE_SUMMARY Query Option (Impala 2.3 or higher only). | 
| --var=variable_name=value | N/A | Defines a substitution variable that can be used within the impala-shell session.
                The variable can be substituted into statements processed by the -qor-foptions,
                or in an interactive shell session.
                Within a SQL statement, you substitute the value by using the notation${var:variable_name}.
                This feature is available in Impala 2.5 and higher. | 
impala-shell Configuration File
        You can define a set of default options for your impala-shell environment, stored in the
        file $HOME/.impalarc. This file consists of key-value pairs, one option per line.
        Everything after a # character on a line is treated as a comment and ignored.
      
        The configuration file must contain a header label [impala], followed by the options
        specific to impala-shell. (This standard convention for configuration files lets you
        use a single file to hold configuration options for multiple applications.)
      
        To specify a different filename or path for the configuration file, specify the argument
        --config_file=path_to_config_file on the
        impala-shell command line.
      
The names of the options in the configuration file are similar (although not necessarily identical) to the long-form command-line arguments to the impala-shell command. For the names to use, see Summary of impala-shell Configuration Options.
Any options you specify on the impala-shell command line override any corresponding options within the configuration file.
        The following example shows a configuration file that you might use during benchmarking tests. It sets
        verbose mode, so that the output from each SQL query is followed by timing information.
        impala-shell starts inside the database containing the tables with the benchmark data,
        avoiding the need to issue a USE statement or use fully qualified table names.
      
        In this example, the query output is formatted as delimited text rather than enclosed in ASCII art boxes,
        and is stored in a file rather than printed to the screen. Those options are appropriate for benchmark
        situations, so that the overhead of impala-shell formatting and printing the result set
        does not factor into the timing measurements. It also enables the show_profiles option.
        That option prints detailed performance information after each query, which might be valuable in
        understanding the performance of benchmark queries.
      
[impala]
verbose=true
default_db=tpc_benchmarking
write_delimited=true
output_delimiter=,
output_file=/home/tester1/benchmark_results.csv
show_profiles=true
        The following example shows a configuration file that connects to a specific remote Impala node, runs a
        single query within a particular database, then exits. Any query options predefined under the
        [impala.query_options] section in the configuration file take effect during the session.
      
        You would typically use this kind of single-purpose
        configuration setting with the impala-shell command-line option
        --config_file=path_to_config_file, to easily select between many
        predefined queries that could be run against different databases, hosts, or even different clusters. To run
        a sequence of statements instead of a single query, specify the configuration option
        query_file=path_to_query_file instead.
      
[impala]
impalad=impala-test-node1.example.com
default_db=site_stats
# Issue a predefined query and immediately exit.
query=select count(*) from web_traffic where event_date = trunc(now(),'dd')
[impala.query_options]
mem_limit=32g