Большие данные, Современные фреймворки и разработка приложений, Талия Д., Трунфио П., Мароццо Ф., 2025.
В книге рассматриваются модели, системы и фреймворку специально разработанные для обработки и анализа больших наборов данных. Вы познакомитесь с основными парадигмами и механизмами, применяемыми в анализе больших данных, включая MapReduce, рабочие потоки, массовый синхронный параллелизм, передачу сообщений и SQL-подобные модели. В главах книги описаны примеры использования фреймворков Hadoop, Spark, Storm и MPI и рассмотрены вопросы выбора среды, наиболее подходящей для достижения целевых задач приложения.
Книга предназначена разработчикам приложений для работы с большими данными, исследователям и профессионалам бизнеса, основанного на данных. Читатель должен хорошо владеть такими языками, как Java, Python или Scala, и знать основные концепции параллельного и распределенного программирования.

Принципы и характеристики больших данных.
За последние несколько лет способность генерирования и сбора данных выросла в геометрической прогрессии. В эпоху интернета вещей (1оТ) из нескольких источников, таких как датчики, мобильные устройства, веб-приложения и услуги, генерируются и собираются огромные объемы цифровых данных. Более того, с широким принятием мобильных устройств миллионы людей ежедневно пользуются социальными сетями и производят огромные объемы цифровых данных, которые можно эффективно задействовать для добычи ценной информации о динамике и поведении людей. Такие данные, которые принято называть «большими данными», содержат ценную информацию о действиях, интересах и поведении пользователей, что делает их идеально пригодными для очень широкого круга приложений.
В настоящее время термин «большие данные» часто используется неправильно, но он очень важен в вычислительной науке для понимания предпринимательской и человеческой деятельности. В технической литературе было предложено несколько определений данного термина, однако достичь глобального консенсуса относительно его содержимого было нелегко. Несмотря на то что указанный термин в явном виде не упоминается, первое его определение было предложено Дугом Лэйни (Doug Laney, аналитиком МЕТА Group, ныне компания Gartner) в отчете 2001 года (Laney и соавт., 2001), который предположил, что тремя аспектами трудностей в управлении данными являются объем, разнообразие и скорость. Впоследствии компания Gartner предложила более формальное определение (Gartner, Inc., дата публикации отсутствует): «Большие данные - это крупные объемы, высокая быстрота и/или большое разнообразие информационных активов, которые нуждаются в экономически эффективных, инновационных формах обработки, позволяющих улучшать понимание, принятие решений и автоматизацию процессов».
ОГЛАВЛЕНИЕ.
От издательства.
Предисловие.
Об авторах.
Признательности.
Глава 1. Введение.
1.1. Мотивация и цели.
1.2. Главные темы.
1.3. Аудитория и организация.
1.4. Онлайновые ресурсы.
Глава 2. Концепции больших данных.
2.1. Принципы и характеристики больших данных.
2.2. Концепции науки о данных.
2.2.1. Процессы науки о данных.
2.2.2. Навыки, специфичные для науки о данных.
2.3. Хранение больших данных.
2.3.1. MongoDB.
2.3.2. Google Bigtable.
2.3.3. HBase.
2.3.4. Redis.
2.3.5. DynamoDB.
2.3.6. Apache Cassandra.
2.3.7. Графовая система управления базами данных Neo4j.
2.3.8. Сводные соображения о хранилищах NoSQL.
2.4. Масштабируемый анализ данных.
2.5. Параллельные вычисления.
2.5.1. Базовые понятия и определения.
2.5.2. Параллельные архитектуры.
2.5.3. Аппаратные платформы.
2.5.4. Метрики производительности.
2.6. Облачные вычисления.
2.6.1. Модели распределения и развертывания облачных услуг.
2.6.2. Облачные услуги для больших данных.
2.7. На пути к экзафлопсным вычислениям.
2.7.1. Главные трудности систем экзафлопсного масштаба.
2.8. Параллельное и распределенное машинное обучение.
2.8.1. Стратегии параллельного обучения.
2.8.2. Стратегии распределенного обучения.
Глава 3. Модели программирования для больших данных.
3.1. Параллельное программирование для приложений по обработке больших данных.
3.1.1. Необходимость в моделях параллельного программирования.
3.1.2. Характеристики моделей программирования.
3.2. Модель на основе MapReduce.
3.2.1. Ключевые идеи, положенные в основу MapReduce.
3.2.2. Модель программирования.
3.2.3. Программы MapReduce.
3.2.4. Применения и соображения о производительности.
3.3. Модель на основе рабочего потока.
3.3.1. Шаблоны рабочих потоков.
3.3.2. Ориентированные ациклические графы.
3.4. Модель на основе передачи сообщений.
3.4.1. От коллективной памяти к передаче сообщений.
3.4.2. Примитивы передачи сообщений.
3.4.3. Групповая коммуникация.
3.5. Модель на основе массового синхронного параллелизма.
3.5.1. Супершаг.
3.5.2. Стоимость алгоритма массового синхронного параллелизма.
3.5.3. Модель на основе массового синхронного параллелизма с коллективной памятью.
3.6. SQL-подобная модель.
3.6.1. От модели NoSQL к SQL-подобной модели.
3.6.2. Зачем использовать язык SQL на больших данных?.
3.6.3. Разбиение данных на разделы.
3.7. Модель на основе разделенного глобального адресного пространства.
3.7.1. Параллелизм в модели на основе разделенного глобального адресного пространства.
3.7.2. Память и функция стоимости.
3.7.3. Распределение данных по местам.
3.8. Модели для систем экзафлопсного масштаба.
3.8.1. Роль моделей программирования в системах экзафлопсного масштаба.
3.8.2. Требования к моделям экзафлопсного масштаба.
3.8.3. Ограничения существующих моделей программирования.
3.8.4. Модели программирования для систем экзафлопсного масштаба.
Глава 4. Инструменты обработки больших данных.
4.1. Главные характеристики.
4.2. Инструменты программирования на основе модели MapReduce.
4.2.1. Apache Hadoop.
4.3. Инструменты программирования на основе рабочих потоков.
4.3.1. Apache Spark.
4.3.2. Apache Storm.
4.3.3. Apache Airflow.
4.4. Инструменты программирования на основе передачи сообщений.
4.4.1. Интерфейс передачи сообщений.
4.5. Инструменты программирования на основе массового синхронного параллелизма.
4.5.1. Spark GraphX.
4.6. Инструменты SQL-подобного программирования.
4.6.1. Apache Hive.
4.6.2. Apache Pig.
4.7. Инструменты программирования на основе разделенного глобального адресного пространства.
4.7.1. UPC++.
Глава 5. Сравнение инструментов программирования.
5.1. Перед проведением анализа инструментов.
5.2. Сравнительный анализ характеристик систем.
5.2.1. Характеристики систем.
5.2.2. Распространенность систем.
5.2.3. Преимущества и недостатки.
5.3. Сравнительный анализ на примерах приложений.
5.3.1. Пакетное приложение: Apache Spark в сопоставлении с Apache Hadoop.
5.3.2. Потоковое приложение: Apache Storm в сопоставлении с Apache Spark Streaming.
5.3.3. Приложение на основе SQL: Apache Hive в сопоставлении с Apache Spark SQL.
5.3.4. Графовое приложение: MPI в сопоставлении с Apache Spark GraphX.
Глава 6. Выбор правильного фреймворка для приручения больших данных.
6.1. Входные данные.
6.2. Класс приложения.
6.3. Инфраструктура.
6.4. Другие факторы.
Сопутствующие материалы.
Библиография.
Предметный указатель.
Купить .
Теги: учебник по программированию :: программирование :: Талия :: Трунфио :: Мароццо