Hive外部表未在Namenode中显示(Cloudera-QuickstartVm)

时间:2014-08-23 04:47:22

标签: hadoop hive hiveql

我在Hdfs路径'hdfs://localhost.localdomain:8020 / user / hive / training'中在Hive中创建了外部表。如果我应用describe命令,我可以找到如下的表路径。但是当我浏览namenode网页时,表名不会显示在路径中。

hive> describe extended testtable4;
OK
firstname   string  
lastname    string  
address string  
city    string  
state   string  
country string  

Detailed Table Information  Table(tableName:testtable4, dbName:default, owner:cloudera, createTime:1408765301, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:firstname, type:string, comment:null), FieldSchema(name:lastname, type:string, comment:null), FieldSchema(name:address, type:string, comment:null), FieldSchema(name:city, type:string, comment:null), FieldSchema(name:state, type:string, comment:null), FieldSchema(name:country, type:string, comment:null)], location:hdfs://localhost.localdomain:8020/user/hive/training, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=,, field.delim=,, line.delim=    
}), bucketCols:[], sortCols:[], parameters:{}, skewedInfo:SkewedInfo(skewedColNames:[], skewedColValues:[], skewedColValueLocationMaps:{}), storedAsSubDirectories:false), partitionKeys:[], parameters:{EXTERNAL=TRUE, transient_lastDdlTime=1408765301}, viewOriginalText:null, viewExpandedText:null, tableType:EXTERNAL_TABLE)       
Time taken: 0.7 seconds

1 个答案:

答案 0 :(得分:1)

我为此道歉。我想在内部hive表创建的情况下,我们可以在/ user / hive / warehouse中的相​​应数据库中看到表名。

如果创建外部表,则需要将文件放在指定的HDFS位置,我们无法查看表名。

请在下面找到Hive wiki的一些定义

“用户可以创建指向HDFS中指定位置的外部表。在此特定用法中,用户可以使用HDFS put或copy命令将文件复制到指定位置,并创建指向此位置的表包含所有相关的行格式信息。“

我相信以下链接可能会提供您所需的确切信息。

Difference between Hive internal tables and external tables?

https://cwiki.apache.org/confluence/display/Hive/Tutorial