Сверка данных в Had oop самым примитивным способом - PullRequest
0 голосов
/ 13 марта 2020

Мне нужно выполнить сверку данных в oop на основе ключевых сравнений. Это означает, что у меня будут старые данные в одной папке, а новые данные будут помещены в разные папки. В конце пакета я планировал просто переместить новые данные, чтобы они соответствовали старым. Данные будут json файлы, из которых я должен извлечь ключи.

Я делаю первые шаги с Had oop, поэтому я просто хочу сделать это только с помощью программы MapReduce, то есть без инструментов, таких как Spark, Pig, Hive et c. Я думал о том, чтобы просто просмотреть все старые данные в начале программы, перед созданием объекта Job, и поместить все идентификаторы в Java HashMap, который будет доступен из задачи mapper. Если в более новых данных отсутствует ключ, маппер выведет его. Редуктор будет касаться категорий пропущенных идентификаторов, но это уже другая история. После завершения работы я переместил бы новые данные в папку старых данных.

Единственное, что я нахожу немного неуклюжим, - это фаза загрузки в Java объект HashMap. Это, вероятно, не самое элегантное решение, поэтому мне было интересно, есть ли в модели MapReduce какие-то выделенные структуры данных / функциональные возможности для такого рода целей ( заполнение глобальной карты ha sh всеми данными из HDFS перед первой задачей карты) работает )?

1 Ответ

0 голосов
/ 10 апреля 2020

Я думаю, что решение с HashMap не очень хорошая идея. Вы можете использовать несколько входов для вашей команды. В зависимости от входного файла маппер может понять, являются ли эти данные новыми, и записать их с подходящим значением. Затем редуктор проверит, содержатся ли эти данные только в «новом входе», и запишет эти данные. Таким образом, в результате работы вы получите только новые данные.

...