HDFS上创建文件夹,上传文件
sql
hive (default)> dfs -mkdir /student;
hive (default)> dfs -put /bigdata/stu.txt /student;
删除文件
用-r
sql
hive (default)> dfs -rm -r /student
Hive SQL管理表和内部表是同一个东西吗?
在 Hive 的术语中,"管理表"(Managed Table) 和 "内部表"(Internal Table) 指的是完全相同的一类表。
之所以会有两个名字,是因为从不同的角度描述它:
- 叫 "管理表" :是因为 Hive 会管理 (掌控)该表的数据文件。当你删除表时,Hive 会把元数据(MySQL 中) 和 实际数据(HDFS 中) 一起删掉。
- 叫 "内部表":是相对于 "外部表"(External Table)而言的,是 Hive 默认创建的表类型
一、 核心特征(怎么确认它是管理表?)
-
默认创建 :如果你不写
EXTERNAL关键字,创建的就是管理表。sql
-- 这就是创建管理表(内部表) CREATE TABLE student (id INT, name STRING); -
存储位置 :默认存储在 HDFS 的
/user/hive/warehouse/数据库名.db/表名/目录下。
将内部表修改为外部表
注意TRUE外部要加 单引号
sql
alter table t_users set tblproperties('EXTERNAL'='TRUE');
从Linux本机上传的文件中 导入到hive数据库
sql
hive (hw_db)> load data local inpath '/bigdata/dept.txt' into table dept_partition partition(month='202503');