Hive |
您所在的位置:网站首页 › hive统计数据库下有几张表 › Hive |
元数据--探查
1、元数据功能2、元数据存储存储位置第一种:默认的存储位置:Hive自带的Derby数据库==第二种:企业中实际的开发环境,都是将Hive元数据存储在关系型数据库中:常用MySQL==
3、实现:将Hive元数据存储在MySQL4、HDFS与Hive之间的关联Hive元数据映射了HDFS数据与Hive表之间的关系配置的仓库目录: `/user/hive/warehouse`的作用:如何区分这个目录下的目录是数据库还是表的目录呢?
5、问题:如果我手动用HDFS命令,将一份数据放入表的目录中,表中能不能读到?情况一:普通表情况二:分区表
6、总结:元数据的功能以及存储存储方式Hive与HDFS之间的存储关系
1、元数据功能
保存了Hive中所有关键性的数据 存储了所有数据库、表、所有字段、分隔符等信息存储了所有表与HDFS文件的映射的信息 2、元数据存储 存储位置 第一种:默认的存储位置:Hive自带的Derby数据库 存在问题:由于derby数据库以文件的形式存在,不能启动多个实例,真正在工作中不用derby来存储元数据 第二种:企业中实际的开发环境,都是将Hive元数据存储在关系型数据库中:常用MySQL 3、实现:将Hive元数据存储在MySQL step1:安装MySQLstep2:修改Hive的配置,使用MySQL来存储元数据 先构建一个Hive的配置文件:hive-site.xml tips: Hive本身没有提供这个文件 Apache版本中提供了一个hive-default.xml CDH版本什么都没有提供 将提供的hive-site.xml上传到hive的配置文件目录下
指定连接Mysql的驱动 javax.jdo.option.ConnectionDriverName com.mysql.jdbc.DriverMysql的用户名和密码 tips:value中的账号密码自己修改 javax.jdo.option.ConnectionUserName root javax.jdo.option.ConnectionPassword 123456 step3:将mysql的连接驱动包,放入Hive的lib目录tips:我的路径为/export/servers/hive-1.1.0-cdh5.14.0/lib/![]() ![]() ![]() ![]() SDS:记录了Hive中的表与HDFS文件的映射关系 查看配置的在hdfs上的仓库路径 ![]() 不能 由于这个分区目录是你自己建的,Hive中没有这个分区对应的元数据 select * from table select * from 元数据中这张表对应的所有分区的目录解决 第一种方案:修复表结构:根据HDFS中分区的情况,来反过来修复元数据 msck repair table tb_emp_part2; 第二种方案:手动构建这个元数据 ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec [LOCATION 'location'] alter table tb_emp_part2 add partition 'dept=40' location '/user/hive/warehouse/db_emp.db/tb_emp_part2/dept=40'; 6、总结: 元数据的功能以及存储 功能:存储Hive 中关键性数据 存储了Hive中所有数据库、表的信息 DBS、TBLS存储了Hive中表与HDFS的映射关系 SDS 存储方式 方式一:默认的方式,存储在Hive自带的Derby数据库【工作中是不用的】方式二:远程连接Mysql实现元数据存储,工作中选用的方式 Hive与HDFS之间的存储关系 Hive会在HDFS创建一个数据仓库的目录(配置文件中指定):/user/hive/warehouseHive中所有的数据库、表都会默认存储在这个目录下,同时也作为Hive中默认的数据库default数据库的目录在Hive中创建一个数据库,就会自动在HDFS上创建一个对应的数据库目录在Hive中创建一张表,就会自动在HDFS对应的数据库目录下创建对应的表的目录在Hive中数据如果加载到表中,数据文件就会存储在表的目录下 关联的是一个HDFS文件:Hive会将这个文件移动到表的目录下(管理表)关联的是一个本地文件:Hive 会将这个本地文件拷贝一份存储在HDFS表的目录下 结构:数据仓库/数据库目录/表的目录/数据文件即 HiveWareHouse/Database/Table/Data |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |