Impala impala-shell 配置选项


impala-shell配置选项

您可以在启动impala-shell命令时指定以下选项来更改shell命令的执行方式。该表显示了在命令行上或通过impala-shell配置文件指定每个选项时使用的格式。

笔记:这些选项与impalad守护程序本身的配置选项不同。

impala-shell配置选项摘要

下表显示了impala-shell配置选项的名称和允许的参数。

命令行选项

配置文件设置

解释

-B或

–定界

write_delimited=true

使所有查询结果以纯格式打印为带分隔符的文本文件。用于生成与其他Hadoop组件一起使用的数据文件。对于避免漂亮打印所有输出的性能开销也很有用,尤其是在使用返回大结果集的查询运行基准测试时。使用–output_delimiter选项指定分隔符。将所有查询结果存储在一个文件中,而不是使用该-B选项打印到屏幕上。在Impala1.0.1中添加。

-b或

–kerberos_host_fqdn

kerberos_host_fqdn=

load-balancer-hostname

如果设置,该设置将覆盖Impala守护进程的Kerberos服务主体的预期主机名。impala-shell将检查服务器的主体是否与此主机名匹配。这可以在impalad配置为通过负载平衡器访问时使用,但希望impala-shellimpalad直接与特定对象对话。

–print_header

print_header=true

 

-o文件名或

–output_file文件名

output_file=filename

将所有查询结果存储在指定文件中。通常用于存储从带有-q选项的命令行发出的单个查询的结果。也适用于交互式会话;您会看到诸如获取的行数之类的消息,但不会看到实际的结果集。要在组合-q和-o选项时抑制这些附带消息,请重定向stderr到/dev/null。在Impala1.0.1中添加。

–output_delimiter=character

output_delimiter=character

指定在-B选项以纯格式打印查询结果时用作字段之间的分隔符的字符。默认为制表符(‘\t’)。如果输出值包含定界符,则该字段被引用,通过双引号转义,或两者兼而有之。在Impala1.0.1中添加。

-p或

–show_profiles

show_profiles=true

EXPLAIN对于shell执行的每个查询,显示查询执行计划(与语句相同的输出)和执行步骤的更详细的低级细分。

-h或

-帮助

N/A

显示帮助信息。

不适用

history_max=1000

设置要存储在历史文件中的最大查询数。

-i主机名或

–impalad=主机名[:端口编号]

impalad=主机名[:端口编号]

连接到impalad指定主机上的守护进程。除非您提供其他值,否则默认端口为21050。您可以连接到集群中正在运行的任何主机impalad。如果您连接到使用标志impalad指定的备用端口启动的实例–fe_port,请提供该备用端口。

-q查询或

–query=查询

query=query

从命令行传递查询或其他impala-shell命令。该黑斑羚壳解释处理语句后立即退出。它仅限于一个单一的说法,这可能是一个SELECT,CREATETABLE,SHOWTABLES或任何其他声明的认可impala-shell。因为您不能传递USE语句和另一个查询,所以完全限定default数据库外任何表的名称。(或者使用该-f选项传递带有USE语句后跟其他查询的文件。)

-fquery_file或

–query_file=query_file

query_file=path_to_query_file

从文件传递SQL查询。多个语句必须以分号(;)分隔。在Impala2.3及更高版本中,您可以指定一个文件名-来表示标准输入。此功能使将impala-shell用作Unix管道的一部分很方便,其中SQL语句由其他工具动态生成。

–query_option=

“选项=

值”

-Q”选项=

值”

标题行[impala.query_options],后面的行后面是option=value,每行一个选项。

为impala-shell命令的调用设置默认查询选项。要一次设置多个查询选项,请使用此命令行选项的多个实例。查询选项名称不区分大小写。

-k或

–kerberos

use_kerberos=true

当shell连接到impalad.如果impalad您要连接的实例上未启用Kerberos,则会显示错误。

-skerberos_service_name或

–kerberos_service_name=名称

kerberos_service_name=name

指示impala-shell对特定impalad服务主体进行身份验证。如果未指定kerberos_service_name,impala则默认使用。如果此选项与不支持Kerberos的连接结合使用,则会返回错误。

-V或

verbose

verbose=true

启用详细输出。

quiet

verbose=false

禁用详细输出。

-v或

-version

version=true

显示版本信息。

-C

ignore_query_failure=true

在查询失败时继续。

-ddefault_db或

–database=default_db

default_db=default_db

指定要在启动时使用的数据库。与USE连接后运行语句相同。如果未指定,DEFAULT则使用名为的数据库。

-ssl

ssl=true

为impala-shell启用TLS/SSL。

–ca_cert=path_to_certificate

ca_cert=path_to_certificate

指向第三方CA证书或自签名服务器证书的服务器证书副本的本地路径名。如果–ca_cert未设置,impala-shell将启用TLS/SSL,但不会验证服务器证书。当证书副本不可用时(例如调试客户安装时),这对于连接到仅通过TLS/SSL运行的已知良好Impala非常有用。

