连接 Hive 的四种方法

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


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           应用于 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

shell 命令

quit
exit

Use quit or exit to leave the interactive shell.

reset

将配置重置为默认值 (as of Hive 0.10: see HIVE-3202).

set =

设置特定配置变量的值(key).
Note: 如果您拼错了变量名,CLI将不会显示错误。

set

打印用户或Hive覆盖的配置变量列表。

set -v

打印所有Hadoop和Hive配置变量。

add FILE[S] *
add JAR[S] *
add ARCHIVE[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]
list JAR[S]
list ARCHIVE[S]

列出已经添加到分布式缓存的资源。See Hive Resources below for more information.

list FILE[S] *
list JAR[S] *
list ARCHIVE[S] *

检查给定的资源是否已经添加到分布式缓存中。See Hive Resources below for more information.

delete FILE[S] *
delete JAR[S] *
delete ARCHIVE[S] *

从分布式缓存中删除资源。
delete FILE[S] *
delete JAR[S] *
delete ARCHIVE[S] *

从Hive 1.2.0开始,从分布式缓存中删除使用添加的资源。See Hive Resources below for more information.

!

从Hive shell执行shell命令。

dfs

从Hive shell执行dfs命令。

执行Hive查询并将结果打印到标准输出。

source

在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

将特定配置变量(键)的值重置为默认值。
Note: 如果您拼错了变量名,则Beeline将不会显示错误。

set =

设置特定配置变量(键)的值。
Note: 如果您拼错了变量名,则Beeline将不会显示错误。

set

打印用户或Hive覆盖的配置变量列表。

set -v

打印所有Hadoop和Hive配置变量。

add FILE[S] *
add JAR[S] *
add ARCHIVE[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]
list JAR[S]
list ARCHIVE[S]

列出已经添加到分布式缓存的资源。 See Hive Resources for more information. (As of Hive 0.14.0: HIVE-7592).

list FILE[S] *
list JAR[S] *
list ARCHIVE[S] *

检查给定的资源是否已经添加到分布式缓存中。See Hive Resources for more information.

delete FILE[S] *
delete JAR[S] *
delete ARCHIVE[S] *

从分布式缓存中删除资源。
delete FILE[S]
delete JAR[S]
delete ARCHIVE[S] *

从Hive 1.2.0开始,从分布式缓存中删除使用添加的资源。See Hive Resources for more information.

reload 使HiveServer2知道配置参数hive.reloadable.aux.jars指定的路径中的任何jar更改。路径(不需要重新启动HiveServer2)。更改可以是添加、删除或更新jar文件。

dfs

执行dfs命令。

执行Hive查询并将结果打印到标准输出。

Beeline Command Options

-u

要连接的JDBC URL。如果需要,应该使用URL编码对参数值中的特殊字符进行编码。

Usage: beeline -u db_URL 

-r

重新连接到最后使用的URL(如果用户以前使用过!连接到一个URL并使用!保存到一个直线。)属性文件)。

Usage: beeline -r

Version: 2.1.0 (HIVE-13670)

-n

要连接的用户名。

Usage: beeline -n valid_user

-p

连接的密码

Usage: beeline -p valid_password

Optional password mode:

启动Hive 2.2.0 (Hive -13589) -p选项的参数是可选的。Usage : beeline -p [valid_password]

如果在-p之后没有提供密码,则在启动连接时,Beeline将提示输入密码。当提供密码时,Beeline会在没有提示的情况下启动连接。

-d

要使用的驱动程序类。

Usage: beeline -d driver_class

-e

应该执行的查询。双引号或单引号括住查询字符串。可以多次指定此选项。

Usage: beeline -e "query_string"

支持在一个SQL语句中运行多个由分号分隔的SQL语句query_string: 1.2.0 (HIVE-9877)
Bug fix (null pointer exception): 0.13.0 (HIVE-5765)
Bug fix (--headerInterval not honored): 0.14.0 (HIVE-7647)
Bug fix (running -e in background): 1.3.0 and 2.0.0 (HIVE-6758); workaround available for earlier versions 

-f

应该执行的脚本文件。

Usage: beeline -f filepath

Version: 0.12.0 (HIVE-4268)
Note: 如果脚本包含选项卡,则在版本0.12.0中查询编译失败。 This bug is fixed in version 0.13.0 (HIVE-6359).
Bug fix (running -f in background): 1.3.0 and 2.0.0 (HIVE-6758); workaround available for earlier versions 

-i (or) --init

初始化的init文件

Usage: beeline -i /tmp/initfile

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: beeline --property-file /tmp/a

Version: 2.2.0 (HIVE-13964)

--hiveconf property=value

使用给定配置属性的值。在hiv .conf.restricted目录下的属性。无法使用hiveconf重置列表(see Restricted List and Whitelist).

Usage: beeline --hiveconf prop1=value1

Version: 0.13.0 (HIVE-6173)

--hivevar name=value

Hive变量名和值。这是一个特定于组的设置,可以在会话级别设置变量,并在Hive命令或查询中引用。

Usage: beeline --hivevar var1=value1

--color=[true/false]

控制颜色是否用于显示。默认的是false.

Usage: beeline --color=true

(Not supported for Separated-Value Output formats. See HIVE-9770)

