数据库和数据仓库的区别:
1) 数据库内数据是动态变化的;
而数据仓库是用来存储数据的(一次写入,多次读取),数据是静态的,只能通过修改数据文件来修改数据仓库中的数据;
2) 数据库中的数据结构比较复杂,而数据仓库中的数据结构则相对简单;
3)数据库在操作数据时要求响应速度快,即实时的进行增删改查;而数据仓库响应时间比较长。
Hive架构
1) 元数据:Metastore
包括:表名、表所属的数据库(默认是default)、表的拥有着、列/分区字段、表的类型(是否是外部表)、表的数据所在的目录等。
默认derby数据库问题:①换执行路径后,原来的表不存在了②只能单用户访问同一张表【单线程】。
这是因为derby数据库特点:在那个目录下运行hive,就那个目录下产生memstore_db文件。
2) 用户接口:Client
CLI(hive shell)、JDBC/ODBC(java访问hive)、WEBUI(浏览器查看hive)
3) 底层操作:HDFS+MR
使用HDFS进行存储,使用MR进行计算
4) 驱动器:Driver
元数据与Hive的对应关系:
mysql中hive数据库中的数据表与Hive对应关系,表之间,通过外键"*_ID"关联起来。
Hive在hdfs上的默认位置是/user/hive/warehouse,可以通过hive-site.xml的hive.metastore.warehouse.dir属性覆盖默认值。
原文:http://www.cnblogs.com/skyl/p/4736088.html