命令行界面

Set Up

HCatalog 命令行界面(CLI)可以调用为HIVE_HOME= * hive_home hcat_home * /bin/hcat,其中* hive_home 是 Hive 的安装目录,而 hcat_home *是 HCatalog 的安装目录。

如果您使用 BigTop 的 rpm 或 deb,则可以执行/usr/bin/hcat来调用 CLI。

HCatalog CLI

HCatalog CLI 支持以下命令行选项:

OptionUsageDescription
-ghcat -g mygroup ...告诉 HCatalog,需要创建的表必须具有组“ mygroup”。
-phcat -p rwxr-xr-x ...告诉 HCatalog,需要创建的表必须具有权限“ rwxr-xr-x”。
-fhcat -f myscript.hcatalog ...告诉 HCatalog myscript.hcatalog 是一个包含要执行的 DDL 命令的文件。
-ehcat -e 'create table mytable(a int);' ...告诉 HCatalog 将以下字符串视为 DDL 命令并执行它。
-Dhcat -D = ...将键值对作为 Java 系统属性传递给 HCatalog。
hcat打印使用情况消息。

请注意以下几点:

  • -g-p 选项不是必需的。

  • 只能提供一个 -e-f 选项,但不能同时提供。

  • 期权的 Sequences 无关紧要。您可以按任何 Sequences 指定选项。

如果未提供任何选项,则会显示用法消息:

Usage:  hcat  { -e "<query>" | -f <filepath> }  [-g <group>] [-p <perms>] [-D<name>=<value>]

Owner Permissions

使用 HCatalog CLI 时,您不能为所有者指定没有读取权限的权限字符串,例如-wxrwxr-x,因为该字符串以“ -”开头。如果需要这样的权限设置,则可以使用八进制版本,在这种情况下为 375.此外,所有者拥有读取权限的任何其他类型的权限字符串(例如r-x-----r--r--r--)都可以正常工作。

Hive CLI

许多hcat命令可以作为hive命令发布,包括所有 HCatalog DDL 命令。 Hive CLI 包括一些在 HCatalog CLI 中不可用的命令。请注意以下差异:

  • 表组和权限设置的“ hcat -g”和“ hcat -p”仅在 HCatalog CLI 中可用。

  • hcat使用-p标志获得许可,但hive使用它来指定端口号。

  • hcat使用-D标志不带空格来定义键=值对,但hive使用-d--define带空格(也为--hivevar)。
    例如,“ hcat -DA=B”与“ hive -d A=B”。

  • hcat不带任何标志将打印帮助消息,而hive使用-H标志或--help

Hive CLI 已记录在here中。

HCatalog DDL

HCatalog 支持所有Hive 数据定义语言,但那些需要运行 MapReduce 作业的操作除外。对于受支持的命令,下面会记录所有差异。

HCatalog 不支持以下 Hive DDL 和其他 HiveQL 命令:

  • ALTER INDEX ...重建

  • 创建表...作为选择

  • 更改表...连接

  • ALTER TABLE 归档/未归档分区

  • 分析表...计算统计

  • import 于 ...

  • EXPORT TABLE

有关将 WebHCat 用于 DDL 命令的信息,请参阅URL FormatWebHCat 参考:DDL 资源

Create/Drop/Alter Table

CREATE TABLE

如果使用 CLUSTERED BY 子句创建表,则无法使用 Pig 或 MapReduce 对其进行写入。这是因为他们不了解如何对表进行分区,因此尝试对其进行写操作将导致数据损坏。

创建表作为选择

不支持。消息“不支持操作”引发异常。

DROP TABLE

支持的。行为与 Hive 相同。

ALTER TABLE

除 REBUILD 和 CONCATENATE 选项外,均受支持。行为与 Hive 相同。

Create/Drop/Alter View

注意: Pig 和 MapReduce 无法从视图读取或写入视图。

CREATE VIEW

支持的。行为与 Hive 相同。

DROP VIEW

支持的。行为与 Hive 相同。

ALTER VIEW

支持的。行为与 Hive 相同。

Show/Describe

SHOW TABLES

支持的。行为与 Hive 相同。

SHOW PARTITIONS

不支持。消息“不支持操作”引发异常。

SHOW FUNCTIONS

支持的。行为与 Hive 相同。

DESCRIBE

支持的。行为与 Hive 相同。

Create/Drop Index

支持 CREATE 和 DROP INDEX 操作。

注意: Pig 和 MapReduce 无法写入具有自动重建功能的表,因为 Pig 和 MapReduce 不知道如何重建索引。

Create/Drop Function

支持 CREATE 和 DROP FUNCTION 操作,但是创建的函数仍必须在 Pig 中注册并放置在 MapReduce 的 CLASSPATH 中。

{#HCatalogCLI-"dfs"Commandand"set"Command}“ dfs”命令和“ set”命令

支持的。行为与 Hive 相同。

Other Commands

不支持上面未列出的任何命令,并且会引发异常消息“不支持操作”。

CLI Errors

Authentication

如果失败导致在/tmp/ *<username> * /hive.log中显示“ 2010-11-03 16:17:28,225 WARN hive.metastore ...-无法将元存储与 URI thrift:// ...”连接的消息,则确保已运行“ kinit *<username> * @FOO.COM”以获取 Kerberos 票证并能够向 HCatalog 服务器进行身份验证。

Error Log

如果在使用 HCatalog CLI 时发生其他错误,则会将更详细的消息写入/ tmp/*<username> * /hive.log。

Navigation Links

Previous: 读写器接口
Next: Storage Formats

Hive 命令行界面:Hive CLI
Hive DDL 命令:Hive 数据定义语言
WebHCat DDL 资源:WebHCat 参考:DDL

一般:HCatalog ManualWebHCat ManualHive Wiki 主页Hive 项目 site