SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
1 © 2015 IBM Corporation
Всеволод Грабельников, in/vsgrab
Андрей Орлов, in/andreyorlov
© 2015 IBM Corporation
Введение в Apache Spark
Всеволод Грабельников (vgrabeln@ru.ibm.com)
3 © 2015 IBM Corporation
Предисловие
MPP
Spark
DBMS
Flink
 Spark это shared nothing MPP движок реализующий
архитектурные концепций, которые были ранее реализованы в
параллельных СУБД (DB2 DPF, Teradata, Netezza и.т.п.)
DB2
DataFlow
Netezza
4 © 2015 IBM Corporation
Предисловие
 Основная польза от Spark:
– Точно так же, как в конце 70-х СУБД (и MPP СУБД)
облегчили написание, а главное выполнение запросов,
Spark позволяет разработчикам и аналитикам
упростить написание приложений для распределенной
обработки данных
• Разработка приложений происходит на «более высоком»
уровне абстракции, благодаря RDD (Resilent Distributed Dataset)
• Система заботится о производительности
 Эффективно использует память (Bufferpools, Кеширование RDD в
памяти)
 Управляет подчиненными процессами-агентами (subagents in
DBMS, Executors in Spark)
• Позволяет выполнять интерактивные запросы (spark-shell)
– Поддерживает различные нагрузки (SQL, Streaming,
Machine Learning, Работа с графами)
5 © 2015 IBM Corporation
Кое-что о развитии Spark
6 © 2015 IBM Corporation
 Apache Spark – система для обработки больших данных
– Скорость
• Использует распределенный in-memory
кэш
• Быстрее чем Map-Reduce
– Система общего назначения
• Позволяет обрабатывать разные задачи
• SQL, streaming (потоки),
сложная аналитика, графы
– Гибче и проще чем Map Reduce
• Spark написан на Scala
• Scala, Python и Java APIs
• Scala и Python интерактивные оболочки
• Работает на Hadoop, Mesos, автономно и
в облаке
Логистическая регрессия на Hadoop и Spark
from http://spark.apache.org
7 © 2015 IBM Corporation
Коротко об истории Spark
 2002 – MapReduce @ Google
 2004 – MapReduce paper
 2006 – Hadoop @ Yahoo
 2008 – Hadoop Summit
 2010 – Spark paper
 2014 – Apache Spark top-level
 2014 – 1.2.0 release in December
 2015 – 1.3.0 release in March
 Spark популярен!!!
 Самый активный проект среди
Hadoop - экосистемы
 Один из 3 наиболее активных
проектов Apache
 Databricks - компания,
основанная создателями
Spark работавшими в UC
Berkeley AMPLab
Activity for 6 months in 2014
(from Matei Zaharia – 2014 Spark Summit)
8 © 2015 IBM Corporation
Spark в экосистеме Hadoop
 На текущий момент SPARK - подсистема, которая интегрируется
с YARN (управляет ресурсами кластера) вместе с другими
подсистемами
YARN
HDFS
Map/
Reduce 2
Hive Pig SparkHbase BigSQL Impala
Slider Llama
9 © 2015 IBM Corporation
Spark в экосистеме Hadoop
 Spark достаточно универсален и гибок:
– Работает поверх YARN / HDFS, автономно и с MESOS
– Способен обрабатывать разные задачи:SQL, streaming (потоки),
машинное обучение и сложная аналитика, графы
10 © 2015 IBM Corporation
Spark: немного деталей
12 © 2015 IBM Corporation
Схема работы Spark
SparkContext
Driver Program
Cluster Manager
Worker Node
Executor
Task Task
Cache
Worker Node
Executor
Task Task
Cache
App
 Каждое приложение на Spark выполняется как набор процессов,
координируемый Spark context object (driver program)
– Spark context соединяется с Cluster Manager (автономным, Mesos/Yarn)
– Spark context получает executor (JVM instance)
на рабочих узлах (worker node)
– Spark context посылает задания для executor’ов
13 © 2015 IBM Corporation
 RDDs неизменяемы
– Модификации создают новые RDDs
 Содержит ссылки на партиционированные объекты
 Каждая партиция (=секция) - подмножество общих данных
 Секции назначаются
узлам в кластере
 Секции находятся в
