Bootstrap

hadoop对于小文件的处理方法

https://blog.csdn.net/weixin_36815898/article/details/90764410

小文件:指文件size小于HDFS上block(dfs block size)大小的文件

小文件如何产生:

  • 动态分区插入数据,产生大量的小文件,从而导致map数量剧增
  • reduce数量越多,小文件也越多,reduce的个数和输出文件个数一致
  • 数据源本身就是大量的小文件
  • 实时流处理:比如我们使用 Spark Streaming 从外部数据源接收数据,然后经过 ETL 处理之后存储到 HDFS 中。这种情况下在每个 Job 中会产生大量的小文件。

大量小文件的弊端

  • 增加map开销,每个切片split都要执行一次map任务,一个小文件就会对应一个split,一个map任务
  • 增加namenode内存压力,每个小文件都要有与之对应的元数据。影响namenode性能
  • 小文件过多将增加寻址次数,时间都花销的寻址上面。读取过多小文件数据的任务执行时,消耗过多的集群资源。mapreduce处理数据的最佳速度就是和集群中的传输速度相同

hdfs自带的小文件解决方案

  • hadoop Archive(HAR):减少对namenode的负载
  1. 意思是将文件再次进行整理和保存,使之更易管理和保存。而Hadoop中的归档是在HDFS之上又构建了一个新的抽象层,叫HAR(Hadoop Archives

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;