gracejpw1117

2020-07-04   阅读量: 938

大数据

如何解决HDFS的大量小文件问题

扫码加入数据分析学习群

1)会有什么影响

(1)1个文件块,占用namenode多大内存150字节

1亿个小文件*150字节

1 个文件块 * 150字节

128G能存储多少文件块? 128 * 1024*1024*1024byte/150字节 = 9亿文件块

2)怎么解决

(1)采用har归档方式,将小文件归档

hadoop archive -archiveName 20200701.har /user/hadoop/login/202007/01(源文件路径) /user/hadoop/login/202007/01(目标文件路径)

CREATE EXTERNAL TABLE login_har(

ldate string,

ltime string,

userid int,

name string)

PARTITIONED BY (

ym string,

d string)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY ' '

STORED AS INPUTFORMAT

'org.apache.hadoop.mapred.TextInputFormat'

OUTPUTFORMAT

'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'

LOCATION

'hdfs://h60:9000/user/hadoop/login'

先对其父目录建表,然后对年月日进行分区(PARTITIONED BY)

再手动修改其动态分区 即可:

alter table login_har add partition(ym='202007',d='01') LOCATION 'har:///flume/loginlog/202007/01/20200701.har';

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
34.3921 2 0 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子