当我们想要删除Hive表中部分符合条件的数据时:
发现Hive表删除数据不能使用DELETE FROM table_name 中SQL语句
drop table 表名
如果要永久性删除,不准备再恢复:
drop table 表名 purge
推荐博客: 让Hive支持行级insert、update、delete
参考博客:
https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-Delete
http://unmeshasreeveni.blogspot.in/2014/11/updatedeleteinsert-in-hive-0140.html
https://www.mapr.com/blog/hive-transaction-feature-hive-10
然后删除NEXT_LOCK_ID一条记录。NEXT_LOCK_ID 始终有锁,无法删除数据。;1、停止hiveserver2,MetaStore 服务;发现还有锁;2、查看hive应用进程 ps -ef|grep hive,全部杀掉,锁释放;3、然后删除NEXT_LOCK_ID一条记录;4、重启hiveserver2,MetaStore;5、查询hive 恢复正常。
原因可能是多个进程同时 *** 作,导致hive事务上的bug,插进了2条一样的数据,导致元数据库被锁以下几个hive元数据表跟hive的事务有关:NEXT_LOCK_ID;next_compaction_queue_id;next_txn_id;以上三个表出问题就有可能会报以下错误: error in acquiring locks: error communicating with the metastore.hive 卡死的原因很多,这个是其中之一,基本都hive metastore会有一些关系,大家可以按这个方向去定位原因,就能更快速寻找到问题的根源。
这个错误通常表示 Hive 文件系统无法打开,可能是由于以下原因之一:
文件系统没有正确配置。请检查文件系统的配置是否正确,并确保 Hive 可以正确访问文件系统。
文件系统权限问题。请确保 Hive 能够访问文件系统,并且具有足够的权限读取和写入数据。
文件系统中的文件出现了问题。请检查文件系统中的文件是否存在或已损坏,并尝试修复或重新创建文件。
为了解决这个问题,可以尝试以下方法:
检查文件系统的配置。请确保文件系统已正确配置,并确保 Hive 可以正确访问文件系统。可以通过检查 Hive 的日志文件来查看是否有任何文件系统访问错误。
检查文件系统的权限。请确保 Hive 可以访问文件系统,并且具有足够的权限读取和写入数据。可以通过检查文件系统的权限来查看是否为当前用户提供了足够的访问权限。
检查文件系统中的文件。请确保文件系统中的文件存在并且没有损坏。可以尝试重新创建文件或从备份中恢复文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)