hive误删除表,异常停止进程

本文详细介绍了如何在遇到Hive元数据错误时,通过一系列步骤在MySQL中删除特定的Hive表及其相关联的数据,包括表ID、序列化配置信息、字段信息ID、分区ID和序列化类ID的获取与删除。此外,还提供了处理HDFS数据复制及元数据强制删除的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1报错

- Failed with exception Unable to alter partition. Put request failed : UPDATE `PARTITION_PARAMS` SET `PARAM_VALUE` = ? WHERE `PART_ID`=? AND `PARAM_KEY`=?
 INFO - FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask. Unable to alter partition. Put request failed : UPDATE `PARTITION_PARAMS` SET `PARAM_VALUE` = ? WHERE `PART_ID`=? AND `PARAM_KEY`=?
 INFO - MapReduce Jobs Launched: 

2 将hdfs数据复制到另外一个地址
3 进入mysql删除表数据
参考https://blog.youkuaiyun.com/qq_36459386/article/details/86762649#_56

查看被锁的进程

SELECT * FROM information_schema.INNODB_TRX;

kill 较长时间未提交事物的进程
kill trx_mysql_thread_id

从元数据删除Hive的表需要得到五个ID.
TBL_ID:表ID
SD_ID :序列化配置信息
CD_ID:字段信息ID
PART_ID:分区ID
SERDE_ID:序列化类ID

mysql> select * from tbls where tbl_name='dm_ssp_device_box_app_flow_analysis_info';

TBL_ID='19222431';

SD_ID='54828606';
mysql> select * from sds where sd_id='54828606';
CD_ID='21143439';
SERDE_ID='54828606'

mysql> select * from partitions where tbl_id='19222431';
PART_ID

delete from partition_key_vals where part_id in (select part_id from partitions where tbl_id='19222431');


delete from partition_params where part_id in (select part_id from partitions where tbl_id='19222431');

delete from partitions where tbl_id='19222431';


delete from partition_keys where tbl_id='19222431';


delete from table_params where tbl_id='19222431';

mysql> delete from tbl_privs where tbl_id='19222431';


delete from tbls where tbl_id='19222431';

将拷贝的目录文件重新拷贝回来

hive 强制删除整个数据库

drop DATABASE IF EXISTS 数据库名 CASCADE;
```
cascade 表示强制删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值