2011-12-12 47 views
1

我使用MySQL 5.5作爲Metastore安裝了hive-0.7.1。當我試圖創建一個簡單的表時,它失敗了。我得到了例外使用MySQL作爲Metastore安裝hive-0.7.1後無法創建表

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`hiveone`.`tbls`, CONSTRAINT `TBLS_FK2` FOREIGN KEY (`SD_ID`) REFERENCES `SDS` (`SD_ID`)) 

請幫忙建議我應該怎麼做。

hive> CREATE TABLE pokes (foo INT, bar STRING); 
FAILED: Error in metadata: javax.jdo.JDODataStoreException: Insert of object  "[email protected]" using statement "INSERT INTO `TBLS` (`TBL_ID`,`LAST_ACCESS_TIME`,`TBL_TYPE`,`CREATE_TIME`,`OWNER`,`SD_ID`,`RETENTION`,`VIEW_ORIGINAL_TEXT`,`TBL_NAME`,`DB_ID`,`VIEW_EXPANDED_TEXT`) VALUES (?,?,?,?,?,?,?,?,?,?,?)" failed : Cannot add or update a child row: a foreign key constraint fails (`hiveone`.`tbls`, CONSTRAINT `TBLS_FK2` FOREIGN KEY (`SD_ID`) REFERENCES `SDS` (`SD_ID`)) 
NestedThrowables: 
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`hiveone`.`tbls`, CONSTRAINT `TBLS_FK2` FOREIGN KEY (`SD_ID`) REFERENCES `SDS` (`SD_ID`)) 
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask 

蜂房-site.xml中設置如下:

<property> 
    <name>hive.metastore.local</name> 
    <value>true</value> 
</property> 

<property> 
    <name>javax.jdo.option.ConnectionURL</name> 
    <value>jdbc:mysql://localhost:3306/hiveone?createDatabaseIfNotExist=true</value> 
</property> 

<property> 
    <name>javax.jdo.option.ConnectionDriverName</name> 
    <value>com.mysql.jdbc.Driver</value> 
</property> 

<property> 
    <name>javax.jdo.option.ConnectionUserName</name> 
    <value>hadoop</value> 
</property> 

<property> 
    <name>javax.jdo.option.ConnectionPassword</name> 
    <value>pwd</value> 
</property> 

</configuration> 

表在MySQL列舉如下:

SDS表是空的。

mysql> show tables; 
+-------------------+ 
| Tables_in_hiveone | 
+-------------------+ 
| BUCKETING_COLS | 
| COLUMNS | 
| DATABASE_PARAMS | 
| PARTITION_KEYS | 
| SDS | 
| SD_PARAMS | 
| SEQUENCE_TABLE | 
| SERDES | 
| SERDE_PARAMS | 
| SORT_COLS | 
| TABLE_PARAMS | 
| TBLS | 
| dbs | 
+-------------------+ 
13 rows in set (0.00 sec) 

問題是Hive希望得到什麼SDS數據?

回答

1

hive-0.7.1不支持MySQL 5.5。故事的結局。