1. 程式人生 > >Hive官方使用手冊——HCatalog CLI

Hive官方使用手冊——HCatalog CLI

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支援這些命令列選項。:

引數  

用例

描述

-g

hcat -g mygroup ...

告訴HCatalog需要建立的表必須有group“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 ...

將鍵值對傳遞給HCatalog作為Java系統屬性。

hcat

列印一個用例資訊

請注意以下:

-g-p選項不是強制性的。

    只能提供一個-e-f選項,而不是兩個。

    引數選項的順序不是固定的;您可以按任何順序指定選項。

如果沒有提供選項,則列印一條使用訊息:

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

所有者的許可權

當使用HCatalog CLI時,您不能指定一個許可權字串而不賦予所有者讀取的許可權,比如-wxrwxr-x,因為字串以“-”開頭。如果需要這樣的許可權設定,則可以使用八進位制數,在本例中相應的值為375。另外,其它格式的許可權字串(例如r-x-----rrr-)都可以正常工作。

與Hive CLI的差異

許多hcat命令可以作為hive命令發出,包括所有HCatalog DDL命令。Hive CLI包含一些在HCatalog CLI中不可用的命令。注意這些差異: 

  • "hcat -g" 和 "hcat -p" 對於表組和許可權設定,僅在HCatalog CLI中可用。
  • hcat使用 -p 標誌來獲得許可權,但hive使用它來指定埠號。
  • hcat使用-D標誌且沒有空格來定義key=value,但是hive使用-d--define 和一個空格(同樣是--hivevar)。
  • hcat列印幫助資訊沒有任何標誌的,但是hive使用-H標誌或--help

Hive CLI文件參見這裡

HCatalog DDL

HCatalog支援所有Hive資料定義語言,除了那些需要執行MapReduce作業的操作。對於支援的命令,下面將講述其所有的差異。

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

  • ALTER INDEX ... REBUILD
  • CREATE TABLE ... AS SELECT
  • ALTER TABLE ... CONCATENATE
  • ALTER TABLE ARCHIVE/UNARCHIVE PARTITION
  • ANALYZE TABLE ... COMPUTE STATISTICS
  • IMPORT FROM ...
  • EXPORT TABLE

Create/Drop/Alter Table

CREATE TABLE

如果您建立了一個帶有CLUSTERED BY語法的表,那麼您將無法用Pig或MapReduce來編寫它。這是因為他們不知道如何劃分表,所以試圖寫入它會導致資料損壞。

CREATE TABLE AS SELECT

不支援。丟擲一個異常,該訊息“不支援操作”。

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的類路徑中。

"dfs" Command and "set" Command

支援,和Hive一樣。

Other Commands

上面沒有列出的任何命令都不受支援,並丟擲一個“不支援的操作”的異常。

CLI Errors

Authentication

如果一個失敗導致了一個訊息,比如“2010-11-03 16:17:28,225 WARN hive.metastore ... - Unable to connect metastore with URI thrift://.../tmp/<username>/hive.log中,請確認執行“kinit<username>@FOO.COM”獲取一個Kerberos票據,並能夠對HCatalog伺服器進行身份驗證。

Error Log

如果在使用HCatalog CLI時發生了其他錯誤,則會將更詳細的訊息寫入/tmp/<username>/hive.log