Table of Contents
Running Hive
Hive CLI
Hive命令行选项
例子
shell 命令
Sample Usage:
HiveServer2 and Beeline
Beeline Hive Commands
Beeline Command Options
HCatalog
HCatalog CLI
HCatalog DDL
WebHCat (Templeton)
URL Format
WebHCat Resources
$HIVE_HOME/bin/hive(连接命令)
$HIVE_HOME/bin/hiveserver2(h2的启动命令)
$HIVE_HOME/bin/beeline -u jdbc:hive2://$H2_HOST:$H2_PORT(连接命令)
$HIVE_HOME/bin/hcat -e "show tables;"(双引号内放sql)
"hive -H
" or "hive --help
" 获取帮助,如下:
usage: hive
-d,--define 应用于 Hive 命令的变量替换。 e.g. -d A=B or --define A=B
-e 命令行 SQL 语句
-f SQL文件
-H,--help Print help information
-h 连接到远程主机上的Hive服务器
--hiveconf 使用给定属性的值
--hivevar 变量替换应用到Hive
commands. e.g. --hivevar A=B
-i 初始化SQL文件
-p 在端口号上连接到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://
: /hive-script.sql $HIVE_HOME/bin/hive -f s3://mys3bucket/s3-script.sql
在进入交互模式之前运行初始化脚本的例子
$HIVE_HOME/bin/hive -i /home/my/hive-init.sql
quit |
Use quit or exit to leave the interactive shell. |
reset |
将配置重置为默认值 (as of Hive 0.10: see HIVE-3202). |
set |
设置特定配置变量的值(key). |
set |
打印用户或Hive覆盖的配置变量列表。 |
set -v |
打印所有Hadoop和Hive配置变量。 |
add FILE[S] |
将一个或多个文件、jar或归档文件添加到分布式缓存中的资源列表中。See Hive Resources below for more information. |
add FILE[S] add JAR[S] add ARCHIVE[S] |
从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] |
检查给定的资源是否已经添加到分布式缓存中。See Hive Resources below for more information. |
delete FILE[S] |
从分布式缓存中删除资源。 |
delete FILE[S] delete JAR[S] delete ARCHIVE[S] |
从Hive 1.2.0开始,从分布式缓存中删除使用 |
! |
从Hive shell执行shell命令。 |
dfs |
从Hive shell执行dfs命令。 |
|
执行Hive查询并将结果打印到标准输出。 |
source |
在CLI中执行脚本文件。 |
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 (在Hive 0.11中引入)有自己的CLI,称为 Beeline,它是一个基于 SQLLine 的 JDBC 客户机。由于 HiveServer2 的新开发,Hive CLI 将很快被弃用,取而代之的是 Beeline (Hive -10511)。
reset |
配置重置为默认值。 |
reset |
将特定配置变量(键)的值重置为默认值。 |
set |
设置特定配置变量(键)的值。 |
set |
打印用户或Hive覆盖的配置变量列表。 |
set -v |
打印所有Hadoop和Hive配置变量。 |
add FILE[S] |
将一个或多个文件、jar或归档文件添加到分布式缓存中的资源列表中。See Hive Resources for more information. |
add FILE[S] add JAR[S] add ARCHIVE[S] |
从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] |
检查给定的资源是否已经添加到分布式缓存中。See Hive Resources for more information. |
delete FILE[S] |
从分布式缓存中删除资源。 |
delete FILE[S] delete JAR[S] delete ARCHIVE[S] |
从Hive 1.2.0开始,从分布式缓存中删除使用 |
reload | 使HiveServer2知道配置参数hive.reloadable.aux.jars指定的路径中的任何jar更改。路径(不需要重新启动HiveServer2)。更改可以是添加、删除或更新jar文件。 |
dfs |
执行dfs命令。 |
|
执行Hive查询并将结果打印到标准输出。 |
-u |
要连接的JDBC URL。如果需要,应该使用URL编码对参数值中的特殊字符进行编码。 Usage: |
-r |
重新连接到最后使用的URL(如果用户以前使用过!连接到一个URL并使用!保存到一个直线。)属性文件)。 Usage: Version: 2.1.0 (HIVE-13670) |
-n |
要连接的用户名。 Usage: |
-p |
连接的密码 Usage: Optional password mode: 启动Hive 2.2.0 (Hive -13589) -p选项的参数是可选的。Usage : beeline -p [valid_password] 如果在-p之后没有提供密码,则在启动连接时,Beeline将提示输入密码。当提供密码时,Beeline会在没有提示的情况下启动连接。 |
-d |
要使用的驱动程序类。 Usage: |
-e |
应该执行的查询。双引号或单引号括住查询字符串。可以多次指定此选项。 Usage: 支持在一个SQL语句中运行多个由分号分隔的SQL语句query_string: 1.2.0 (HIVE-9877) |
-f |
应该执行的脚本文件。 Usage: Version: 0.12.0 (HIVE-4268) |
-i (or) --init |
初始化的init文件 Usage: Single file: Version: 0.14.0 (HIVE-6561) Multiple files: Version: 2.1.0 (HIVE-11336) |
-w (or) --password-file |
要从中读取密码的密码文件。 Version: 1.2.0 (HIVE-7175) |
-a (or) --authType |
作为验证属性传递给jdbc的验证类型 Version: 0.13.0 (HIVE-5155) |
--property-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: |
原文:https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-BeelineCommands
许多 hcat 命令可以作为 hive 命令使用,包括所有 HCatalog DDL 命令。Hive CLI 包含一些在 HCatalog CLI 中不可用的命令。注意这些差异:
hcat -DA=B
" versus "hive -d A=B
".HCatalog CLI
-g |
|
告诉HCatalog需要创建的表必须具有组“mygroup”。 |
-p |
|
告诉HCatalog需要创建的表必须具有权限“rwxr-xr-x”。 |
-f |
|
告诉HCatalog那个myscript。hcatalog是一个包含要执行的DDL命令的文件。 |
-e |
|
告诉HCatalog将下列字符串视为DDL命令并执行它。 |
-D |
|
将键值对作为Java系统属性传递给HCatalog。 |
|
|
打印使用信息。 |
DDL Command |
ddl (POST) |
执行HCatalog DDL命令。 |
Database |
ddl/database (GET) |
HCatalog数据库列表。 |
|
ddl/database/:db (GET) |
描述一个HCatalog数据库。 |
|
ddl/database/:db (PUT) |
创建一个HCatalog数据库。 |
|
ddl/database/:db (DELETE) |
删除(删除)一个HCatalog数据库。 |
Table |
ddl/database/:db/table (GET) |
列出HCatalog数据库中的表。 |
|
ddl/database/:db/table/:table (GET) |
描述一个HCatalog表。 |
|
ddl/database/:db/table/:table (PUT) |
创建一个新的HCatalog表。 |
|
ddl/database/:db/table/:table (POST) |
重命名HCatalog表。 |
|
ddl/database/:db/table/:table (DELETE) |
删除(删除)一个HCatalog表。 |
|
ddl/database/:db/table/:existingtable/like/:newtable (PUT) |
创建与现有表类似的新HCatalog表。 |
Partition |
ddl/database/:db/table/:table/partition (GET) |
列出HCatalog表中的所有分区。 |
|
ddl/database/:db/table/:table/partition/:partition (GET) |
描述HCatalog表中的单个分区。 |
|
ddl/database/:db/table/:table/partition/:partition (PUT) |
在HCatalog表中创建一个分区。 |
|
ddl/database/:db/table/:table/partition/:partition (DELETE) |
删除(删除)HCatalog表中的一个分区。 |
Column |
ddl/database/:db/table/:table/column (GET) |
列出HCatalog表中的列。 |
|
ddl/database/:db/table/:table/column/:column (GET) |
描述HCatalog表中的单个列。 |
|
ddl/database/:db/table/:table/column/:column (PUT) |
在HCatalog表中创建一个列。 |
Property |
ddl/database/:db/table/:table/property (GET) |
表属性列表。 |
|
ddl/database/:db/table/:table/property/:property (GET) |
返回单个表属性的值。 |
|
ddl/database/:db/table/:table/property/:property (PUT) |
设置表属性。 |
原文:https://cwiki.apache.org/confluence/display/Hive/HCatalog+CLI#HCatalogCLI-CommandLineInterface
描述了以前称为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格式访问HCatalog的REST资源:
http://
yourserver/templeton/v1/
resource
其中“yourserver”替换为您的服务器名,“resource”替换为HCatalog资源名。
例如,要检查服务器是否正在运行,你可以访问以下网址:
ht
tp://www.myserver.com/templeton/v1/status
General |
:version (GET) |
返回支持的响应类型列表。 |
|
status (GET) |
返回WebHCat服务器状态。 |
|
version (GET) |
返回支持的版本和当前版本的列表。 |
version/hive (GET) | 返回正在运行的Hive版本。 (Added in Hive 0.13.0.) | |
version/hadoop (GET) | 返回运行的Hadoop版本。 (Added in Hive 0.13.0.) | |
DDL |
ddl (POST) |
执行HCatalog DDL命令。 |
|
ddl/database (GET) |
HCatalog数据库列表。 |
|
ddl/database/:db (GET) |
描述一个HCatalog数据库。 |
|
ddl/database/:db (PUT) |
创建一个HCatalog数据库。 |
|
ddl/database/:db (DELETE) |
删除(删除)一个HCatalog数据库。 |
|
ddl/database/:db/table (GET) |
列出HCatalog数据库中的表。 |
|
ddl/database/:db/table/:table (GET) |
描述一个HCatalog表。 |
|
ddl/database/:db/table/:table (PUT) |
创建一个新的HCatalog表。 |
|
ddl/database/:db/table/:table (POST) |
重命名HCatalog表。 |
|
ddl/database/:db/table/:table (DELETE) |
删除(删除)一个HCatalog表。 |
|
ddl/database/:db/table/:existingtable/like/:newtable (PUT) |
创建与现有表类似的新HCatalog表。 |
|
ddl/database/:db/table/:table/partition (GET) |
列出HCatalog表中的所有分区。 |
|
ddl/database/:db/table/:table/partition/:partition (GET) |
描述HCatalog表中的单个分区。 |
|
ddl/database/:db/table/:table/partition/:partition (PUT) |
在HCatalog表中创建一个分区。 |
|
ddl/database/:db/table/:table/partition/:partition (DELETE) |
删除(删除)HCatalog表中的一个分区。 |
|
ddl/database/:db/table/:table/column (GET) |
列出HCatalog表中的列。 |
|
ddl/database/:db/table/:table/column/:column (GET) |
描述HCatalog表中的单个列。 |
|
ddl/database/:db/table/:table/column/:column (PUT) |
在HCatalog表中创建一个列。 |
|
ddl/database/:db/table/:table/property (GET) |
表属性列表。 |
|
ddl/database/:db/table/:table/property/:property (GET) |
返回单个表属性的值。 |
|
ddl/database/:db/table/:table/property/:property (PUT) |
设置表属性。 |
MapReduce |
mapreduce/streaming (POST) |
创建并排队Hadoop流MapReduce作业。 |
|
mapreduce/jar (POST) |
创建和排队标准的Hadoop MapReduce作业。 |
Pig |
pig (POST) |
创建并排列Pig作业。 |
Hive |
hive (POST) |
运行Hive查询和命令。 |
Queue |
queue (GET) |
返回所有作业id的列表。 (Removed in Hive 0.14.0.) |
|
queue/:jobid (GET) |
返回给定ID的作业的状态。(Removed in Hive 0.14.0.) |
|
queue/:jobid (DELETE) |
根据作业的ID杀死它。 (Removed in Hive 0.14.0.) |
Jobs |
jobs (GET) |
返回所有作业id的列表。 |
|
jobs/:jobid (GET) |
返回给定ID的作业的状态。 |
|
jobs/:jobid (DELETE) |
根据作业的ID杀死它。 |
原文:https://cwiki.apache.org/confluence/display/Hive/WebHCat+UsingWebHCat#WebHCatUsingWebHCat-URLFormat
原文地址:https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-RunningHive