MapReduce的input为小文件和har文件的相关实验

21 篇文章 0 订阅
21 篇文章 0 订阅

如果MapReduce的input是一些小文件(文件size小于hdfs的默认block大小),那么MapReduce job将会为每一个小文件开启一个单独的map——最后导致有大量的map,而每一个map其实只处理一小部分数据,却花了很大的时间在map自身的启动和停止上。

以下的实验将会验证小文件数量对map数量的影响,以及input为har文件时map数量的情况。


实验一:WordCount——input为5个小文件

执行WordCount job:$hadoop jar hadoop-example.jar wordcount /input01 /output01

Job执行完后,我们可以看到该Job一共启动了5个map:



实验二:WordCount——input为6个小文件

执行WordCount job:$hadoop jar hadoop-example.jar wordcount /input01 /output01

Job执行完后,我们可以看到该Job一共启动了6个map:



实验三:WordCount——input为1个har文件,它包含了6个小文件

首先,我们把上面的6个小文件打包成为一个har文件:

 hadoop archive -archiveName files.har -p /input01 /input-har

查看该har文件:


执行WordCount job:$hadoop jar hadoop-example.jar wordcount har://hdfs-host:9000/input-hars/files.har /output-hars

Job执行完后,我们可以看到该Job同样根据har包中的小文件数量一共启动了6个map:


从MapReduce job的角度看,har 文件并没有带来什么变化。但是,由于使用har文件归档小文件,hdfs上的文件数变少了,namenode的压力也变小了。



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值