我对 Hive 存储数据的位置有点困惑。
它的数据存储在 HDFS 还是 RDBMS 中? Hive Metastore 是否使用 RDBMS 来存储 Hive 表元数据?
Hive 数据存储在Hadoop 兼容文件系统之一:S3、HDFS 或其他兼容文件系统。
Hive 元数据像 MySQL 一样存储在 RDBMS 中,请参阅支持的 RDBMS。
可以为托管表和外部表指定 Hive 表数据在 S3 或 HDFS 中的位置。
托管表和外部表之间的区别在于,托管表中的
DROP TABLE
语句将删除表并删除表的数据。而对于外部表,DROP TABLE
将仅删除该表,数据将保持原样,并可用于在其上创建其他表。
请参阅此处的详细信息:创建/删除/截断表
这是您问题的答案。但我建议您阅读 hive 书籍或 apache hive 网站以更好地理解。
它将数据存储在 HDFS 还是 RDBMS 中? - HIVE 的数据始终存储在 HDFS 中。对于托管表,数据默认存储在 Hive 仓库中,该仓库是 HDFS 中的一个目录。对于 HIVE 外部表,用户可以指定 HDFS 中的任何位置。
Hive Meta 存储是否使用 RDBMS 来存储 Hive 表元数据? - 是的,HIVE 使用 RDBMS 来存储元数据。