Beeline Shell 在嵌入式模式和远程模式下均可工作。在嵌入式模式下,它运行嵌入式 Hive(类似于Hive CLI),而远程模式用于通过 Thrift 连接到单独的 HiveServer2 进程。从Hive 0.14开始,当 Beeline 与 HiveServer2 一起使用时,它还会打印 HiveServer2 的日志消息,以查询执行到 STDERR 的查询。建议将远程 HiveServer2 模式用于生产环境,因为它更安全并且不需要为用户授予直接 HDFS /元存储访问权限。
Warning
在远程模式下,HiveServer2 仅接受有效的 Thrift 调用-即使在 HTTP 模式下,消息正文也包含 Thrift 有效负载。
Beeline Example
% bin/beeline
Hive version 0.11.0-SNAPSHOT by Apache
beeline> !connect jdbc:hive2://localhost:10000 scott tiger
!connect jdbc:hive2://localhost:10000 scott tiger
Connecting to jdbc:hive2://localhost:10000
Connected to: Hive (version 0.10.0)
Driver: Hive (version 0.10.0-SNAPSHOT)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://localhost:10000> show tables;
show tables;
+-------------------+
| tab_name |
+-------------------+
| primitives |
| src |
| src1 |
| src_json |
| src_sequencefile |
| src_thrift |
| srcbucket |
| srcbucket2 |
| srcpart |
+-------------------+
9 rows selected (1.079 seconds)
您也可以在命令行上指定连接参数。这意味着您可以从 UNIX Shell 历史 Logging 找到带有连接字符串的命令。
% beeline -u jdbc:hive2://localhost:10000/default -n scott -w password_file
Hive version 0.11.0-SNAPSHOT by Apache
Connecting to jdbc:hive2://localhost:10000/default
Beeline with NoSASL connection
如果要通过 NOSASL 模式进行连接,则必须明确指定身份验证模式:
% bin/beeline beeline> !connectjdbc:hive2://<host>:<port>/<db>;auth=noSasl hiveuser pass
Beeline Commands
Command | Description |
---|---|
!<SQLLine command> | 可在http://sqlline.sourceforge.net/获得的 SQLLine 命令列表。 |
示例:!quit
退出 BeelineClient 端。
|!delimiter |设置用 Beeline 编写的查询的分隔符。允许使用多字符定界符,但不允许使用引号,斜杠和-。默认为;
用法:!delimiter $$
版本:3.0.0(HIVE-10865)|
Beeline Properties
Property | Description |
---|---|
fetchsize | 使用标准 JDBC,您可以指定在每次查询数据库往返时获取的行数,该数量称为获取大小。 |
在 Beeline 中设置获取大小会覆盖 JDBC 驱动程序的默认获取大小,并影响在当前会话中执行的后续语句。 值-1 指示 Beeline 使用 JDBC 驱动程序的默认访存大小(默认) 每个语句的值都将零或更大的值传递给 JDBC 驱动程序 任何其他负值都将引发异常 用法: !set fetchsize 200 版本:4.0.0(HIVE-22853) |
Beeline Hive 命令
使用 Hive JDBC 驱动程序时,可以从 Beeline 运行 Hive 特定命令(与Hive CLI 命令相同)。
使用“ ;
”(分号)终止命令。脚本中的 Comments 可以使用“ --
”前缀指定。
Command | Description |
---|---|
reset | 将配置重置为默认值。 |
reset <key> | 将特定配置变量(键)的值重置为默认值。 |
注意: 如果您拼写错误的变量名,则 Beeline 将不会显示错误。
| set<key> =<value> |设置特定配置变量(键)的值。
注意: 如果您拼写错误的变量名,则 Beeline 将不会显示错误。
| set |打印由用户或 Hive 覆盖的配置变量列表。
| set -v |打印所有 Hadoop 和 Hive 配置变量。
|添加文件[S]<filepath><filepath> *
添加 JAR [S]<filepath><filepath> *
添加 ARCHIVE [S]<filepath><filepath> * |将一个或多个文件,jar 或 Files 添加到分布式缓存中的资源列表中。有关更多信息,请参见Hive Resources。
|添加文件[S]<ivyurl><ivyurl> *
添加 JAR [S]<ivyurl><ivyurl> *
添加 ARCHIVE [S]<ivyurl><ivyurl> * |从Hive 1.2.0开始,使用 ivy:// group:module:version 形式的Ivy URL 向分布式缓存中的资源列表添加一个或多个文件,jar 或存档。请求参数。有关更多信息,请参见Hive Resources。
|list FILE[S]
list JAR[S]
list ARCHIVE [S] |列出已经添加到分布式缓存的资源。有关更多信息,请参见Hive Resources。 (从 Hive 0.14.0 开始:HIVE-7592)。
|列出文件[S]<filepath> *
列出 JAR [S]<filepath> *
list ARCHIVE [S]<filepath> * |检查给定资源是否已经添加到分布式缓存中。有关更多信息,请参见Hive Resources。
|删除文件[S]<filepath> *
删除 JAR [S]<filepath> *
|删除 ARCHIVE [S]<filepath> * |从分布式缓存中删除资源。
|删除文件[S]<ivyurl><ivyurl> *
删除 JAR [S]<ivyurl><ivyurl> *
delete ARCHIVE [S]<ivyurl><ivyurl> * |从Hive 1.2.0开始,从分布式缓存中删除使用\ 添加的资源。有关更多信息,请参见Hive Resources。
| reload |从Hive 0.14.0开始,使 HiveServer2 知道配置参数hive.reloadable.aux.jars.path指定的路径中的任何 jar 变化(无需重新启动 HiveServer2)。更改可以是添加,删除或更新 jar 文件。
| dfs<dfs command> |执行 dfs 命令。
|<query string> |执行 Hive 查询并将结果打印到标准输出中。
Beeline 命令选项
Beeline CLI 支持以下命令行选项:
Option | Description |
---|---|
-u *<database URL> * | 要连接的 JDBC URL。如果需要,参数值中的特殊字符应使用 URL 编码进行编码。 |
用法: beeline -u * db_URL * |
|
-r | Reconnect代表上次使用的 URL(如果用户以前使用!connect 代表 URL,而!save 代表 beeline.properties 文件)。用法: beeline -r 版本:2.1.0(HIVE-13670) |
-n *<username> * | 连接的用户名。 用法: beeline -n 有效用户 |
-p *<password> * | 连接密码。 用法: beeline -p 有效密码可选密码模式: 从 Hive 2.2.0(HIVE-13589)开始,-p 选项的参数是可选的。 用法:beeline -p [valid_password] 如果未提供密码,则-p Beeline 将在启动连接时提示您 Importing 密码。当提供密码时,Beeline 使用它来启动连接而不提示。 |
-d *<driver class> * | 要使用的驱动程序类。 用法: beeline -d * driver_class * |
-e *<query> * | 应执行的查询。双引号或单引号引起来的查询字符串。可以多次指定此选项。 用法: beeline -e " * query_string “支持在单个 query_string *中运行多个用分号分隔的 SQL 语句:1.2.0(HIVE-9877) 错误修复(空指针异常):0.13.0(HIVE-5765) 错误修复(不支持--headerInterval):0.14.0(HIVE-7647) 错误修复(在后台运行 -e ):1.3.0 和 2.0.0(HIVE-6758); workaround available适用于早期版本 |
-f *<file> * | 应执行的脚本文件。 用法: beeline -f 文件路径版本:0.12.0(HIVE-4268) 注意:如果脚本包含选项卡,则在 0.12.0 版中查询编译会失败。此错误已在版本 0.13.0(HIVE-6359)中修复。 错误修复(在后台运行 -f ):1.3.0 和 2.0.0(HIVE-6758); workaround available适用于早期版本 |
-i (或) -init <file or files> | 用于初始化的初始化文件 用法: beeline -i /tmp/initfile Single file: 版本:0.14.0(HIVE-6561) Multiple files: 版本:2.1.0(HIVE-11336) |
-w (或) -password-file <password file> | 从中读取密码的密码文件。 版本:1.2.0(HIVE-7175) |
-a (或) -authType <auth type> | 作为 auth 属性传递给 jdbc 的身份验证类型 版本:0.13.0(HIVE-5155) |
-属性文件 <file> | 用于从中读取配置属性的文件 用法: beeline --property-file /tmp/a 版本:2.2.0(HIVE-13964) |
-hiveconf *属性 = value * | 为给定的配置属性使用* value *。 hive.conf.restricted.list 中列出的属性无法使用 hiveconf 重置(请参阅限制名单和白名单)。 用法: beeline --hiveconf * prop1 * = * value1 *版本:0.13.0(HIVE-6173) |
-hivevar *名称 = value * | 配置单元变量名称和值。这是特定于 Hive 的设置,其中可以在会话级别设置变量,并在 Hive 命令或查询中引用。 用法: beeline --hivevar * var1 * = * value1 * |
-color = [true/false] | 控制是否使用颜色进行显示。默认为 false。 用法: beeline --color=true (不支持分隔值输出格式.请参见HIVE-9770) |
-showHeader = [true/false] | 在查询结果中显示列名称(是)还是不(false)。默认为 true。 用法: beeline --showHeader=false |
-headerInterval = ROWS | 当表为 outputformat 时,重新显示列标题的间隔(以行数为单位)。默认值为 100. 用法: beeline --headerInterval=50 (不支持分隔值输出格式.请参见HIVE-9770) |
-fastConnect = [true/false] | 连接时, |