памяти (по-умолчанию)
 RDDs помнят свою
«родословную»
Resilient Distributed Dataset (RDD)
Partition
Memory
partition
Partition
Partition
Partition
Memory
partition
Memory
partition
Memory
partition
RDD
Array
14 © 2015 IBM Corporation
Spark Programming Model
 Операции с RDDs (datasets)
– Transformation
– Action
 Трансформации используют lazy evaluation
– Выполняется только в тот момент, когда операция с типом Action в этом
нуждается
 Приложение состоит из ориентированного ациклического графа
(directed acyclic graph = DAG)
– Каждый action превращается в отдельный JOB
– Параллелизм определяется числом RDD секций
RDD1 RDD2 RDD3
Act1
Act2
Job-1
Job-2
15 © 2015 IBM Corporation
Spark Shells
 Большим преимуществом Spark является возможность
интерактивного анализа с помощью специальных оболочек.
– Аналог в СУБД: SQL*Plus (Oracle), sqlcmd (MS SQL), nzsql (Netezza).
– Spark поддерживает интерактивные оболочки Scala и Python shell
<Scala
Python>
16 © 2015 IBM Corporation
Code Execution (1)
// Create RDD
val quotes =
sc.textFile("hdfs:/sparkdata/sparkQuotes.txt")
// Transformations
val danQuotes = quotes.filter(_.startsWith("DAN"))
val danSpark = danQuotes.map(_.split(" ")).map(x =>
x(1))
// Action
danSpark.filter(_.contains("Spark")).count()
DAN Spark is cool
BOB Spark is fun
BRIAN Spark is great
DAN Scala is awesome
BOB Scala is flexible
File: sparkQuotes.txt
 ‘spark-shell’ provides Spark context as ‘sc’
17 © 2015 IBM Corporation
Code Execution (2)
// Create RDD
val quotes =
sc.textFile("hdfs:/sparkdata/sparkQuotes.txt")
// Transformations
val danQuotes = quotes.filter(_.startsWith("DAN"))
val danSpark = danQuotes.map(_.split(" ")).map(x =>
x(1))
// Action
danSpark.filter(_.contains("Spark")).count()
DAN Spark is cool
BOB Spark is fun
BRIAN Spark is great
DAN Scala is awesome
BOB Scala is flexible
File: sparkQuotes.txt RDD: quotes
18 © 2015 IBM Corporation
Code Execution (3)
// Create RDD
val quotes =
sc.textFile("hdfs:/sparkdata/sparkQuotes.txt")
// Transformations
val danQuotes = quotes.filter(_.startsWith("DAN"))
val danSpark = danQuotes.map(_.split(" ")).map(x =>
x(1))
// Action
danSpark.filter(_.contains("Spark")).count()
DAN Spark is cool
BOB Spark is fun
BRIAN Spark is great
DAN Scala is awesome
BOB Scala is flexible
File: sparkQuotes.txt RDD: quotes RDD: danQuotes
19 © 2015 IBM Corporation
Code Execution (4)
// Create RDD
val quotes =
sc.textFile("hdfs:/sparkdata/sparkQuotes.txt")
// Transformations
val danQuotes = quotes.filter(_.startsWith("DAN"))
val danSpark = danQuotes.map(_.split(" ")).map(x =>
x(1))
// Action
danSpark.filter(_.contains("Spark")).count()
DAN Spark is cool
BOB Spark is fun
BRIAN Spark is great
DAN Scala is awesome
BOB Scala is flexible
File: sparkQuotes.txt RDD: quotes RDD: danQuotes RDD: danSpark
20 © 2015 IBM Corporation
Code Execution (5)
// Create RDD
val quotes =
sc.textFile("hdfs:/sparkdata/sparkQuotes.txt")
// Transformations
val danQuotes = quotes.filter(_.startsWith("DAN"))
val danSpark = danQuotes.map(_.split(" ")).map(x =>
x(1))
// Action
danSpark.filter(_.contains("Spark")).count()
DAN Spark is cool
BOB Spark is fun
BRIAN Spark is great
DAN Scala is awesome
BOB Scala is flexible
File: sparkQuotes.txt
HadoopRDD
DAN Spark is cool
BOB Spark is fun
BRIAN Spark is great
DAN Scala is awesome
BOB Scala is flexible
RDD: quotes
DAN Spark is cool
DAN Scala is awesome
RDD: danQuotes
Spark
Scala
RDD: danSpark
1
21 © 2015 IBM Corporation
Direct Acyclic Graph (DAG)
 Посмотрим «план запроса»
 Или перепишем в 1 строку
scala> danSpark.toDebugString
res1: String =
(2) MappedRDD[4] at map at <console>:16
| MappedRDD[3] at map at <console>:16
| FilteredRDD[2] at filter at <console>:14
| hdfs:/sparkdata/sparkQuotes.txt MappedRDD[1] at textFile at <console>:12
| hdfs:/sparkdata/sparkQuotes.txt HadoopRDD[0] at textFile at <console>:12
val danSpark = sc.textFile("hdfs:/sparkdata/sparkQuotes.txt").
filter(_.startsWith("DAN")).
map(_.split(" ")).
map(x => x(1)).
.filter(_.contains("Spark"))
danSpark.count()
22 © 2015 IBM Corporation
23 © 2015 IBM Corporation
SparkSQL
IBM Spark © 2015 IBM Corporation
IBM Spark © 2015 IBM Corporation
IBM анонсирует свою стратегию
по интеграции приложений и
улучшению Apache® Spark™
Наиболее важный Open Source проект с точки зрения IBM
IBM Spark © 2015 IBM Corporation
Передача в Open Source SystemML
Обучение 1 Миллион Data Professionals
Открываем Spark Technology Center ~ 300 разработчиков
Основатель и спонсор AMPLab
Коммиты в Ядро проекта
Анонс IBM
IBM Spark © 2015 IBM Corporation
SystemML – набор параллельных алгоритмов
Позволяет создавать свои собственные алгоритмы
Помогает data scientist сосредоточиться на написании алгоритма, а
не его имплементации
Ускоряет достижение результата для аналитиков
Передача SystemML в open source
IBM Spark © 2015 IBM Corporation
Big Data University MOOC
Spark Fundamentals I and II
Advanced Spark Development series
Foundational Methodology for Data Science
Партнерство с Databricks, AMPLab, DataCamp и MetiStream
Курсы для обучения Data
Scientists и Data Engineers
IBM Spark © 2015 IBM Corporation
Помощь заказчикам в адаптации технологий на основе Spark
Коммиты в проект
Создание обучающих курсов
Развитиеинтеграции продуктов IBM со Spark
Центр технологий Spark
IBM Spark © 2015 IBM Corporation
Экосистема партнеров
IBM Spark © 2015 IBM Corporation
Spark и платформа для аналитики IBM
Spark
Discovery &
Exploration
Content
Analytics
Prescriptive
Analytics
Streaming
Analytics
Business Intelligence & Predictive Analytics
Data
Management
Content
Management
Hadoop
Systems
Data
Warehousing
Information Integration & Governance
Apache Spark as a Service on IBM Bluemix (beta)
IBM Open Platform with Apache Hadoop может
использовать Spark как альтернативу MapReduce;
поддерживает все компоненты Apache Spark
Модули IBM BigInsights будут поддерживать Spark
Интеграция Spark моделей в IBM Streams
Java Code написанный для Spark работает в IBM Streams
Spark & IBM Streams могут работать на 1 кластере
Hadoop Systems
Streaming Analytics
IBM Spark © 2015 IBM Corporation
Сейчас
IBM Open Platform with Apache
Hadoop
IBM InfoSphere Streams
IBM Platform Computing
Использование Spark в IBM
Планы на текущий год
Apache Spark as a Service on IBM Bluemix (in beta)
IBM Watson Analytics
SPSS Modeler & Analytics Server
IBM DataWorks
IBM PureData Systems (Netezza) with Fluid Query
IBM Commerce
IBM Spark © 2015 IBM Corporation
Discover Сайт IBM Big Data Hub хаб новостей про большие данные
Learn Курс “Spark Fundamentals” в Big Data University
Try Spark Бета-программа Spark в облаке IBM Bluemix www.spark.tc/beta
Try Spark with Hadoop Скачать Hadoop IBM.com/Hadoop
Engage IBM Spark Technology Center www.spark.tc
Converse #SparkInsight
Напоследок:

