Используете ли вы Hadoop / MapReduce по определенной причине для решения этой проблемы? Это звучит как нечто более подходящее для приложений Lucene , чем Hadoop.
Если вам нужно использовать Hadoop, у меня есть несколько предложений:
Ваши «документы» должны быть в формате, с которым MapReduce может работать. Самый простой формат для использования - это файл на основе CSV с каждым словом в документе в строке. Наличие PDF и т. Д. Не сработает.
Чтобы принять набор слов в качестве входных данных для задания MapReduce для сравнения с данными, которые обрабатывает MapReduce, вы можете использовать Distributed Cache , чтобы каждый картограф мог создать набор слов хочу найти на входе. Однако, если ваш список слов, чтобы найти его большим (вы упоминаете 200 МБ), я сомневаюсь, что это будет работать Однако этот метод является одним из основных способов объединения в MapReduce.
Метод индексации, упомянутый в другом ответе здесь, также предлагает возможности. Опять же, термины, индексирующие документ, заставляют меня думать о Lucene, а не о hadoop. Если вы использовали этот метод, вам необходимо убедиться, что значение ключа содержит идентификатор документа, а также слово, чтобы в каждом документе содержалось количество слов.
Я не думаю, что когда-либо создавал несколько выходных файлов из задания MapReduce. Вам нужно было бы написать некоторый (и это было бы очень просто) код для обработки индексированного вывода в несколько файлов.