首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Hive - 创设Index失败,原因暂未知

2013-08-13 
Hive - 创建Index失败,原因暂未知运行环境Cloudera Hive 0.10-CDH4?在我机器上安装的Hive里有如下的表:?hi

Hive - 创建Index失败,原因暂未知

运行环境Cloudera Hive 0.10-CDH4

?

在我机器上安装的Hive里有如下的表:

?

hive (human_resources)> describe formatted employees;

OK

col_name data_type comment

# col_name ? ? ? ? ? ? data_type ? ? ? ? ? comment ? ? ? ? ? ??

?

name ? ? ? ? ? ? ? ?? ? ? ?string ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ??None ? ? ? ? ? ? ? ?

salary ? ? ? ? ? ? ?? ? ? ? ?float ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?None ? ? ? ? ? ? ? ?

subordinates ? ? ? ???array<string> ? ? ? ? ? ? ? ? ? ? ? ? ? ? None ? ? ? ? ? ? ? ?

deductions ? ? ? ? ?? ??map<string,float> ? ? ? ? ? ? ? ? ? ?None ? ? ? ? ? ? ? ?

address ? ? ? ? ? ? ? ? ? ?struct<country:string,city:string,zip:int>? ?None ? ? ? ? ? ? ? ?

?

# Partition Information ?

# col_name ? ? ? ? ? ? data_type ? ? ? ? ? comment ? ? ? ? ? ??

?

country ? ? ? ? ? ? ? ? ?string ? ? ? ? ? ? ? None ? ? ? ? ? ? ? ?

state ? ? ? ? ? ? ? ? ? ? ??string ? ? ? ? ? ? ? None ? ? ? ? ? ? ? ?

?

# Detailed Table Information ?

Database: ? ? ? ? ? human_resources ? ? ?

Owner: ? ? ? ? ? ? ? root ? ? ? ? ? ? ? ? ?

CreateTime: ? ? ? ? Mon Jul 22 23:05:47 CST 2013 ?

LastAccessTime: ? ? UNKNOWN ? ? ? ? ? ? ?

Protect Mode: ? ? ? None ? ? ? ? ? ? ? ? ?

Retention: ? ? ? ? ? 0 ? ? ? ? ? ? ? ? ? ?

Location: ? ? ? ? ? hdfs://n8.example.com:8020/user/hive/warehouse/human_resources.db/employees ?

Table Type: ? ? ? ? MANAGED_TABLE ? ? ? ?

Table Parameters: ?

numFiles ? ? ? ? ? ? 1 ? ? ? ? ? ? ? ? ??

numPartitions ? ? ? 1 ? ? ? ? ? ? ? ? ??

numRows ? ? ? ? ? ? 0 ? ? ? ? ? ? ? ? ??

rawDataSize ? ? ? ? 0 ? ? ? ? ? ? ? ? ??

totalSize ? ? ? ? ? 784 ? ? ? ? ? ? ? ??

transient_lastDdlTime 1375942564 ? ? ? ? ?

?

# Storage Information ?

SerDe Library: ? ? ? org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe ?

InputFormat: ? ? ? ? org.apache.hadoop.mapred.TextInputFormat ?

OutputFormat: ? ? ? org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat ?

Compressed: ? ? ? ? No ? ? ? ? ? ? ? ? ? ?

Num Buckets: ? ? ? ? -1 ? ? ? ? ? ? ? ? ? ?

Bucket Columns: ? ? [] ? ? ? ? ? ? ? ? ? ?

Sort Columns: ? ? ? [] ? ? ? ? ? ? ? ? ? ?

Storage Desc Params: ?

serialization.format 1 ? ? ? ? ? ? ? ? ??

Time taken: 0.132 seconds

?

该Employees表中有如下数据(Hive会自动把select * 操作转换成文件系统读操作,所以这里并没有MR Job):

hive (human_resources)> select * from employees;

OK

name? ? ?salary? ? ?subordinates? ? ?deductions? ? ?address ? ? country? ? ?state

John Doe 100000.0 ["Mary Smith","Todd Jones"] {"Federal Taxes":0.2,"State Taxes":0.05,"Insurance":0.1} {"country":"1 Michigan Ave.","city":"Chicago","zip":null}? US CA

Mary Smith 80000.0 ["Bill King"] {"Federal Taxes":0.2,"State Taxes":0.05,"Insurance":0.1} {"country":"100 Ontario St.","city":"Chicago","zip":null} ?US CA

Todd Jones 70000.0 [] {"Federal Taxes":0.15,"State Taxes":0.03,"Insurance":0.1} {"country":"200 Chicago Ave.","city":"Oak Park","zip":null} US CA

Bill King 60000.0 [] {"Federal Taxes":0.15,"State Taxes":0.03,"Insurance":0.1} {"country":"300 Obscure Dr.","city":"Obscuria","zip":null} US CA

Boss Man 200000.0 ["John Doe","Fred Finance"] {"Federal Taxes":0.3,"State Taxes":0.07,"Insurance":0.05} {"country":"1 Pretentious Drive.","city":"Chicago","zip":null} US CA

Fred Finance 150000.0 ["Stacy Accountant"] {"Federal Taxes":0.3,"State Taxes":0.07,"Insurance":0.05} {"country":"2 Pretentious Drive.","city":"Chicago","zip":null} US CA

Stacy Accountant 60000.0 [] {"Federal Taxes":0.15,"State Taxes":0.03,"Insurance":0.1} {"country":"300 Main St.","city":"Naperville","zip":null} US CA

Time taken: 0.164 seconds

?

现在我想用如下语句给Employees表创建索引,操作失败并有如下提示:

hive (human_resources)> CREATE INDEX employees_index

? ? ? ? ? ? ? ? ? ? ? > ON TABLE employees (country, name)

? ? ? ? ? ? ? ? ? ? ? > AS 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' WITH DEFERRED REBUILD

? ? ? ? ? ? ? ? ? ? ? > IDXPROPERTIES ('creator' = 'me', 'created_at' = 'some_time')

? ? ? ? ? ? ? ? ? ? ? > IN TABLE employees_index_table

? ? ? ? ? ? ? ? ? ? ? > PARTITIONED BY (country)

? ? ? ? ? ? ? ? ? ? ? > COMMENT 'Employees indexed by country and name.';

FAILED: ParseException line 6:0 missing EOF at 'PARTITIONED' near 'employees_index_table'

?

假如我去掉partitioned by子句会出现如下错误提示:

hive (human_resources)> CREATE INDEX employees_index

? ? ? ? ? ? ? ? ? ? ? > ON TABLE employees (country, name)

? ? ? ? ? ? ? ? ? ? ? > AS 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' WITH DEFERRED REBUILD

? ? ? ? ? ? ? ? ? ? ? > IDXPROPERTIES ('creator' = 'me', 'created_at' = 'some_time')

? ? ? ? ? ? ? ? ? ? ? > IN TABLE employees_index_table

? ? ? ? ? ? ? ? ? ? ? > COMMENT 'Employees indexed by country and name.';

FAILED: Error in metadata: java.lang.RuntimeException: Check the index columns, they should appear in the table being indexed.

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

?

这是Programming Hive中的一个例子,O'Reilly官网的Errata链接是:

http://oreilly.com/catalog/errata.csp?isbn=0636920023555

但是Errata中并没有人提及这个示例运行错误。错误原因未知,希望有知道的大神提示一下,是不是Hive版本问题或是其他原因?

?

热点排行