Hive的数据库是目录,它的表也是目录,它的数据是文件。Hive内部把类似数据库或者表的操作转化成了目录和文件的操作。
Hive默认会把创建所需要的元数据写入自带的derby数据库,这个数据库非常轻量级,它有个缺点,它每次启动的时候都把元数据信息存储在metastore_db这个临时文件中,所以运行不在hive/bin目录中时,就无法读取到metastore_db文件,从而之前的库和表就都不见了。所以它不能应用在生产环境中,要把它替代掉。
Derby数据库元数据的问题:
默认放在/tmp目录下,重启后元数据就丢失了,但是数据不会丢失。可以修改hive的元数据放入mysql。
关键的元数据表
1dbs-记录所有的数据库
Default是默认的数据库,DB_LOCATION_URI记录了hadoop的存储位置。
2tbls-记录了所有的表
表存放数据库的元数据,注意表的类型:
Hive管理数据的方式:
1先创建表,后有数据。
2现有数据,再创建表。
3columns_v2存储表的字段
CD_ID标识属于哪个表
column_name字段
type_name字段所属类型
4sds-存储位置信息
与HDFS挂钩