hive 外部表,內部表
阿新 • • 發佈:2018-11-25
create table test(id int,name string) row format delimited fields terminated by ',' ;
載入資料 load data local inpath '/home/test/test.txt' into table test;
如果建表沒有指定location,就會在hive.metastore.warehouse.dir 路徑下建立以表名為名的資料夾
在hive-site.xml中可以配置
<property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property>
drop table test; hadoop fs -ls /user/hive/warehouse 沒有檔案
外部表
create external test(id int,name string) row format delimited fields terminated by ',' location '/user/hive/mytest';
加了external關鍵字 和location 可以不指定location還是會存到 user/hive/warehouse路徑下;
load data local inpath '/home/test/test.txt' into table test;
drop table test;
hadoop fs -ls /user/hive/warehouse 發現有資料;
即:
- 建立外部表需要新增 external 欄位。而內部表不需要。
- 刪除外部表時,HDFS中的資料檔案不會一起被刪除。而刪除內部表時,表資料及HDFS中的資料檔案都會被刪除。