Table of Contents
Running Hive
- Hive CLI
$HIVE_HOME/bin/hive(连接命令)
- HiveServer2 and Beeline
$HIVE_HOME/bin/hiveserver2(h2的启动命令)
$HIVE_HOME/bin/beeline -u jdbc:hive2://$H2_HOST:$H2_PORT(连接命令)
- HCatalog
$HIVE_HOME/bin/hcat -e "show tables;"(双引号内放sql)
- WebHCat (Templeton)
Hive CLI
Hive命令行选项
"hive -H
" or "hive --help
" 获取帮助,如下:
usage: hive
-d,--define <key=value> 应用于 Hive 命令的变量替换。 e.g. -d A=B or --define A=B
-e <quoted-query-string> 命令行 SQL 语句
-f <filename> SQL文件
-H,--help Print help information
-h <hostname> 连接到远程主机上的Hive服务器
--hiveconf <property=value> 使用给定属性的值
--hivevar <key=value> 变量替换应用到Hive
commands. e.g. --hivevar A=B
-i <filename> 初始化SQL文件
-p <port> 在端口号上连接到Hive服务器
-S,--silent 交互式shell中的静默模式
-v,--verbose 详细模式(回显执行到控制台的SQL)
例子
-
从命令行运行查询的示例
$HIVE_HOME/bin/hive -e 'select a.col from tab1 a'
-
设置hive配置变量的例子
$HIVE_HOME/bin/hive -e 'select a.col from tab1 a' --hiveconf hive.exec.scratchdir=/home/my/hive_scratch --hiveconf mapred.reduce.tasks=32
-
使用静默模式将数据从查询转储到文件的示例
$HIVE_HOME/bin/hive -S -e 'select a.col from tab1 a' > a.txt
-
从本地磁盘以非交互方式运行脚本的示例
$HIVE_HOME/bin/hive -f /home/my/hive-script.sql
-
从Hadoop支持的文件系统中以非交互方式运行脚本的示例 (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
-
在进入交互模式之前运行初始化脚本的例子
$HIVE_HOME/bin/hive -i /home/my/hive-init.sql
shell 命令
quit | Use quit or exit to leave the interactive shell. |
reset | 将配置重置为默认值 (as of Hive 0.10: see HIVE-3202). |
set <key>=<value> | 设置特定配置变量的值(key). |
set | 打印用户或Hive覆盖的配置变量列表。 |
set -v | 打印所有Hadoop和Hive配置变量。 |
add FILE[S] <filepath> <filepath>* | 将一个或多个文件、jar或归档文件添加到分布式缓存中的资源列表中。See Hive Resources below for more information. |
add FILE[S] <ivyurl> <ivyurl>* add JAR[S] <ivyurl> <ivyurl>* add ARCHIVE[S] <ivyurl> <ivyurl>* | 从Hive 1.2.0开始,使用Ivy://group:module:version?query_string形式的Ivy URL将一个或多个文件、jar或归档文件添加到分布式缓存中的资源列表中。See Hive Resources below for more information. |
list FILE[S] | 列出已经添加到分布式缓存的资源。See Hive Resources below for more information. |
list FILE[S] <filepath>* | 检查给定的资源是否已经添加到分布式缓存中。See Hive Resources below for more information. |
delete FILE[S] <filepath>* | 从分布式缓存中删除资源。 |
delete FILE[S] <ivyurl> <ivyurl>* delete JAR[S] <ivyurl> <ivyurl>* delete ARCHIVE[S] <ivyurl> <ivyurl>* | 从Hive 1.2.0开始,从分布式缓存中删除使用<ivyurl>添加的资源。See Hive Resources below for more information. |
! <command> | 从Hive shell执行shell命令。 |
dfs <dfs command> | 从Hive shell执行dfs命令。 |
<query string> | 执行Hive查询并将结果打印到标准输出。 |
source <filepath> | 在CLI中执行脚本文件。 |
Sample Usage:
hive> set mapred.reduce.tasks=32; hive> set; hive> select a.* from tab1; hive> !ls; hive> dfs -ls;
原文:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Cli
HiveServer2 and Beeline
HiveServer2 (在Hive 0.11中引入)有自己的CLI,称为 Beeline,它是一个基于 SQLLine 的 JDBC 客户机。由于 HiveServer2 的新开发,Hive CLI 将很快被弃用,取而代之的是 Beeline (Hive -10511)。
Beeline Hive Commands
reset | 配置重置为默认值。 |
reset <key> | 将特定配置变量(键)的值重置为默认值。 |
set <key>=<value> | 设置特定配置变量(键)的值。 |
set | 打印用户或Hive覆盖的配置变量列表。 |
set -v | 打印所有Hadoop和Hive配置变量。 |
add FILE[S] <filepath> <filepath>* | 将一个或多个文件、jar或归档文件添加到分布式缓存中的资源列表中。See Hive Resources for more information. |
add FILE[S] <ivyurl> <ivyurl>* add JAR[S] <ivyurl> <ivyurl>* add ARCHIVE[S] <ivyurl> <ivyurl>* | 从Hive 1.2.0开始,使用Ivy://group:module:version?query_string形式的Ivy URL将一个或多个文件、jar或归档文件添加到分布式缓存中的资源列表中。 See Hive Resources for more information. |
list FILE[S] | 列出已经添加到分布式缓存的资源。 See Hive Resources for more information. (As of Hive 0.14.0: HIVE-7592). |
list FILE[S] <filepath>* | 检查给定的资源是否已经添加到分布式缓存中。See Hive Resources for more information. |
delete FILE[S] <filepath>* | 从分布式缓存中删除资源。 |
delete FILE[S] <ivyurl> <ivyurl>* delete JAR[S] <ivyurl> <ivyurl>* delete ARCHIVE[S] <ivyurl> <ivyurl>* | 从Hive 1.2.0开始,从分布式缓存中删除使用<ivyurl>添加的资源。See Hive Resources for more information. |
reload | 使HiveServer2知道配置参数hive.reloadable.aux.jars指定的路径中的任何jar更改。路径(不需要重新启动HiveServer2)。更改可以是添加、删除或更新jar文件。 |
dfs <dfs command> | 执行dfs命令。 |
<query string> | 执行Hive查询并将结果打印到标准输出。 |
Beeline Command Options
-u <database URL> | 要连接的JDBC URL。如果需要,应该使用URL编码对参数值中的特殊字符进行编码。 Usage: |
-r | 重新连接到最后使用的URL(如果用户以前使用过!连接到一个URL并使用!保存到一个直线。)属性文件)。 Usage: Version: 2.1.0 (HIVE-13670) |
-n <username> | 要连接的用户名。 Usage: |
-p <password> | 连接的密码 Usage: Optional password mode: 启动Hive 2.2.0 (Hive -13589) -p选项的参数是可选的。Usage : beeline -p [valid_password] 如果在-p之后没有提供密码,则在启动连接时,Beeline将提示输入密码。当提供密码时,Beeline会在没有提示的情况下启动连接。 |
-d <driver class> | 要使用的驱动程序类。 Usage: |
-e <query> | 应该执行的查询。双引号或单引号括住查询字符串。可以多次指定此选项。 Usage: 支持在一个SQL语句中运行多个由分号分隔的SQL语句query_string: 1.2.0 (HIVE-9877) |
-f <file> | 应该执行的脚本文件。 Usage: Version: 0.12.0 (HIVE-4268) |
-i (or) --init <file or files> | 初始化的init文件 Usage: Single file: Version: 0.14.0 (HIVE-6561) Multiple files: Version: 2.1.0 (HIVE-11336) |
-w (or) --password-file <password file> | 要从中读取密码的密码文件。 Version: 1.2.0 (HIVE-7175) |
-a (or) --authType <auth type> | 作为验证属性传递给jdbc的验证类型 Version: 0.13.0 (HIVE-5155) |
--property-file <file> | 从其中读取配置属性的文件 Usage: Version: 2.2.0 (HIVE-13964) |
--hiveconf property=value | 使用给定配置属性的值。在hiv .conf.restricted目录下的属性。无法使用hiveconf重置列表(see Restricted List and Whitelist). Usage: Version: 0.13.0 (HIVE-6173) |
--hivevar name=value | Hive变量名和值。这是一个特定于组的设置,可以在会话级别设置变量,并在Hive命令或查询中引用。 Usage: |
--color=[true/false] | 控制颜色是否用于显示。默认的是false. Usage: (Not supported for Separated-Value Output formats. See HIVE-9770) |
--showHeader=[true/false] | 在查询结果中显示列名(true)或不显示列名(false)。Default is true. Usage: |
--headerInterval=ROWS | 当outputformat为表时,以行数为单位重新显示列标题的时间间隔。Default is 100. Usage: (不支持分离值输出格式。 See HIVE-9770) |
--fastConnect=[true/false] | 连接时,跳过为HiveQL语句的制表完成而构建所有表和列的列表(true)或构建列表(false)。 Default is true. Usage: |
--autoCommit=[true/false] | 启用/禁用自动事务提交。Default is false. Usage: |
--verbose=[true/false] | 显示详细的错误消息和调试信息(true)或不显示(false)。Default is false. Usage: |
--showWarnings=[true/false] | 显示在发出HiveQL命令后在连接上报告的警告。Default is false. Usage: |
--showDbInPrompt=[true/false] | 在提示中显示当前数据库名称。Default is false. Usage: Version: 2.2.0 (HIVE-14123) |
--showNestedErrs=[true/false] | 显示嵌套的错误。Default is false. Usage: |
--numberFormat=[pattern] | 使用DecimalFormat模式格式化数字。Format numbers using a DecimalFormat pattern. Usage: |
--force=[true/false] | 即使在出现错误(true)或不继续(false)后仍继续运行脚本。Default is false. Usage: |
--maxWidth=MAXWIDTH | 当outputformat为表时,截断数据之前显示的最大宽度(以字符为单位)。默认是查询终端当前宽度,然后回落到80。 Usage: |
--maxColumnWidth=MAXCOLWIDTH | 当outputformat为表时,以字符为单位的最大列宽度。Default is 50 in Hive version 2.2.0+ (see HIVE-14135) or 15 in earlier versions. Usage: |
--silent=[true/false] | 减少显示的信息量(true)或不显示信息量(false)。它还停止显示HiveServer2 (Hive 0.14及以后)和HiveQL命令(Hive 1.2.0及以后)查询的日志消息。Default is false. Usage: |
--autosave=[true/false] | 自动保存首选项(true)或不自动保存(false)。 Default is false. Usage: |
--outputformat=[table/vertical/csv/tsv/dsv/csv2/tsv2] | 结果显示的格式模式。Default is table. See Separated-Value Output Formats below for description of recommended sv options. Usage: Version: dsv/csv2/tsv2 added in 0.14.0 (HIVE-8615) |
--truncateTable=[true/false] | 如果为真,则在控制台中的表列超过控制台长度时截断它。 Version: 0.14.0 (HIVE-6928) |
--delimiterForDSV= DELIMITER | 分隔符用于分隔符分隔值的输出格式。Default is '|' character. Version: 0.14.0 (HIVE-7390) |
--isolation=LEVEL | 将事务隔离级别设置为TRANSACTION_READ_COMMITTED Usage: |
--nullemptystring=[true/false] | 使用打印null的历史行为作为空字符串(true)或使用打印null的当前行为作为空字符串(false)。Default is false. Usage: Version: 0.13.0 (HIVE-4485) |
--incremental=[true/false] | 从Hive 2.3开始默认为true,之前默认为false。当设置为false时,将在显示前获取并缓冲整个结果集,从而获得最佳的显示列大小。当设置为true时,结果行在获取时立即显示,从而降低了延迟和内存使用量,但需要额外的显示列填充。如果在客户端遇到OutOfMemory(因为获取的结果集很大),建议使用incremental=true。 |
--incrementalBufferRows=NUMROWS | 在stdout上打印行时要缓冲的行数, defaults to 1000; only applicable if Usage: Version: 2.3.0 (HIVE-14170) |
--maxHistoryRows=NUMROWS | 要存储直线历史记录的最大行数。 Version: 2.3.0 (HIVE-15166) |
--delimiter=; | 为用Beeline编写的查询设置分隔符。允许使用多字符分隔符,但不允许使用引号、斜杠和——。默认为; Usage: Version: 3.0.0 (HIVE-10865) |
--convertBinaryArrayToString=[true/false] | 以字符串或字节数组的形式显示二进制列数据。 Usage: Version: 3.0.0 (HIVE-14786) |
--help | 显示使用信息。 Usage: |
HCatalog
许多 hcat 命令可以作为 hive 命令使用,包括所有 HCatalog DDL 命令。Hive CLI 包含一些在 HCatalog CLI 中不可用的命令。注意这些差异:
- 表组和权限设置的“hcat -g”和“hcat -p”仅在HCatalog CLI中可用。
- hcat使用-p标志表示权限,而hive使用它来指定端口号。
- hcat使用没有空格的-D标志来定义key=value对,而hive使用-D或——define with a space (also——hivevar)。
- For example, "
hcat -DA=B
" versus "hive -d A=B
".
- For example, "
- 没有任何标志的hcat打印帮助消息,但hive使用-H标志或--help。
HCatalog CLI
-g |
| 告诉HCatalog需要创建的表必须具有组“mygroup”。 |
-p |
| 告诉HCatalog需要创建的表必须具有权限“rwxr-xr-x”。 |
-f |
| 告诉HCatalog那个myscript。hcatalog是一个包含要执行的DDL命令的文件。 |
-e |
| 告诉HCatalog将下列字符串视为DDL命令并执行它。 |
-D |
| 将键值对作为Java系统属性传递给HCatalog。 |
|
| 打印使用信息。 |
HCatalog DDL
DDL Command | 执行HCatalog DDL命令。 | |
Database | HCatalog数据库列表。 | |
| 描述一个HCatalog数据库。 | |
| 创建一个HCatalog数据库。 | |
| 删除(删除)一个HCatalog数据库。 | |
Table | 列出HCatalog数据库中的表。 | |
| 描述一个HCatalog表。 | |
| 创建一个新的HCatalog表。 | |
| 重命名HCatalog表。 | |
| 删除(删除)一个HCatalog表。 | |
| 创建与现有表类似的新HCatalog表。 | |
Partition | 列出HCatalog表中的所有分区。 | |
| 描述HCatalog表中的单个分区。 | |
| 在HCatalog表中创建一个分区。 | |
| 删除(删除)HCatalog表中的一个分区。 | |
Column | 列出HCatalog表中的列。 | |
| 描述HCatalog表中的单个列。 | |
| 在HCatalog表中创建一个列。 | |
Property | 表属性列表。 | |
| 返回单个表属性的值。 | |
| 设置表属性。 |
原文:https://cwiki.apache.org/confluence/display/Hive/HCatalog+CLI#HCatalogCLI-CommandLineInterface
WebHCat (Templeton)
描述了以前称为Templeton的HCatalog REST API,即WebHCat。
如下图所示,开发人员通过HTTP请求从应用程序内部访问Hadoop MapReduce(或YARN)、Pig、Hive和HCatalog DDL。此API使用的数据和代码在HDFS中进行维护。HCatalog DDL命令在被请求时直接执行。MapReduce、Pig和Hive作业由WebHCat (Templeton)服务器放置在队列中,可以根据需要监视进程或停止。开发人员在HDFS中指定应该将Pig、Hive和MapReduce结果放置到其中的位置。
URL Format
使用以下URL格式访问HCatalog的REST资源:
http://
yourserver/templeton/v1/
resource
其中“yourserver”替换为您的服务器名,“resource”替换为HCatalog资源名。
例如,要检查服务器是否正在运行,你可以访问以下网址:
ht
tp://www.myserver.com/templeton/v1/status
WebHCat Resources
General | 返回支持的响应类型列表。 | |
| 返回WebHCat服务器状态。 | |
| 返回支持的版本和当前版本的列表。 | |
version/hive (GET) | 返回正在运行的Hive版本。 (Added in Hive 0.13.0.) | |
version/hadoop (GET) | 返回运行的Hadoop版本。 (Added in Hive 0.13.0.) | |
执行HCatalog DDL命令。 | ||
| HCatalog数据库列表。 | |
| 描述一个HCatalog数据库。 | |
| 创建一个HCatalog数据库。 | |
| 删除(删除)一个HCatalog数据库。 | |
| 列出HCatalog数据库中的表。 | |
| 描述一个HCatalog表。 | |
| 创建一个新的HCatalog表。 | |
| 重命名HCatalog表。 | |
| 删除(删除)一个HCatalog表。 | |
| 创建与现有表类似的新HCatalog表。 | |
| 列出HCatalog表中的所有分区。 | |
| 描述HCatalog表中的单个分区。 | |
| 在HCatalog表中创建一个分区。 | |
| 删除(删除)HCatalog表中的一个分区。 | |
| 列出HCatalog表中的列。 | |
| 描述HCatalog表中的单个列。 | |
| 在HCatalog表中创建一个列。 | |
| 表属性列表。 | |
| 返回单个表属性的值。 | |
| 设置表属性。 | |
MapReduce | 创建并排队Hadoop流MapReduce作业。 | |
| 创建和排队标准的Hadoop MapReduce作业。 | |
Pig | 创建并排列Pig作业。 | |
Hive | 运行Hive查询和命令。 | |
Queue | 返回所有作业id的列表。 (Removed in Hive 0.14.0.) | |
| 返回给定ID的作业的状态。(Removed in Hive 0.14.0.) | |
| 根据作业的ID杀死它。 (Removed in Hive 0.14.0.) | |
Jobs | 返回所有作业id的列表。 | |
| 返回给定ID的作业的状态。 | |
| 根据作业的ID杀死它。 |
原文:https://cwiki.apache.org/confluence/display/Hive/WebHCat+UsingWebHCat#WebHCatUsingWebHCat-URLFormat
原文地址:https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-RunningHive