-这

use_ldap=true

启用LDAP身份验证。

-u

user=USER_NAME

提供用户名,当通过-l选项启用LDAP身份验证时。(指定短用户名,而不是完整的LDAP专有名称。)然后shell以交互方式提示输入密码。

–ldap_password_cmd=命令

N/A

指定要运行以检索LDAP密码的命令,当通过-l选项启用LDAP身份验证时。如果命令包含以空格分隔的参数,请将命令及其参数用引号引起来。

–config_file=path_to_config_file

N/A

指定包含impala-shell配置设置的文件的路径。默认为/etc/impalarc。此设置只能在命令行上指定。

–live_progress

live_progress=true

打印一个进度条,大致显示每个查询的完成百分比。随着查询的进行,信息以交互方式更新。

–disable_live_progress

live_progress=false

命令行标志允许用户在交互模式下禁用live_progress。

–live_summary

N/A

打印详细报告,类似于SUMMARY命令,显示查询执行的每个阶段的进度详细信息。随着查询的进行,信息以交互方式更新。

–var=variable_name=值

N/A

定义可在impala-shell会话中使用的替换变量。该变量可以替换为由-q或-f选项处理的语句,或在交互式shell会话中。在SQL语句中,您可以使用表示法替换该值。此功能在Impala2.5及更高版本中可用。${var:variable_name}

–auth_creds_ok_in_clear

N/A

允许LDAP身份验证与不安全的shell连接一起使用。警告:这将允许以未加密的方式发送身份验证凭据,因此可能容易受到攻击。

–protocol=protocol

N/A

用于连接Impala的协议。

有效的协议值为:

  • ‘hs2’:Impala-shell使用基于二进制TCP的传输通过HiveServer2协议与ImpalaDaemon对话。这是当前的默认设置。
  • ‘hs2-http’:Impala-shell使用HTTP传输通过HiveServer2协议与ImpalaDaemon对话。
  • ‘beeswax’:Impala-shell使用基于二进制TCP的传输通过Beeswax与ImpalaDaemon对话。

您无法使用’hs2’或’hs2-http’选项连接到3.2或更早版本的Impala。

蜂蜡支持已弃用,将来会被删除。

impala-shell配置文件

您可以在配置文件中存储impala-shell的一组默认设置impala-shell

全局impala-shell配置文件位于/etc/impalarc.

用户级impala-shell配置文件位于~/.impalarc.

请注意,全局级文件名与用户级文件名不同。全局级别的文件名在文件名中不包含点(.)。

全局配置文件的默认路径可以通过设置$IMPALA_SHELL_GLOBAL_CONFIG_FILE环境变量来改变。

要为用户级配置文件指定不同的文件名或路径,请启动impala-shell,并将--config_fileimpala-shell选项设置为配置文件的路径。

通常,管理员为impala-shell创建全局配置文件,如果存在用户级配置文件,则用户配置文件中设置的选项优先于全局配置文件中的选项。

反过来,您在impala-shell命令行上指定的任何选项都会覆盖配置文件中的任何相应选项。

impala-shell配置文件(全球或用户)的配置文件必须包含一个标题标签[impala],随后选择特定的帕拉-壳。

impala-shell配置文件由键-值对,每行一个选项。#一行中字符之后的所有内容都被视为注释并被忽略。

配置文件中选项的名称与impala-shell命令的长格式命令行参数相似(尽管不一定相同)。

您可以使用指定键值对选项keyval,类似于--var命令行选项。例如,keyval=variable1=value1。

[impala]部分中指定的查询选项会覆盖该部分中指定的选项[impala.query_options]

以下示例显示了您可能在基准测试期间使用的配置文件。它设置详细模式,以便每个SQL查询的输出后跟计时信息。impala-shell在包含具有基准数据的表的数据库中启动,从而避免需要发出USE语句或使用完全限定的表名。

在此示例中,查询输出被格式化为分隔文本而不是包含在ASCII艺术框中,并且存储在文件中而不是打印到屏幕上。这些选项适用于基准测试情况,因此impala-shell格式化和打印结果集的开销不会影响计时测量。它还启用该show_profiles选项。该选项会在每次查询后打印详细的性能信息,这对于了解基准查询的性能可能很有价值。

[impala]
verbose=true
default_db=tpc_benchmarking
write_delimited=true
output_delimiter=,
output_file=/home/tester1/benchmark_results.csv
show_profiles=true
keyval=msg1=hello,keyval=msg2=world

以下示例显示了一个配置文件,该文件连接到特定的远程Impala节点,在特定数据库中运行单个查询,然后退出。[impala.query_options]配置文件中该部分下预定义的任何查询选项在会话期间生效。

您通常会将这种单一用途的配置设置与impala-shell命令行选项一起使用,以便在可以针对不同数据库、主机甚至不同集群运行的许多预定义查询之间轻松进行选择。要运行一系列语句而不是单个查询,请改为指定配置选项。--config_file=path_to_config_filequery_file=path_to_query_file

[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