sequencefiles和hadoop流媒体

mwngjboj  于 2021-05-30  发布在  Hadoop
关注(0)|答案(0)|浏览(281)

我有一个用例,其中我使用hadoop流来运行一个可执行的as-map进程。在输入端,我有大量的序列文件。每个seq文件都有8个键和相应的值,它们是浮点数组的列表。我宁愿将一组seq文件分配给一个map进程,而不是让一个map进程来处理一个seq文件。因此,我决定将所有这些seq文件合并成一个大文件。假设这个大seq文件由50000个小seq文件组成。
现在,是否可以将hadoop流实用程序配置为将seq文件的一部分分配给每个map进程?
如何使每个Map进程获得需要处理的文件名列表?如何在Map可执行文件中检索这些信息?可执行文件是设计用于处理stdin的纯groovy脚本。在这种情况下,我的stdin会是什么样子(如何确定键/值对,以及它们的内容是什么)或者,因为我已经合并了序列文件,它们变成了一个大文件,并且丢失了各自的标识,这意味着我不能拥有它们的文件名,我需要处理一堆序列文件的键/值?
我认为,这个大的seq文件将有key/value,其中key是文件名,value是该文件的内容,而该文件又包含8个键和相应的值?如果是这样的话,当hadoop根据可能的Map数(假设在我的集群中可能有10个Map)拆分这个大文件时,每个Map将得到大约5000个键和相应的值?那么,在map exec中,如何访问这些键和值?
任何暗示都会大有帮助

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题