关于hive 内外部表区别的详解

 

本文只

 

启动 hive 就不说了

 

1 SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

 

如果遇到这个问题说明服务没有启动,hive --service metastore  启动即可

初学不太懂基本操作的看这里:https://www.cnblogs.com/EnzoDin/p/6951181.html

 

下边是建表的操作:

为了便于区别对比:首先

 先建一个不带location的内部表 student1

 

 

带location的内部表student2

 

不带location的外部表 student3

带location的外部表student4

 

 

show tables :

好了 需要的都创建出来了

接着开始编写数据文件

 

 从本地load 后:

可以看到 都有数据了

下面看hdfs中 文件的存放情况

这就是hive存数据的方式 是将数据文件拷贝至一个目录,如果未定义location,就存放在hdfs://master:9000/hive/warehous/TABLE_NAME/下

从目前看来我们还看不出 内部表和外部表的区别

下面重点来了:

把表全都删除掉,再看目录情况

 

 

 

 可以看到,内部表连目录都没了,而外部表还有数据保存下来,这就是所说的,

 

 删除外部表时,HDFS中的数据文件不会一起被删除。而删除内部表时,表数据及HDFS中的数据文件都会被删除。

 参考链接:https://www.cnblogs.com/qiaoyihang/p/6225151.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值