我正在使用hadoop并使用创建我想要保留的文件的map任务,目前我正在通过收集器将这些文件传递给reduce任务。 reduce任务然后将这些文件传递给它的收集器,这允许我保留文件。
我的问题是如何可靠有效地保存地图创建的文件?
我知道我可以关闭地图输出的自动删除功能,但不满意的是它们有更好的方法吗?
由于
答案 0 :(得分:0)
你可以把它分成两份工作。
首先创建一个仅输出地图的作业,输出所需的序列文件。
然后,拿走你现有的工作(不再在地图上做任何事情,但你可以根据你的实施和用例做一些处理)并减少,因为你现在输入前一个地图的工作作为你的输入第二份工作。
你可以将这一切包装在一个运行2个jar的jar中,因此将输出路径作为参数传递给第二个作业输入路径。