Hive中使用insert语句产生的小文件

大数据一直都在说小文件、
insert 也会产生小文件:
测试:
1、创建表
create table dept(
deptno string,
dname string,
location string
)row format delimited fields terminated by ‘\t’;

2、加载数据
load data local inpath ‘/home/hadoop/data/dept.txt’ overwrite into table dept;

3、insert语句插入
insert into table dept values (40,‘it’,‘japan’);
会跑一个mapreduce作业,作业跑完后select语句运行。

hive (ruozeg6)> select * from dept;
OK
40      it      japan
10      accouting       newwork
20      restart china
30      sales   japan
Time taken: 0.996 seconds, Fetched: 4 row(s)

去到hdfs的目录下查看文件:desc formatted 表名;查看到location

1、[hadoop@hadoop004 data]$ hdfs dfs -ls /user/hive/warehouse/ruozeg6.db/dept
19/07/01 20:24:54 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 3 items
-rwxr-xr-x   1 hadoop supergroup         12 2019-07-01 20:11 /user/hive/warehouse/ruozeg6.db/dept/000000_0
-rwxr-xr-x   1 hadoop supergroup         53 2019-07-01 17:55 /user/hive/warehouse/ruozeg6.db/dept/dept.txt

2、查看这个文件下的内容:
[hadoop@hadoop004 data]$ hdfs dfs -text /user/hive/warehouse/ruozeg6.db/dept/000000_0
19/07/01 20:32:40 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
40      it      japan

3、再执行一条插入语句:
insert into table dept values (50,'ERP','suzhou');

4、再去hadoop的hdfs目录下查看:
[hadoop@hadoop004 data]$  hdfs dfs -ls /user/hive/warehouse/ruozeg6.db/dept
Found 3 items
-rwxr-xr-x   1 hadoop supergroup         12 2019-07-01 20:11 /user/hive/warehouse/ruozeg6.db/dept/000000_0
-rwxr-xr-x   1 hadoop supergroup         14 2019-07-01 20:21 /user/hive/warehouse/ruozeg6.db/dept/000000_0_copy_1
-rwxr-xr-x   1 hadoop supergroup         53 2019-07-01 17:55 /user/hive/warehouse/ruozeg6.db/dept/dept.txt

在hive中,每使用一次insert都会产生一个小文件,在生产中是大忌。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值