我在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
答案 0 :(得分:1)
我为此道歉。我想在内部hive表创建的情况下,我们可以在/ user / hive / warehouse中的相应数据库中看到表名。
如果创建外部表,则需要将文件放在指定的HDFS位置,我们无法查看表名。
请在下面找到Hive wiki的一些定义
“用户可以创建指向HDFS中指定位置的外部表。在此特定用法中,用户可以使用HDFS put或copy命令将文件复制到指定位置,并创建指向此位置的表包含所有相关的行格式信息。“
我相信以下链接可能会提供您所需的确切信息。
Difference between Hive internal tables and external tables?