本文只
启动 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