Spark删除hive表后HDFS对应目录文件没有被删除

来源:6-6 hive数据源案例

某不入流码农

2020-07-22

描述:使用SparkSQL往Hive中saveAsTable了一张表,查看表的desc,发现它是一个内部表,然后再beeline里面使用drop table将其删除,再次跑jar,抛出hdfs目录已存在异常。

问题:请问老师,记得之前的Hadoop课程中说过,如果是hive内部表,在删除内部表之后,hdfs存储的文件也应该被删除,为什么使用spark sql beeline删除表后,hdfs对应的文件仍然存在呢?
图片描述

写回答

1回答

Michael_PK

2020-07-22

有个问题要确认下,你spark代码写进去的表和beeline连都确定是同一个metastore数据吗,换句话说元数据是不是同一份

0
2
Michael_PK
回复
某不入流码农
内部表是删除的时候元数据和数据都会被删掉,但是根据你的描述是没删掉。这样子,你按照这个顺序来测试下,不打包运行,直接sparkshell启动后把代码贴进去运行,然后运行完,还是在sparkshell里面执行spark.sql里面传入删表操作,最后到hdfs验证下。我当心你打包运行的时候是不是hivesite没打引起的,你可以按照我的步骤验证下
2020-07-22
共2条回复

SparkSQL入门 整合Kudu实现广告业务数据分析

大数据工程师干货课程 带你从入门到实战掌握SparkSQL

535 学习 · 192 问题

查看课程