从mysql层面删除hive元数据
由于之前配置了hive,hdfs 被格式化了,导致现在hive上原来的元数据没有清理掉。
由于hive 上所有元数据均保存在mysql中,所以,可以从mysql上删除表相关信息即可删除hive表,而且不会影响hdfs上数据。
分析:
hive在mysql上的相关元数据表关系图:
解决方法:
1、先在 mysql 中建存储过程
说明:
建的存储过程名字为t1,输入为tbl_id。因为表名可能重复,但是tbl_id不会。
DELIMITER //
drop procedure if exists t1;
create procedure t1 ( in tbinput int)
begindeclare v_sd_id int ;declare v_part_id int ;declare v_cd_id int ;declare v_serde_id int ;select tbinput;select SD_ID into v_sd_id from tbls where TBL_ID = tbinput;select part_id into v_part_id from partitions where tbl_id = tbinput;select cd_id , serde_id into v_cd_id,v_serde_id from sds where sd_id = v_sd_id;select v_sd_id,v_part_id,v_cd_id,v_serde_id;if v_part_id is not null then delete from partition_params where part_id = v_part_id;delete from partition_key_vals where part_id = v_part_id;end if;delete from serdes where serde_id = v_serde_id;delete from serde_params where serde_id = v_serde_id;delete from columns_v2 where cd_id = v_cd_id;delete from sds where sd_id = v_sd_id;delete from partitions where tbl_id = tbinput;delete from partition_keys where tbl_id = tbinput;delete from table_params where tbl_id = tbinput;delete from tbls where tbl_id = tbinput;end ;
//
delimiter ;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
2、编写shell(最好用mysql的用户去执行shell):
hadoop002:mysqladmin:/usr/local/mysql:>cat mysql_delete.sh
#!/bin/bash
source /usr/local/mysql/.bash_profile
mysql -uroot -ppassword hive3 -e "
SET FOREIGN_KEY_CHECKS = 0;
call t1(71);
SET FOREIGN_KEY_CHECKS = 1;
quit" >> /tmp/mysql_delete.log
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
完成!
从mysql层面删除hive元数据相关推荐
- hive元数据为什么使用Mysql?不使用默认的Derby
hive元数据为什么使用Mysql?不使用默认的Derby? 在安装完成Hive之后默认是以Derby数据库作为元数据库,存储Hive有哪些数据库,以及每个数据库中有哪些表,但是在实际生产过程中,并不 ...
- 删除hive的分区元数据,spark总是读取到已经删掉的分区
org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs://testcluster/user/h ...
- 使用superset完成mysql数据库或者hive数据库的数据可视化
虚拟机安装步骤 注意事项:以下bigdata100均记得更换为bigdata1即可 确保本地电脑已经安装好了VMware Workstation Pro 下载地址:下载 VMware Workstat ...
- Hive元数据信息获取
如何获取Hive库表字段分区信息 1 获取Hive的所有数据库信息 如果注释字段中文乱码,则需要修改字符集(正常情况都需要修改). SELECT`NAME` NAME,ANY_VALUE ( `DES ...
- 新的比较详细的hive安装教程,包含:hadoop的安装配置,hive安装详细教程,大数据下hive详细配置和简单使用和hive元数据迁移相关安装配置操作
简介:这是大数据里安装hive比较详细的教程,包括安装hive时hadoop的相关配置,hive安装,hive 之后的mysql安装,hive的元素配置到mysql相关配置,hive常见属性的相关配置 ...
- Mysql和Hadoop+Hive有什么关系?
1.Hive不存储数据,Hive需要分析计算的数据,以及计算结果后的数据实际存储在分布式系统上,如HDFS上. 2.Hive某种程度来说也不进行数据计算,只是个解释器,只是将用户需要对数据处理的逻辑, ...
- Ambari2.7.4+HDP3.1.4下sqoop增量导入只支持append模式,mysql直接进入hive的lastmodified的不支持。下面是增量的命令。
1. 创建mysql表,并创建初始化数据 grant all privileges on *.* to 'root'@'%' identified by 'xxxxxxxxx' with grant ...
- hive安装测试及Hive 元数据的三种存储方式
一 hive安装测试 1.下载解压 tar -xf hive-x.y.z.tar.gz(本次安装为hive-0.8.1.tar.gz) 将解压后的hive-0.8.1文件放在系统的/home/had ...
- SparkSQL Catalog的作用和访问Hive元数据信息
SparkSQL Catalog的作用: SparkSQL直接访问hive元数据信息,不再需要去mysql里的表里去查找 Spark 2.0中添加了标准的API(称为catalog)来访问Spark ...
- 使用shell脚本将mysql数据导入HIve中
使用sqoop将us_order表中的数据导入到hive中,hive的库名为exam_ods,表名叫ods_us_order,根据order_date的日期来实现分区导入数据,形成脚本. 解释 #!/ ...
最新文章
- [Java基础]让Map value自增
- mysql 网络io_MySQL的各种网络IO超时的用法和实现
- 十二、“最是真心藏不住,一言一语总关情。”(2021.2.11)
- 周董新歌搞崩QQ,透过20W评论,看看歌迷在说啥
- 企业微信_H5应用如何本地及真机调试_host配置及代理相关
- php chr 乱码,php chr() ord()中文截取乱码问题解决方法_PHP教程
- django 项目中遇到的问题(持续更新中)
- Hadoop 之 MapReduce 的工作原理及其倒排索引的建立
- java第七章jdbc课后简答题_Java进阶之JDBC面试题(7)
- JBOSS EAP6.2.0的下载安装、环境变量配置以及部署
- 如何创建PDF格式文件,这个方法教你快速创建
- charles windows版使用教程
- 常用的 T-SQL 语言
- 瀚高数据库分页SQL写法
- html如何修改title前的小图标
- ROS中launch文件和参数设置
- 把互联网界的大牛——王煜全老师开出的书单和大家分享一下
- 快准狠的数据挖掘分析,用了这些方法!复旦 Zilliz 梦幻联动
- 如何在业务开发中实现自我成长
- PAT乙级1040:有几个PAT (25)
热门文章
- 基于SpringBoot+vue的校园闲置物品交易网站设计与实现
- 【Selenium】Selenium自动化入门之八大元素定位
- 【2023.7.4 学习进度汇报】
- 百度有哪些引流渠道?如果引流来都是精准客户?
- CAS:1221256-52-5 (2S)-2-氨基-2-甲基-9-癸烯酸 (2R)-2-Amino-2-methyl-9-decenoic acid
- RAW数据批量格式转换matlab脚本
- 弹性力学平衡微分方程解释
- 通信原理板块——频分复用(FDM)
- GMP 线程调度模型
- usaco Greedy Gift Givers (送礼物)