使用flume sink hdfs小文件优化以及HDFS小文件问

2020-08-18  本文已影响0人  Rex_2013

1.flume到hdfs小文件优化

项目的架构是使用flume直接从kafka读取数据Sink HDFS

1.1HDFS存入大量小文件的影响

1.2 小文件处理

image.png

官方默认的这三个参数配置写入HDFS后会产生小文件,hdfs.rollInterval、hdfs.rollSize、hdfs.rollCount
基于以上hdfs.rollInterval=3600,hdfs.rollSize=134217728,hdfs.rollCount =0几个参数综合作用,效果如下:
(1)文件在达到128M时会滚动生成新文件
(2)文件创建超3600秒时会滚动生成新文件

2. HDFS小文件优化

2.1 HDFS小文件弊端

HDFS上每个文件都要在NameNode上建立一个索引,这个索引的大小约为150byte,这样当小文件比较多的时候,就会产生很多的索引文件,一方面会大量占用NameNode的内存空间,另一方面就是索引文件过大使得索引速度变慢。但注意,存储小文件所需要的磁盘容量和数据块的大小无关。例如,一个1MB的文件设置为128MB的块存储,实际使用是1MB的磁盘空间,而不是128M,但他的索引在NameNode中占用的内存是150byte。

2.2 HDFS小文件解决方案

小文件的优化无非以下几种方式:

(1)需要启动YARN进程
[root@node09 hadoop-3.1.3]# start-yarn.sh
(2)归档文件
    把/input目录里面的所有文件归档成一个叫input.har的归档文件,并把归档后文件存储到/output路径下。
[root@node09 hadoop-3.1.3]# bin/hadoop archive -archiveName input.har –p  /input   /output
(3)查看归档
[root@node09 hadoop-3.1.3]# hadoop fs -lsr /output/input.har
[root@node09 hadoop-3.1.3]# hadoop fs -lsr har:///output/input.har
(4)解归档文件
[root@node09 hadoop-3.1.3]# hadoop fs -cp har:///output/input.har/*    /
上一篇 下一篇

猜你喜欢

热点阅读