Hive是一个基于Hadoop的数据仓库平台,定义了一个类似SQL的查询语言:HQL,能够将用户编写的QL转化为相应的Mapreduce程序给予hadoop执行。
hive的组件和基本架构:
浏览器访问:http://localhost:9999/hwi/
默认情况下,Hive元数据保存在内嵌的 Derby 数据库中,只能允许一个会话连接,只适合简单的测试。为了支持多用户多会话,则需要一个独立的元数据库,我们使用 MySQL 作为元数据库,Hive 内部对 MySQL 提供了很好的支持。
Hive的数据存放在哪?
数据在HDFS的warehouse目录下,一个表对应一个子目录。本地的/tmp目录存放日志和执行计划。
hive的元数据存放在mysql(不配置mysql则元数据存放在内嵌的deby中)
hive的表分为两种,内表和外表。
Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。
在删除表的时候,内部表的元数据和数据会被一起删除, 而外部表只删除元数据,不删除数据。这样外部表相对来说更加安全些,数据组织也更加灵活,方便共享源数据。
使用Mysql作为Hive metaStore的存储数据库
其中主要涉及到的表如下: