Изучаем Spark: молниеносный анализ данных
Покупка
Тематика:
Системы управления базами данных (СУБД)
Издательство:
ДМК Пресс
Год издания: 2015
Кол-во страниц: 304
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-323-9
Артикул: 635288.02.99
К покупке доступен более свежий выпуск
Перейти
Объем обрабатываемых данных во всех областях человеческой деятельности продолжает расти быстрыми темпами. Существуют ли эффективные приемы работы с ним? В этой книге рассказывается об Apache Spark, открытой системе кластерных вычислений, которая позволяет быстро создавать высокопроизводительные программы анализа данных. С помощью Spark вы сможете манипулировать огромными объемами данных посредством простого API на Python, Java и Scala. Написанная разработчиками Spark, эта книга поможет исследователям данных и программистам быстро включиться в работу. Она рассказывает, как организовать параллельное выполнение заданий всего несколькими строчками кода, и охватывает примеры от простых пакетных приложений до программ, осуществляющих обработку потоковых данных и использующих алгоритмы машинного обучения.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Холден Карау, Энди Конвински, Патрик Венделл, Матей Захария Изучаем Spark Объем обрабатываемых данных во всех областях человеческой деятельности продолжает расти быстрыми темпами. Существуют ли эффективные приемы работы с ним? В этой книге рассказывается об Apache Spark, открытой системе кластерных вычислений, которая позволяет быстро создавать высокопроизводительные программы анализа данных. C помощью Spark вы сможете манипулировать огромными объемами данных посредством простого API на Python, Java и Scala. Написанная разработчиками Spark, эта книга поможет исследователям данных и программистам быстро включиться в работу. Она рассказывает, как организовать параллельное выполнение заданий всего несколькими строчками кода, и охватывает примеры от простых пакетных приложений до программ, осуществляющих обработку потоковых данных и использующих алгоритмы машинного обучения. Интернет-магазин: www.dmkpress.com Книга – почтой: orders@alians-kniga.ru Оптовая продажа: “Альянс-книга” тел.(499)782-38-89 books@alians-kniga.ru www.дмк.рф C помощью этой книги вы: • познакомитесь с особенностями Spark, такими как распределенные наборы данных, кэширование в памяти и интерактивные оболочки; • изучите мощные встроенные библиотеки Spark, включая Spark SQL, Spark Streaming и MLlib; • научитесь пользоваться единой парадигмой программирования вме сто смеси инструментов, таких как Hive, Hadoop, Mahout и Storm; • узнаете, как развертывать интерактивные, пакетные и потоковые приложения; • исследуете возможности использования разных источников данных, включая HDFS, Hive, JSON и S3; • овладеете продвинутыми приемами программирования на основе Spark, такими как разделение данных на разделы и применение совместно используемых переменных. 9 785970 603239 ISBN 978-5-97060-323-9 PROGRAMMING LANGUAGES/SPARK Learning Spark ISBN: 978-1-449-35862-4 US $39.99 CAN $ 45.99 “ Learning Spark is at the top of my list for anyone needing a gentle guide to the most popular framework for building big data applications.” —Ben Lorica Chief Data Scientist, O’Reilly Media Twitter: @oreillymedia facebook.com/oreilly Data in all domains is getting bigger. How can you work with it efficiently? This book introduces Apache Spark, the open source cluster computing system that makes data analytics fast to write and fast to run. With Spark, you can tackle big datasets quickly through simple APIs in Python, Java, and Scala. Written by the developers of Spark, this book will have data scientists and engineers up and running in no time. You’ll learn how to express parallel jobs with just a few lines of code, and cover applications from simple batch jobs to stream processing and machine learning. ■ Quickly dive into Spark capabilities such as distributed datasets, in-memory caching, and the interactive shell ■ Leverage Spark’s powerful built-in libraries, including Spark SQL, Spark Streaming, and MLlib ■ Use one programming paradigm instead of mixing and matching tools like Hive, Hadoop, Mahout, and Storm ■ Learn how to deploy interactive, batch, and streaming applications ■ Connect to data sources including HDFS, Hive, JSON, and S3 ■ Master advanced topics like data partitioning and shared variables Holden Karau, a software development engineer at Databricks, is active in open source and the author of Fast Data Processing with Spark (Packt Publishing). Andy Konwinski, co-founder of Databricks, is a committer on Apache Spark and co-creator of the Apache Mesos project. Patrick Wendell is a co-founder of Databricks and a committer on Apache Spark. He also maintains several subsystems of Spark’s core engine. Matei Zaharia, CTO at Databricks, is the creator of Apache Spark and serves as its Vice President at Apache. Learning Spark Karau, Konwinski, Wendell & Zaharia Изучаем Spark Молниеносный анализ данных «Книга «Изучаем Spark» занимает первые позиции в моем списке рекомендаций для тех, кто желает познакомиться с этим популярным фреймворком с целью создания приложений для обработки огромных объемов данных.» – Бен Лорика (Ben Lorica), ведущий специалист по работе с данными, O’Reilly Media
Изучаем Spark МОЛНИЕНОСНЫЙ АНАЛИЗ ДАННЫХ Холден Карау, Энди Конвински, Патрик Венделл и Матей Захария
Learning Spark LIGHTNING-FAST DATA ANALYSIS Holden Karau, Andy Konwinski, Patrick Wendell & Matei Zaharia
Изучаем Spark МОЛНИЕНОСНЫЙ АНАЛИЗ ДАННЫХ Холден Карау, Энди Конвински, Патрик Венделл и Матей Захария Москва, 2015
УДК 004.65:004.43 Spark ББК 32.972.34 К21 Карау Х., Конвински Э., Венделл П., Захария М. К21 Изучаем Spark: молниеносный анализ данных. – М.: ДМК Пресс, 2015. – 304 с.: ил. ISBN 978-5-97060-323-9 Объемобрабатываемыхданныхвовсехобластяхчеловеческой деятельностипродолжаетрастибыстрымитемпами.Существуют лиэффективныеприемыработысним?Вэтойкнигерассказывается об Apache Spark, открытой системе кластерных вычислений, которая позволяет быстро создавать высокопроизводительные программы анализа данных. C помощью Spark вы сможете манипулировать огромными объемами данных посредством простого API на Python, Java и Scala. Написанная разработчиками Spark, эта книга поможет иссле дователям данных и программистам быстро включиться в работу. Она рассказывает, как организовать параллельное выполнение заданийвсегонесколькимистрочкамикода,иохватываетпримеры от простых пакетных приложений до программ, осуществляющих обработку потоковых данных и использующих алгоритмы машинного обучения. УДК 004.65:004.43 Spark ББК 32.972.34 All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Все права защищены. Любая часть этой книги не может быть воспроиз ведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но по скольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-1-449-35862-4 (анг.) Copyright © 2015 Databricks ISBN 978-5-97060-323-9 (рус.) © Оформление, издание, ДМК Пресс, 2015
Содержание Предисловие ...........................................................10 Вступление ............................................................ 11 Глава 1. Введение в анализ данных с помощью Spark .....18 Что такое Apache Spark? ...................................................................................18 Унифицированный стек ....................................................................................19 Spark Core .........................................................................................................20 Spark SQL .........................................................................................................20 Spark Streaming ...............................................................................................21 MLlib ...................................................................................................................21 GraphX ...............................................................................................................22 Диспетчеры кластеров ..................................................................................22 Кто и с какой целью использует Spark? ......................................................22 Исследование данных ...................................................................................23 Обработка данных .........................................................................................24 Краткая история развития Spark ...................................................................24 Версии Spark .........................................................................................................26 Механизмы хранения данных для Spark ....................................................26 Глава 2. Загрузка и настройка Spark ............................27 Загрузка Spark ......................................................................................................27 Введение в командные оболочки Spark для Python и Scala .................29 Введение в основные понятия Spark ............................................................33 Автономные приложения .................................................................................35 Инициализация SparkContext ...................................................................36 Сборка автономных приложений .............................................................38 В заключение ........................................................................................................41 Глава 3. Программирование операций с RDD .................42 Основы RDD ........................................................................................................42 Создание RDD .....................................................................................................45 Операции с RDD .................................................................................................46 Преобразования ..............................................................................................46 Действия ............................................................................................................47 Отложенные вычисления ............................................................................49 Передача функций в Spark ...............................................................................50 Python ................................................................................................................50 Scala .....................................................................................................................51 Java ......................................................................................................................52
Содержание Часто используемые преобразования и действия ...................................54 Простые наборы RDD ..................................................................................54 Преобразование типов RDD .....................................................................63 Сохранение (кэширование).............................................................................65 В заключение ........................................................................................................68 Глава 4. Работа с парами ключ/значение ......................69 Вступление ............................................................................................................69 Создание наборов пар ........................................................................................70 Преобразования наборов пар ..........................................................................71 Агрегирование .................................................................................................73 Группировка данных .....................................................................................80 Соединения ......................................................................................................81 Сортировка .......................................................................................................82 Действия над наборами пар ключ/значение .............................................83 Управление распределением данных ...........................................................84 Определение объекта управления распределением RDD ...............88 Операции, получающие выгоды от наличия информации о распределении ..............................................................................................89 Операции, на которые влияет порядок распределения ....................90 Пример: PageRank ..........................................................................................91 Собственные объекты управления распределением .........................93 В заключение ........................................................................................................96 Глава 5. Загрузка и сохранение данных ........................97 Вступление ............................................................................................................97 Форматы файлов .................................................................................................98 Текстовые файлы ............................................................................................99 JSON ................................................................................................................ 101 Значения, разделенные запятыми, и значения, разделенные табуляциями ................................................................................................. 104 SequenceFiles ................................................................................................. 108 Объектные файлы ....................................................................................... 111 Форматы Hadoop для ввода и вывода ................................................ 112 Сжатие файлов ............................................................................................. 117 Файловые системы .......................................................................................... 118 Локальная/«обычная» файловая система .......................................... 118 Amazon S3 ...................................................................................................... 119 HDFS ............................................................................................................... 119 Структурированные данные и Spark SQL ............................................... 120 Apache Hive ................................................................................................... 121 JSON ................................................................................................................ 122 Базы данных ....................................................................................................... 123
Содержание 7 Java Database Connectivity ....................................................................... 123 Cassandra ........................................................................................................ 124 HBase ............................................................................................................... 127 Elasticsearch ................................................................................................... 127 В заключение ..................................................................................................... 129 Глава 6. Дополнительные возможности Spark ..............130 Введение .............................................................................................................. 130 Аккумуляторы ................................................................................................... 131 Аккумуляторы и отказоустойчивость ................................................. 135 Собственные аккумуляторы ................................................................... 136 Широковещательные переменные ............................................................. 136 Оптимизация широковещательных рассылок .................................. 139 Работа с разделами по отдельности ........................................................... 140 Взаимодействие с внешними программами ........................................... 143 Числовые операции над наборами RDD ................................................. 147 В заключение ..................................................................................................... 149 Глава 7. Выполнение в кластере ................................150 Введение .............................................................................................................. 150 Архитектура среды Spark времени выполнения ................................... 151 Драйвер ........................................................................................................... 151 Исполнители................................................................................................. 153 Диспетчер кластера .................................................................................... 153 Запуск программы ...................................................................................... 154 Итоги ............................................................................................................... 154 Развертывание приложений с помощью spark-submit ........................ 155 Упаковка программного кода и зависимостей ....................................... 158 Сборка приложения на Java с помощью Maven ............................... 159 Сборка приложения на Scala с помощью sbt ..................................... 161 Конфликты зависимостей ........................................................................ 163 Планирование приложений и в приложениях Spark .......................... 163 Диспетчеры кластеров .................................................................................... 164 Диспетчер кластера Spark Standalone .................................................. 165 Hadoop YARN ............................................................................................... 169 Apache Mesos................................................................................................. 171 Amazon EC2 ................................................................................................... 173 Выбор диспетчера кластера .......................................................................... 176 В заключение ..................................................................................................... 177 Глава 8. Настройка и отладка Spark ............................178 Настройка Spark с помощью SparkConf ................................................... 178 Компоненты выполнения: задания, задачи и стадии .......................... 181
Содержание Поиск информации ......................................................................................... 189 Веб-интерфейс Spark ................................................................................. 189 Журналы драйверов и исполнителей ................................................... 193 Ключевые факторы, влияющие на производительность ................... 195 Степень параллелизма .............................................................................. 195 Формат сериализации ............................................................................... 196 Управление памятью .................................................................................. 198 Аппаратное обеспечение ........................................................................... 199 В заключение ..................................................................................................... 201 Глава 9. Spark SQL ..................................................202 Включение Spark SQL в приложения ....................................................... 203 Использование Spark SQL в приложениях ............................................ 205 Инициализация Spark SQL ..................................................................... 205 Пример простого запроса ......................................................................... 207 Наборы данных SchemaRDD .................................................................. 208 Кэширование ................................................................................................ 210 Загрузка и сохранение данных .................................................................... 211 Apache Hive ................................................................................................... 212 Parquet ............................................................................................................. 213 JSON ................................................................................................................ 214 Из RDD........................................................................................................... 216 Сервер JDBC/ODBC ................................................................................. 217 Работа с программой Beeline ................................................................... 219 Долгоживущие таблицы и запросы ...................................................... 220 Функции, определяемые пользователем ................................................. 221 Spark SQL UDF ........................................................................................... 221 Hive UDF ....................................................................................................... 222 Производительность Spark SQL ................................................................. 223 Параметры настройки производительности ..................................... 223 В заключение ..................................................................................................... 225 Глава 10. Spark Streaming .........................................226 Простой пример ................................................................................................ 227 Архитектура и абстракция ............................................................................ 230 Преобразования ................................................................................................ 234 Преобразования без сохранения состояния ...................................... 234 Преобразования с сохранением состояния ........................................ 238 Операции вывода ............................................................................................. 244 Источники исходных данных ...................................................................... 245 Основные источники ................................................................................. 246 Дополнительные источники ................................................................... 247 Множество источников и размеры кластера ..................................... 252
Содержание 9 Круглосуточная работа ................................................................................. 252 Копирование в контрольных точках .................................................... 253 Повышение отказоустойчивости драйвера ........................................ 254 Отказоустойчивость рабочих узлов ..................................................... 255 Отказоустойчивость приемников ......................................................... 256 Гарантированная обработка..................................................................... 257 Веб-интерфейс Spark Streaming .................................................................. 257 Проблемы производительности .................................................................. 258 Интервал пакетирования и протяженность окна ............................ 258 Степень параллелизма ............................................................................. 259 Сборка мусора и использование памяти ............................................ 259 В заключение ..................................................................................................... 260 Глава 11. Машинное обучение с MLlib ........................261 Обзор .................................................................................................................... 261 Системные требования .................................................................................. 263 Основы машинного обучения ...................................................................... 263 Пример: классификация спама .............................................................. 265 Типы данных ...................................................................................................... 269 Векторы .......................................................................................................... 269 Алгоритмы .......................................................................................................... 271 Извлечение признаков .............................................................................. 271 Статистики .................................................................................................... 275 Классификация и регрессия .................................................................... 276 Кластеризация ............................................................................................. 282 Коллаборативная фильтрация и рекомендации .............................. 283 Понижение размерности .......................................................................... 285 Оценка модели ............................................................................................. 287 Советы и вопросы производительности .................................................. 288 Выбор признаков ......................................................................................... 288 Настройка алгоритмов .............................................................................. 289 Кэширование наборов RDD для повторного использования ..... 289 Разреженные векторы ............................................................................... 290 Степень параллелизма .............................................................................. 290 Высокоуровневый API машинного обучения ........................................ 290 В заключение ..................................................................................................... 292 Предметный указатель ............................................293
К покупке доступен более свежий выпуск
Перейти