Java Hadoop MapReduce:读取一个文件并将其作为输入来过滤其他文件
我想写一个hadoop应用程序,它以一个文件和一个包含多个文件的输入文件夹作为输入。单个文件包含需要从文件夹中的其他文件中选择和提取其记录的键。我怎样才能做到这一点 顺便说一下,我有一个正在运行的hadoop mapreduce应用程序,它将文件夹的路径作为输入,进行处理并将结果写入另一个文件夹 我有点纠结于如何使用文件来获取需要从特定目录中的其他文件中选择和提取的密钥。包含密钥的文件是一个大文件,因此无法直接放入主存。我怎么做Java Hadoop MapReduce:读取一个文件并将其作为输入来过滤其他文件,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我想写一个hadoop应用程序,它以一个文件和一个包含多个文件的输入文件夹作为输入。单个文件包含需要从文件夹中的其他文件中选择和提取其记录的键。我怎样才能做到这一点 顺便说一下,我有一个正在运行的hadoop mapreduce应用程序,它将文件夹的路径作为输入,进行处理并将结果写入另一个文件夹 我有点纠结于如何使用文件来获取需要从特定目录中的其他文件中选择和提取的密钥。包含密钥的文件是一个大文件,因此无法直接放入主存。我怎么做 谢谢 在运行作业之前,我会先读取单个文件。在作业配置中存储所有需要
谢谢 在运行作业之前,我会先读取单个文件。在作业配置中存储所有需要的密钥。然后,您可以编写作业来读取文件夹中的文件。在mapper/reducer
设置(上下文)
方法中,从配置中读取密钥并全局存储,这样您就可以在map
或reduce
期间读取密钥>P>如果密钥的数量太大而不能适应内存,则考虑将密钥集加载到Bloom过滤器(大小合适,以产生较低的假阳性率),然后处理文件,检查Bloom过滤器中成员的每个键(Hadoop附带Bloom filter类,检查JavaDoc)。p>
您还需要执行第二个MR作业来完成最终验证(最有可能是在缩减侧连接)中,以消除第一个作业的假阳性输出。
如果密钥的数量很大,请考虑使用分布式缓存或-Frand通用选项,然后在mapper设置中将键加载到内存中stage@Christian当前位置如何使其全球化?在作业配置中存储所有需要的密钥是什么意思?我怎样才能做到这一点?