--showHeader=[true/false]

在查询结果中显示列名(true)或不显示列名(false)。Default is true.

Usage: beeline --showHeader=false

--headerInterval=ROWS

当outputformat为表时,以行数为单位重新显示列标题的时间间隔。Default is 100.

Usage: beeline --headerInterval=50

(不支持分离值输出格式。 See HIVE-9770)

--fastConnect=[true/false]

连接时,跳过为HiveQL语句的制表完成而构建所有表和列的列表(true)或构建列表(false)。 Default is true.

Usage: beeline --fastConnect=false

--autoCommit=[true/false]

启用/禁用自动事务提交。Default is false.

Usage: beeline --autoCommit=true

--verbose=[true/false]

显示详细的错误消息和调试信息(true)或不显示(false)。Default is false.

Usage: beeline --verbose=true

--showWarnings=[true/false]

显示在发出HiveQL命令后在连接上报告的警告。Default is false.

Usage: beeline --showWarnings=true

--showDbInPrompt=[true/false]

在提示中显示当前数据库名称。Default is false.

Usage: beeline --showDbInPrompt=true

Version: 2.2.0 (HIVE-14123)

--showNestedErrs=[true/false]

显示嵌套的错误。Default is false.

Usage: beeline --showNestedErrs=true

--numberFormat=[pattern]

使用DecimalFormat模式格式化数字。Format numbers using a DecimalFormat pattern.

Usage: beeline --numberFormat="#,###,##0.00"

--force=[true/false]

即使在出现错误(true)或不继续(false)后仍继续运行脚本。Default is false.

Usage: beeline--force=true

--maxWidth=MAXWIDTH

当outputformat为表时,截断数据之前显示的最大宽度(以字符为单位)。默认是查询终端当前宽度,然后回落到80。

Usage: beeline --maxWidth=150

--maxColumnWidth=MAXCOLWIDTH

当outputformat为表时,以字符为单位的最大列宽度。Default is 50 in Hive version 2.2.0+ (see HIVE-14135) or 15 in earlier versions.

Usage: beeline --maxColumnWidth=25

--silent=[true/false]

减少显示的信息量(true)或不显示信息量(false)。它还停止显示HiveServer2 (Hive 0.14及以后)和HiveQL命令(Hive 1.2.0及以后)查询的日志消息。Default is false.

Usage: beeline --silent=true

--autosave=[true/false]

自动保存首选项(true)或不自动保存(false)。 Default is false.

Usage: beeline --autosave=true

--outputformat=[table/vertical/csv/tsv/dsv/csv2/tsv2]

结果显示的格式模式。Default is table. See Separated-Value Output Formats below for description of recommended sv options.

Usage: beeline --outputformat=tsv

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
TRANSACTION_SERIALIZABLE。
See the "Field Detail" section in the Java Connection documentation.

Usage: beeline --isolation=TRANSACTION_SERIALIZABLE

--nullemptystring=[true/false]

使用打印null的历史行为作为空字符串(true)或使用打印null的当前行为作为空字符串(false)。Default is false.

Usage: beeline --nullemptystring=false

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 --incremental=true and --outputformat=table

Usage: beeline --incrementalBufferRows=1000

Version: 2.3.0 (HIVE-14170)

--maxHistoryRows=NUMROWS

要存储直线历史记录的最大行数。

Version: 2.3.0 (HIVE-15166)

--delimiter=;

为用Beeline编写的查询设置分隔符。允许使用多字符分隔符,但不允许使用引号、斜杠和——。默认为;

Usage: beeline --delimiter=$$

Version: 3.0.0 (HIVE-10865)

--convertBinaryArrayToString=[true/false]

以字符串或字节数组的形式显示二进制列数据。

Usage: beeline --convertBinaryArrayToString=true

Version: 3.0.0 (HIVE-14786)

--help

显示使用信息。

Usage: beeline --help

原文:https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-BeelineCommands

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".
  • 没有任何标志的hcat打印帮助消息,但hive使用-H标志或--help。

HCatalog CLI

-g

hcat -g mygroup ...

告诉HCatalog需要创建的表必须具有组“mygroup”。

-p

hcat -p rwxr-xr-x ...

告诉HCatalog需要创建的表必须具有权限“rwxr-xr-x”。

-f

hcat -f myscript.hcatalog ...

告诉HCatalog那个myscript。hcatalog是一个包含要执行的DDL命令的文件。

-e

hcat -e 'create table mytable(a int);' ...

告诉HCatalog将下列字符串视为DDL命令并执行它。

-D

hcat -Dkey=value ...

将键值对作为Java系统属性传递给HCatalog。

 

hcat

打印使用信息。

HCatalog DDL

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

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结果放置到其中的位置。

连接 Hive 的四种方法_第1张图片

URL Format

使用以下URL格式访问HCatalog的REST资源:

http://yourserver/templeton/v1/resource

其中“yourserver”替换为您的服务器名,“resource”替换为HCatalog资源名。

例如,要检查服务器是否正在运行,你可以访问以下网址:

http://www.myserver.com/templeton/v1/status

WebHCat Resources

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
(deprecated in Hive 0.12,
removed in Hive 0.14)

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
(Hive 0.12 and later)

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

你可能感兴趣的:(大数据)