我对 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 作业?