【发布时间】:2018-01-31 00:46:49
【问题描述】:
我对 MetaStore 的用途有些困惑。在 hive 中创建表时:
CREATE TABLE <table_name> (column1 data_type, column2 data_type);
LOAD DATA INPATH <HDFS_file_location> INTO table managed_table;
所以我知道这个命令获取文件在 HDFS 中的内容并创建它的 MetaData 形式并将其存储在 MetaStore 中(包括每行的列类型、列名、它在 HDFS 中的位置等在 HDFS 文件中)。它实际上并没有将数据从 HDFS 移动到 Hive。
但是存储这个元数据的目的是什么?
例如,当我使用 Spark SQL 连接到 Hive 时,MetaStore 不包含 HDFS 中的实际信息,而只包含 MetaData。那么 Hive 是否仅使用 MetaStore 来针对 HiveQL 查询执行解析和编译步骤并创建 MapReduce 作业?
【问题讨论】:
标签: hadoop hive hive-metastore