Coder Social home page Coder Social logo

cpp_hw_14_yamr's Introduction

cpp_hw_14_yamr

yamr Условие Разработать систему запуска задач MapReduce. Не предполагается запуск внешних задач для отображения и свертки. На вход подается текстовый файл F, в котором каждая строка содержит электронный адрес. Для дальнейшей обработки не имеет значения что именно содержат строки - самое важное, что обработка выполняется построчно. В качестве дополнительных параметров будут указаны количество потоков для запуска функций отображения (M) и свертки (R) соответственно. На первом этапе необходимо выполнить разделение исходного файла на секции по количеству потоков отображения M, при этом следить, чтобы границы секций были выровнены по строке, то есть каждая секция заканчивалась целой строкой и начиналась с начала строки. Чтение фала на этом этапе недопустимо, за исключением минимально возможного для выравнивания по строке. На этапе работы отображения необходимо запустить M потоков, каждый из которых параметризуется параметрами своей секции, полученной после разделения (split) исходного файла. Задача потока построчно читать свою секцию и каждую строку отправлять в пользовательский функциональный объект. Результатом работы такого объекта будет новый список строк для стадии свертки. Полученные списки накапливаются в контейнере и сортируются. Для каждой секции свой контейнер. Предполагаем, что памяти достаточно для хранения всех строк. Как только все потоки отображения будут завершены, необходимо запустить M потоков смешивания (shuffle) и приготовить R контейнеров для будущей свертки. Общая задача на этапе смешивания переместить строки из M контейнеров в R контейнеров, при этом сделать это таким образом, чтобы одинаковые из них гарантированно попали в один и тот же контейнер для свертки. Важно, чтобы контейнеры для свертки остались отсортированные. Необходимо понять, как использовать объединение сортированных последовательностей. Как только все потоки смешивания завершат свою работу, должны будут запуститься R потоков для свертки. Каждый поток построчно отправляет контейнер в пользовательский функциональный объект. Результатом работы такого объекта будет список строк, который немедленно должен быть сохранен в файл. К моменту завершения работы всех потоков свертки в файловой системе должно сформироваться R файлов с результатами. При помощи полученного инструментария решить задачу определения минимально возможного префикса однозначно идентифицирующего строку. Для это потребуется написать два функциональных объекта - для отображения и свертки. Порядок запуска:

yamr

где • src – путь к файлу с данными. • mnum – количество потоков для работы отображения. • rnum – количество потоков для работы свертки. Самоконтроль • пакет yamr содержащий исполняемый файл yamr опубликован на bintray • отправлена на проверку ссылка на страницу репозитория Проверка Задание считается выполненным успешно, если после установки пакета и запуска с тестовыми данными существует ответ на вопрос - как по полученным результатам узнать минимально необходимый префикс. 1

cpp_hw_14_yamr's People

Contributors

jacksonrr3 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.