需要建一个辅助字典……鉴于文件id是非负整数,直接把所有文件名(或者Path对象)放在一个数组中就行了。这个数组可以在Mapper的setup方法中创建,也可以预先做好并让Hadoop Runtime作为Distributed Cache发放给每一个Mapper Task(Distributed Cache的API可参见
Hadoop: The Definitive Guide的第八章),后者的好处是文件数目特别多时不会导致内存溢出。
在 2014年7月20日星期日UTC+8下午4时16分55秒,Krasus C写道:
可以得到文件名,不过这个不知道怎么弄嘤嘤。试了试貌似用什么全局变量每次根据名字来+1的做法不对。。