Contenu connexe

Tendances

Hadoop presentation
Hadoop presentationHadoop presentation
Hadoop presentationVlad Orlov
 
Edition Based Redefinition . Обновление приложений на “лету”
Edition Based Redefinition. Обновление приложений на “лету”Edition Based Redefinition. Обновление приложений на “лету”
Edition Based Redefinition . Обновление приложений на “лету”Andrey Akulov
 
HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...Alexey Zinoviev
 
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)Andrei Nikolaenko
 
Архитектура Apache HAWQ Highload++ 2015
Архитектура Apache HAWQ Highload++ 2015Архитектура Apache HAWQ Highload++ 2015
Архитектура Apache HAWQ Highload++ 2015Alexey Grishchenko
 
Миграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows AzureМиграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows AzureNatalia Efimtseva
 
Hadoop on OpenStack
Hadoop on OpenStackHadoop on OpenStack
Hadoop on OpenStackYandex
 
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковIBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковMaxim Zinal
 
Моделирование для NoSQL БД
Моделирование для NoSQL БДМоделирование для NoSQL БД
Моделирование для NoSQL БДAndrew Sovtsov
 
Andrei Kirilenkov. Vertica
Andrei Kirilenkov. VerticaAndrei Kirilenkov. Vertica
Andrei Kirilenkov. VerticaVolha Banadyseva
 

Tendances (10)

Hadoop presentation
Hadoop presentationHadoop presentation
Hadoop presentation
 
Edition Based Redefinition . Обновление приложений на “лету”
Edition Based Redefinition. Обновление приложений на “лету”Edition Based Redefinition. Обновление приложений на “лету”
Edition Based Redefinition . Обновление приложений на “лету”
 
HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...
 
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
 
Архитектура Apache HAWQ Highload++ 2015
Архитектура Apache HAWQ Highload++ 2015Архитектура Apache HAWQ Highload++ 2015
Архитектура Apache HAWQ Highload++ 2015
 
Миграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows AzureМиграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows Azure
 
Hadoop on OpenStack
Hadoop on OpenStackHadoop on OpenStack
Hadoop on OpenStack
 
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковIBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
 
Моделирование для NoSQL БД
Моделирование для NoSQL БДМоделирование для NoSQL БД
Моделирование для NoSQL БД
 
Andrei Kirilenkov. Vertica
Andrei Kirilenkov. VerticaAndrei Kirilenkov. Vertica
Andrei Kirilenkov. Vertica
 

Similaire à Spark overview (18.06.2015)

Expert Fridays Spark Job
Expert Fridays Spark JobExpert Fridays Spark Job
Expert Fridays Spark JobProvectus
 
FlexPod для machine learning, 3D, контейнеров и еще сотня проверенных архитектур
FlexPod для machine learning, 3D, контейнеров и еще сотня проверенных архитектурFlexPod для machine learning, 3D, контейнеров и еще сотня проверенных архитектур
FlexPod для machine learning, 3D, контейнеров и еще сотня проверенных архитектурCisco Russia
 
Fors и big data appliance
Fors и big data applianceFors и big data appliance
Fors и big data applianceCleverDATA
 
Servionica: опыт публичного облака на базе OpenStack
Servionica: опыт публичного облака на базе OpenStackServionica: опыт публичного облака на базе OpenStack
Servionica: опыт публичного облака на базе OpenStackMirantis IT Russia
 
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...Cisco Russia
 
Инфраструктура под аналитику и большие данные
Инфраструктура под аналитику  и большие данныеИнфраструктура под аналитику  и большие данные
Инфраструктура под аналитику и большие данныеCisco Russia
 
RAD Server для разработки современных корпоративных систем
RAD Server для разработки современных корпоративных системRAD Server для разработки современных корпоративных систем
RAD Server для разработки современных корпоративных системAndrew Sovtsov
 
Новое поколение серверов SPARC
Новое поколение серверов SPARCНовое поколение серверов SPARC
Новое поколение серверов SPARCAndrey Akulov
 
Что такое спорт крок
Что такое спорт крокЧто такое спорт крок
Что такое спорт крокКРОК
 
облако для корпоративных ландшафтов практические аспекты выбора
облако для корпоративных ландшафтов   практические аспекты выбораоблако для корпоративных ландшафтов   практические аспекты выбора
облако для корпоративных ландшафтов практические аспекты выбораPlenipotentiary_Iryna
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-AccessSerghei Urban
 
Архитектура Apache Spark
Архитектура Apache SparkАрхитектура Apache Spark
Архитектура Apache SparkRamblerML
 
Database as a Service
Database as a ServiceDatabase as a Service
Database as a ServiceAndrey Akulov
 
Middleware
MiddlewareMiddleware
Middlewaremegakott
 
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-casesInformatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-casesIlya Gershanov
 
Новые возможности платформы Oracle 12c для хранилищ данных
Новые возможности платформы Oracle 12c для хранилищ данныхНовые возможности платформы Oracle 12c для хранилищ данных
Новые возможности платформы Oracle 12c для хранилищ данныхAndrey Akulov
 
Oracle. Олег Файницкий. "Безопасность - главный приоритет облачных решений Or...
Oracle. Олег Файницкий. "Безопасность - главный приоритет облачных решений Or...Oracle. Олег Файницкий. "Безопасность - главный приоритет облачных решений Or...
Oracle. Олег Файницкий. "Безопасность - главный приоритет облачных решений Or...Expolink
 
Review of all-flash array market and benefits
Review of all-flash array market and benefitsReview of all-flash array market and benefits
Review of all-flash array market and benefitsBogdan Vakulyuk
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. SparkTechnopark
 

Similaire à Spark overview (18.06.2015) (20)

Expert Fridays Spark Job
Expert Fridays Spark JobExpert Fridays Spark Job
Expert Fridays Spark Job
 
FlexPod для machine learning, 3D, контейнеров и еще сотня проверенных архитектур
FlexPod для machine learning, 3D, контейнеров и еще сотня проверенных архитектурFlexPod для machine learning, 3D, контейнеров и еще сотня проверенных архитектур
FlexPod для machine learning, 3D, контейнеров и еще сотня проверенных архитектур
 
Fors и big data appliance
Fors и big data applianceFors и big data appliance
Fors и big data appliance
 
Servionica: опыт публичного облака на базе OpenStack
Servionica: опыт публичного облака на базе OpenStackServionica: опыт публичного облака на базе OpenStack
Servionica: опыт публичного облака на базе OpenStack
 
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
 
Инфраструктура под аналитику и большие данные
Инфраструктура под аналитику  и большие данныеИнфраструктура под аналитику  и большие данные
Инфраструктура под аналитику и большие данные
 
RAD Server для разработки современных корпоративных систем
RAD Server для разработки современных корпоративных системRAD Server для разработки современных корпоративных систем
RAD Server для разработки современных корпоративных систем
 
Новое поколение серверов SPARC
Новое поколение серверов SPARCНовое поколение серверов SPARC
Новое поколение серверов SPARC
 
Что такое спорт крок
Что такое спорт крокЧто такое спорт крок
Что такое спорт крок
 
облако для корпоративных ландшафтов практические аспекты выбора
облако для корпоративных ландшафтов   практические аспекты выбораоблако для корпоративных ландшафтов   практические аспекты выбора
облако для корпоративных ландшафтов практические аспекты выбора
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-Access
 
Архитектура Apache Spark
Архитектура Apache SparkАрхитектура Apache Spark
Архитектура Apache Spark
 
Database as a Service
Database as a ServiceDatabase as a Service
Database as a Service
 
Middleware
MiddlewareMiddleware
Middleware
 
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-casesInformatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
 
Новые возможности платформы Oracle 12c для хранилищ данных
Новые возможности платформы Oracle 12c для хранилищ данныхНовые возможности платформы Oracle 12c для хранилищ данных
Новые возможности платформы Oracle 12c для хранилищ данных
 
3 ibm bdw2015
3 ibm bdw20153 ibm bdw2015
3 ibm bdw2015
 
Oracle. Олег Файницкий. "Безопасность - главный приоритет облачных решений Or...
Oracle. Олег Файницкий. "Безопасность - главный приоритет облачных решений Or...Oracle. Олег Файницкий. "Безопасность - главный приоритет облачных решений Or...
Oracle. Олег Файницкий. "Безопасность - главный приоритет облачных решений Or...
 
Review of all-flash array market and benefits
Review of all-flash array market and benefitsReview of all-flash array market and benefits
Review of all-flash array market and benefits
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
 

Spark overview (18.06.2015)

  • 1. 1 © 2015 IBM Corporation Всеволод Грабельников, in/vsgrab Андрей Орлов, in/andreyorlov
  • 2. © 2015 IBM Corporation Введение в Apache Spark Всеволод Грабельников (vgrabeln@ru.ibm.com)
  • 3. 3 © 2015 IBM Corporation Предисловие MPP Spark DBMS Flink  Spark это shared nothing MPP движок реализующий архитектурные концепций, которые были ранее реализованы в параллельных СУБД (DB2 DPF, Teradata, Netezza и.т.п.) DB2 DataFlow Netezza
  • 4. 4 © 2015 IBM Corporation Предисловие  Основная польза от Spark: – Точно так же, как в конце 70-х СУБД (и MPP СУБД) облегчили написание, а главное выполнение запросов, Spark позволяет разработчикам и аналитикам упростить написание приложений для распределенной обработки данных • Разработка приложений происходит на «более высоком» уровне абстракции, благодаря RDD (Resilent Distributed Dataset) • Система заботится о производительности  Эффективно использует память (Bufferpools, Кеширование RDD в памяти)  Управляет подчиненными процессами-агентами (subagents in DBMS, Executors in Spark) • Позволяет выполнять интерактивные запросы (spark-shell) – Поддерживает различные нагрузки (SQL, Streaming, Machine Learning, Работа с графами)
  • 5. 5 © 2015 IBM Corporation Кое-что о развитии Spark
  • 6. 6 © 2015 IBM Corporation  Apache Spark – система для обработки больших данных – Скорость • Использует распределенный in-memory кэш • Быстрее чем Map-Reduce – Система общего назначения • Позволяет обрабатывать разные задачи • SQL, streaming (потоки), сложная аналитика, графы – Гибче и проще чем Map Reduce • Spark написан на Scala • Scala, Python и Java APIs • Scala и Python интерактивные оболочки • Работает на Hadoop, Mesos, автономно и в облаке Логистическая регрессия на Hadoop и Spark from http://spark.apache.org
  • 7. 7 © 2015 IBM Corporation Коротко об истории Spark  2002 – MapReduce @ Google  2004 – MapReduce paper  2006 – Hadoop @ Yahoo  2008 – Hadoop Summit  2010 – Spark paper  2014 – Apache Spark top-level  2014 – 1.2.0 release in December  2015 – 1.3.0 release in March  Spark популярен!!!  Самый активный проект среди Hadoop - экосистемы  Один из 3 наиболее активных проектов Apache  Databricks - компания, основанная создателями Spark работавшими в UC Berkeley AMPLab Activity for 6 months in 2014 (from Matei Zaharia – 2014 Spark Summit)
  • 8. 8 © 2015 IBM Corporation Spark в экосистеме Hadoop  На текущий момент SPARK - подсистема, которая интегрируется с YARN (управляет ресурсами кластера) вместе с другими подсистемами YARN HDFS Map/ Reduce 2 Hive Pig SparkHbase BigSQL Impala Slider Llama
  • 9. 9 © 2015 IBM Corporation Spark в экосистеме Hadoop  Spark достаточно универсален и гибок: – Работает поверх YARN / HDFS, автономно и с MESOS – Способен обрабатывать разные задачи:SQL, streaming (потоки), машинное обучение и сложная аналитика, графы
  • 10. 10 © 2015 IBM Corporation Spark: немного деталей
  • 11. 12 © 2015 IBM Corporation Схема работы Spark SparkContext Driver Program Cluster Manager Worker Node Executor Task Task Cache Worker Node Executor Task Task Cache App  Каждое приложение на Spark выполняется как набор процессов, координируемый Spark context object (driver program) – Spark context соединяется с Cluster Manager (автономным, Mesos/Yarn) – Spark context получает executor (JVM instance) на рабочих узлах (worker node) – Spark context посылает задания для executor’ов
  • 12. 13 © 2015 IBM Corporation  RDDs неизменяемы – Модификации создают новые RDDs  Содержит ссылки на партиционированные объекты  Каждая партиция (=секция) - подмножество общих данных  Секции назначаются узлам в кластере  Секции находятся в памяти (по-умолчанию)  RDDs помнят свою «родословную» Resilient Distributed Dataset (RDD) Partition Memory partition Partition Partition Partition Memory partition Memory partition Memory partition RDD Array
  • 13. 14 © 2015 IBM Corporation Spark Programming Model  Операции с RDDs (datasets) – Transformation – Action  Трансформации используют lazy evaluation – Выполняется только в тот момент, когда операция с типом Action в этом нуждается  Приложение состоит из ориентированного ациклического графа (directed acyclic graph = DAG) – Каждый action превращается в отдельный JOB – Параллелизм определяется числом RDD секций RDD1 RDD2 RDD3 Act1 Act2 Job-1 Job-2
  • 14. 15 © 2015 IBM Corporation Spark Shells  Большим преимуществом Spark является возможность интерактивного анализа с помощью специальных оболочек. – Аналог в СУБД: SQL*Plus (Oracle), sqlcmd (MS SQL), nzsql (Netezza). – Spark поддерживает интерактивные оболочки Scala и Python shell <Scala Python>
  • 15. 16 © 2015 IBM Corporation Code Execution (1) // Create RDD val quotes = sc.textFile("hdfs:/sparkdata/sparkQuotes.txt") // Transformations val danQuotes = quotes.filter(_.startsWith("DAN")) val danSpark = danQuotes.map(_.split(" ")).map(x => x(1)) // Action danSpark.filter(_.contains("Spark")).count() DAN Spark is cool BOB Spark is fun BRIAN Spark is great DAN Scala is awesome BOB Scala is flexible File: sparkQuotes.txt  ‘spark-shell’ provides Spark context as ‘sc’
  • 16. 17 © 2015 IBM Corporation Code Execution (2) // Create RDD val quotes = sc.textFile("hdfs:/sparkdata/sparkQuotes.txt") // Transformations val danQuotes = quotes.filter(_.startsWith("DAN")) val danSpark = danQuotes.map(_.split(" ")).map(x => x(1)) // Action danSpark.filter(_.contains("Spark")).count() DAN Spark is cool BOB Spark is fun BRIAN Spark is great DAN Scala is awesome BOB Scala is flexible File: sparkQuotes.txt RDD: quotes
  • 17. 18 © 2015 IBM Corporation Code Execution (3) // Create RDD val quotes = sc.textFile("hdfs:/sparkdata/sparkQuotes.txt") // Transformations val danQuotes = quotes.filter(_.startsWith("DAN")) val danSpark = danQuotes.map(_.split(" ")).map(x => x(1)) // Action danSpark.filter(_.contains("Spark")).count() DAN Spark is cool BOB Spark is fun BRIAN Spark is great DAN Scala is awesome BOB Scala is flexible File: sparkQuotes.txt RDD: quotes RDD: danQuotes
  • 18. 19 © 2015 IBM Corporation Code Execution (4) // Create RDD val quotes = sc.textFile("hdfs:/sparkdata/sparkQuotes.txt") // Transformations val danQuotes = quotes.filter(_.startsWith("DAN")) val danSpark = danQuotes.map(_.split(" ")).map(x => x(1)) // Action danSpark.filter(_.contains("Spark")).count() DAN Spark is cool BOB Spark is fun BRIAN Spark is great DAN Scala is awesome BOB Scala is flexible File: sparkQuotes.txt RDD: quotes RDD: danQuotes RDD: danSpark
  • 19. 20 © 2015 IBM Corporation Code Execution (5) // Create RDD val quotes = sc.textFile("hdfs:/sparkdata/sparkQuotes.txt") // Transformations val danQuotes = quotes.filter(_.startsWith("DAN")) val danSpark = danQuotes.map(_.split(" ")).map(x => x(1)) // Action danSpark.filter(_.contains("Spark")).count() DAN Spark is cool BOB Spark is fun BRIAN Spark is great DAN Scala is awesome BOB Scala is flexible File: sparkQuotes.txt HadoopRDD DAN Spark is cool BOB Spark is fun BRIAN Spark is great DAN Scala is awesome BOB Scala is flexible RDD: quotes DAN Spark is cool DAN Scala is awesome RDD: danQuotes Spark Scala RDD: danSpark 1
  • 20. 21 © 2015 IBM Corporation Direct Acyclic Graph (DAG)  Посмотрим «план запроса»  Или перепишем в 1 строку scala> danSpark.toDebugString res1: String = (2) MappedRDD[4] at map at <console>:16 | MappedRDD[3] at map at <console>:16 | FilteredRDD[2] at filter at <console>:14 | hdfs:/sparkdata/sparkQuotes.txt MappedRDD[1] at textFile at <console>:12 | hdfs:/sparkdata/sparkQuotes.txt HadoopRDD[0] at textFile at <console>:12 val danSpark = sc.textFile("hdfs:/sparkdata/sparkQuotes.txt"). filter(_.startsWith("DAN")). map(_.split(" ")). map(x => x(1)). .filter(_.contains("Spark")) danSpark.count()
  • 21. 22 © 2015 IBM Corporation
  • 22. 23 © 2015 IBM Corporation SparkSQL
  • 23. IBM Spark © 2015 IBM Corporation
  • 24. IBM Spark © 2015 IBM Corporation IBM анонсирует свою стратегию по интеграции приложений и улучшению Apache® Spark™ Наиболее важный Open Source проект с точки зрения IBM
  • 25. IBM Spark © 2015 IBM Corporation Передача в Open Source SystemML Обучение 1 Миллион Data Professionals Открываем Spark Technology Center ~ 300 разработчиков Основатель и спонсор AMPLab Коммиты в Ядро проекта Анонс IBM
  • 26. IBM Spark © 2015 IBM Corporation SystemML – набор параллельных алгоритмов Позволяет создавать свои собственные алгоритмы Помогает data scientist сосредоточиться на написании алгоритма, а не его имплементации Ускоряет достижение результата для аналитиков Передача SystemML в open source
  • 27. IBM Spark © 2015 IBM Corporation Big Data University MOOC Spark Fundamentals I and II Advanced Spark Development series Foundational Methodology for Data Science Партнерство с Databricks, AMPLab, DataCamp и MetiStream Курсы для обучения Data Scientists и Data Engineers
  • 28. IBM Spark © 2015 IBM Corporation Помощь заказчикам в адаптации технологий на основе Spark Коммиты в проект Создание обучающих курсов Развитиеинтеграции продуктов IBM со Spark Центр технологий Spark
  • 29. IBM Spark © 2015 IBM Corporation Экосистема партнеров
  • 30. IBM Spark © 2015 IBM Corporation Spark и платформа для аналитики IBM Spark Discovery & Exploration Content Analytics Prescriptive Analytics Streaming Analytics Business Intelligence & Predictive Analytics Data Management Content Management Hadoop Systems Data Warehousing Information Integration & Governance Apache Spark as a Service on IBM Bluemix (beta) IBM Open Platform with Apache Hadoop может использовать Spark как альтернативу MapReduce; поддерживает все компоненты Apache Spark Модули IBM BigInsights будут поддерживать Spark Интеграция Spark моделей в IBM Streams Java Code написанный для Spark работает в IBM Streams Spark & IBM Streams могут работать на 1 кластере Hadoop Systems Streaming Analytics
  • 31. IBM Spark © 2015 IBM Corporation Сейчас IBM Open Platform with Apache Hadoop IBM InfoSphere Streams IBM Platform Computing Использование Spark в IBM Планы на текущий год Apache Spark as a Service on IBM Bluemix (in beta) IBM Watson Analytics SPSS Modeler & Analytics Server IBM DataWorks IBM PureData Systems (Netezza) with Fluid Query IBM Commerce
  • 32. IBM Spark © 2015 IBM Corporation Discover Сайт IBM Big Data Hub хаб новостей про большие данные Learn Курс “Spark Fundamentals” в Big Data University Try Spark Бета-программа Spark в облаке IBM Bluemix www.spark.tc/beta Try Spark with Hadoop Скачать Hadoop IBM.com/Hadoop Engage IBM Spark Technology Center www.spark.tc Converse #SparkInsight Напоследок: