Suche senden
Hochladen
Hadoop presentation
•
0 gefällt mir
•
1,799 views
Vlad Orlov
Folgen
Kiev, 26 of October
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 37
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Лекция 2. Основы Hadoop
Лекция 2. Основы Hadoop
Technopark
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFS
Technopark
Лекция 13. YARN
Лекция 13. YARN
Technopark
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
Technopark
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduce
Technopark
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
Technopark
Лекция 12. Spark
Лекция 12. Spark
Technopark
DUMP-2013 Наука и жизнь - Использование Hadoop в машинном обучении - Созыкин ...
DUMP-2013 Наука и жизнь - Использование Hadoop в машинном обучении - Созыкин ...
it-people
Empfohlen
Лекция 2. Основы Hadoop
Лекция 2. Основы Hadoop
Technopark
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFS
Technopark
Лекция 13. YARN
Лекция 13. YARN
Technopark
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
Technopark
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduce
Technopark
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
Technopark
Лекция 12. Spark
Лекция 12. Spark
Technopark
DUMP-2013 Наука и жизнь - Использование Hadoop в машинном обучении - Созыкин ...
DUMP-2013 Наука и жизнь - Использование Hadoop в машинном обучении - Созыкин ...
it-people
Опыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событиях
Vasil Remeniuk
Cостав дистрибутва Hortonworks data platform 2.3
Cостав дистрибутва Hortonworks data platform 2.3
Евгений Плакса
Hadoop > cascading -> cascalog (very short)
Hadoop > cascading -> cascalog (very short)
Andrew Panfilov
Лекция 10. Apache Mahout
Лекция 10. Apache Mahout
Technopark
Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
Technopark
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
Technopark
Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15
Alexey Zinoviev
Кластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможности
Alexey Demidchuk
DF1 - BD - Baranov - Mining Large Datasets with Apache Spark
DF1 - BD - Baranov - Mining Large Datasets with Apache Spark
MoscowDataFest
06 - Hadoop. Java API и Hadoop Streaming
06 - Hadoop. Java API и Hadoop Streaming
Roman Brovko
12 - Hadoop. HBase и Cassandra
12 - Hadoop. HBase и Cassandra
Roman Brovko
08 - Hadoop. Алгоритмы на графах в MapReduce
08 - Hadoop. Алгоритмы на графах в MapReduce
Roman Brovko
13 - Hadoop. Парадигма Spark
13 - Hadoop. Парадигма Spark
Roman Brovko
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
kuchinskaya
Uniting Data JavaOne2013
Uniting Data JavaOne2013
Dmitri Shiryaev
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Антон Шестаков
14 - Hadoop. Фреймворк Spark
14 - Hadoop. Фреймворк Spark
Roman Brovko
ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop
Vladimir Klimontovich
Использование Sedna в WEB
Использование Sedna в WEB
Alexandre Kalendarev
Велосипедостраительство в NoSQL, строим собственное NoSQL хранилище
Велосипедостраительство в NoSQL, строим собственное NoSQL хранилище
Alexandre Kalendarev
Building a Self-Service Hadoop Platform at Linkedin with Azkaban
Building a Self-Service Hadoop Platform at Linkedin with Azkaban
DataWorks Summit
Azkaban
Azkaban
Anatoliy Nikulin
Weitere ähnliche Inhalte
Was ist angesagt?
Опыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событиях
Vasil Remeniuk
Cостав дистрибутва Hortonworks data platform 2.3
Cостав дистрибутва Hortonworks data platform 2.3
Евгений Плакса
Hadoop > cascading -> cascalog (very short)
Hadoop > cascading -> cascalog (very short)
Andrew Panfilov
Лекция 10. Apache Mahout
Лекция 10. Apache Mahout
Technopark
Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
Technopark
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
Technopark
Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15
Alexey Zinoviev
Кластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможности
Alexey Demidchuk
DF1 - BD - Baranov - Mining Large Datasets with Apache Spark
DF1 - BD - Baranov - Mining Large Datasets with Apache Spark
MoscowDataFest
06 - Hadoop. Java API и Hadoop Streaming
06 - Hadoop. Java API и Hadoop Streaming
Roman Brovko
12 - Hadoop. HBase и Cassandra
12 - Hadoop. HBase и Cassandra
Roman Brovko
08 - Hadoop. Алгоритмы на графах в MapReduce
08 - Hadoop. Алгоритмы на графах в MapReduce
Roman Brovko
13 - Hadoop. Парадигма Spark
13 - Hadoop. Парадигма Spark
Roman Brovko
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
kuchinskaya
Uniting Data JavaOne2013
Uniting Data JavaOne2013
Dmitri Shiryaev
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Антон Шестаков
14 - Hadoop. Фреймворк Spark
14 - Hadoop. Фреймворк Spark
Roman Brovko
ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop
Vladimir Klimontovich
Использование Sedna в WEB
Использование Sedna в WEB
Alexandre Kalendarev
Велосипедостраительство в NoSQL, строим собственное NoSQL хранилище
Велосипедостраительство в NoSQL, строим собственное NoSQL хранилище
Alexandre Kalendarev
Was ist angesagt?
(20)
Опыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событиях
Cостав дистрибутва Hortonworks data platform 2.3
Cостав дистрибутва Hortonworks data platform 2.3
Hadoop > cascading -> cascalog (very short)
Hadoop > cascading -> cascalog (very short)
Лекция 10. Apache Mahout
Лекция 10. Apache Mahout
Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15
Кластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможности
DF1 - BD - Baranov - Mining Large Datasets with Apache Spark
DF1 - BD - Baranov - Mining Large Datasets with Apache Spark
06 - Hadoop. Java API и Hadoop Streaming
06 - Hadoop. Java API и Hadoop Streaming
12 - Hadoop. HBase и Cassandra
12 - Hadoop. HBase и Cassandra
08 - Hadoop. Алгоритмы на графах в MapReduce
08 - Hadoop. Алгоритмы на графах в MapReduce
13 - Hadoop. Парадигма Spark
13 - Hadoop. Парадигма Spark
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Uniting Data JavaOne2013
Uniting Data JavaOne2013
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
14 - Hadoop. Фреймворк Spark
14 - Hadoop. Фреймворк Spark
ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop
Использование Sedna в WEB
Использование Sedna в WEB
Велосипедостраительство в NoSQL, строим собственное NoSQL хранилище
Велосипедостраительство в NoSQL, строим собственное NoSQL хранилище
Andere mochten auch
Building a Self-Service Hadoop Platform at Linkedin with Azkaban
Building a Self-Service Hadoop Platform at Linkedin with Azkaban
DataWorks Summit
Azkaban
Azkaban
Anatoliy Nikulin
Hadoop ecosystem framework n hadoop in live environment
Hadoop ecosystem framework n hadoop in live environment
Delhi/NCR HUG
Interactive workflow management using Azkaban
Interactive workflow management using Azkaban
datamantra
Azkaban - WorkFlow Scheduler/Automation Engine
Azkaban - WorkFlow Scheduler/Automation Engine
Praveen Thirukonda
NoSQL: what's under the hood?
NoSQL: what's under the hood?
Aleksey Solntsev
Redis
Redis
Ptico
Hadoop on OpenStack
Hadoop on OpenStack
Yandex
Fors и big data appliance
Fors и big data appliance
CleverDATA
Hadoop streaming простой путь к масштабированию приложений обработки данных. ...
Hadoop streaming простой путь к масштабированию приложений обработки данных. ...
rit2011
Платформа Apache Hadoop
Платформа Apache Hadoop
DotNetConf
Apache Hadoop
Apache Hadoop
Ivan Blinkov
Куда мы катимся. Анализ многолетних наблюдений омской ИТ отрасли в пяти минутах
Куда мы катимся. Анализ многолетних наблюдений омской ИТ отрасли в пяти минутах
Anatoliy Nikulin
Vaadin thinking of u and i. Или как писать Rich Internet Applications, в стар...
Vaadin thinking of u and i. Или как писать Rich Internet Applications, в стар...
Anatoliy Nikulin
Архитектура продукта Thumbtack RTB Bidder
Архитектура продукта Thumbtack RTB Bidder
Anatoliy Nikulin
Hive vs Pig
Hive vs Pig
Anatoliy Nikulin
HBase inside
HBase inside
Anatoliy Nikulin
Apache Hive
Apache Hive
Anatoliy Nikulin
Development without Testers: Myth or Real Option?
Development without Testers: Myth or Real Option?
Mikalai Alimenkou
Конференция Юкон. Процессинг данных на лямбда архитектуре.
Конференция Юкон. Процессинг данных на лямбда архитектуре.
Anatoliy Nikulin
Andere mochten auch
(20)
Building a Self-Service Hadoop Platform at Linkedin with Azkaban
Building a Self-Service Hadoop Platform at Linkedin with Azkaban
Azkaban
Azkaban
Hadoop ecosystem framework n hadoop in live environment
Hadoop ecosystem framework n hadoop in live environment
Interactive workflow management using Azkaban
Interactive workflow management using Azkaban
Azkaban - WorkFlow Scheduler/Automation Engine
Azkaban - WorkFlow Scheduler/Automation Engine
NoSQL: what's under the hood?
NoSQL: what's under the hood?
Redis
Redis
Hadoop on OpenStack
Hadoop on OpenStack
Fors и big data appliance
Fors и big data appliance
Hadoop streaming простой путь к масштабированию приложений обработки данных. ...
Hadoop streaming простой путь к масштабированию приложений обработки данных. ...
Платформа Apache Hadoop
Платформа Apache Hadoop
Apache Hadoop
Apache Hadoop
Куда мы катимся. Анализ многолетних наблюдений омской ИТ отрасли в пяти минутах
Куда мы катимся. Анализ многолетних наблюдений омской ИТ отрасли в пяти минутах
Vaadin thinking of u and i. Или как писать Rich Internet Applications, в стар...
Vaadin thinking of u and i. Или как писать Rich Internet Applications, в стар...
Архитектура продукта Thumbtack RTB Bidder
Архитектура продукта Thumbtack RTB Bidder
Hive vs Pig
Hive vs Pig
HBase inside
HBase inside
Apache Hive
Apache Hive
Development without Testers: Myth or Real Option?
Development without Testers: Myth or Real Option?
Конференция Юкон. Процессинг данных на лямбда архитектуре.
Конференция Юкон. Процессинг данных на лямбда архитектуре.
Ähnlich wie Hadoop presentation
Zend Framework и мультиязычность
Zend Framework и мультиязычность
Stepan Tanasiychuk
Druid - Interactive Analytics At Scale
Druid - Interactive Analytics At Scale
Lohika_Odessa_TechTalks
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Andrei Nikolaenko
Nosql and Mongodb
Nosql and Mongodb
Eduard Antsupov
Gradle Introduction
Gradle Introduction
Kirill Rozov
Корпоративное приложение на Rails
Корпоративное приложение на Rails
Andrei Kaleshka
Erlang tasty & useful stuff
Erlang tasty & useful stuff
Dmitry Demeshchuk
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
Ontico
Технологии и продукты Oracle для обработки и анализа Больших Данных
Технологии и продукты Oracle для обработки и анализа Больших Данных
Andrey Akulov
Drupal Vs Other
Drupal Vs Other
Andrii Lundiak
1 big data oracle digi oct
1 big data oracle digi oct
antishmanti
php frameworks
php frameworks
Транслируем.бел
Решения Oracle для Big Data
Решения Oracle для Big Data
Andrey Akulov
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
phpdevby
Perl Debugger и mod_perl
Perl Debugger и mod_perl
Иван mrRico
SPA инструменты
SPA инструменты
Roman Dvornov
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
PVasili
Rapid Deployment of Hadoop Development Environments
Rapid Deployment of Hadoop Development Environments
Andrei Nikolaenko
CodeFest 2012. Сидельников А. — Опыт создания DSL на Ruby. Где применить, как...
CodeFest 2012. Сидельников А. — Опыт создания DSL на Ruby. Где применить, как...
CodeFest
HSE{Consult}: DevOps – новая методология разработки
HSE{Consult}: DevOps – новая методология разработки
Business incubator HSE
Ähnlich wie Hadoop presentation
(20)
Zend Framework и мультиязычность
Zend Framework и мультиязычность
Druid - Interactive Analytics At Scale
Druid - Interactive Analytics At Scale
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Nosql and Mongodb
Nosql and Mongodb
Gradle Introduction
Gradle Introduction
Корпоративное приложение на Rails
Корпоративное приложение на Rails
Erlang tasty & useful stuff
Erlang tasty & useful stuff
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
Технологии и продукты Oracle для обработки и анализа Больших Данных
Технологии и продукты Oracle для обработки и анализа Больших Данных
Drupal Vs Other
Drupal Vs Other
1 big data oracle digi oct
1 big data oracle digi oct
php frameworks
php frameworks
Решения Oracle для Big Data
Решения Oracle для Big Data
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
Perl Debugger и mod_perl
Perl Debugger и mod_perl
SPA инструменты
SPA инструменты
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
Rapid Deployment of Hadoop Development Environments
Rapid Deployment of Hadoop Development Environments
CodeFest 2012. Сидельников А. — Опыт создания DSL на Ruby. Где применить, как...
CodeFest 2012. Сидельников А. — Опыт создания DSL на Ruby. Где применить, как...
HSE{Consult}: DevOps – новая методология разработки
HSE{Consult}: DevOps – новая методология разработки
Hadoop presentation
1.
Hadoop
Vladimir Orlov vorl@codeminders.com Copyright © 2011 Codeminders <vorl@codeminders.com>
2.
О чем я
расскажу? • О Hadoop в кратце • Примеры из жизни • Установка и настройка • Оптимизация MR-заданий • Отладка и алгоритмы
3.
О Hadoop
4.
Нadoop это: •
MapReduce: JobTracker, TaskTracker • HDFS: NameNode, DataNode • Скрипты для управления кластером • Скрипты для работы с HDFS • API для написания MR-заданий • Hadoop-Streaming для не-Java MR заданий Copyright © 2011 Codeminders <vorl@codeminders.com>
5.
Зоопарк Нadoop это: •
Hive, Pig – аналоги Sawzall • HBase – аналог BigTable • Zookeeper – аналог Chubby • Mahout – коллекция MR алгоритмов • Nutch – open-source кровлер • Oozie, Azkaban, Hamake, Cascading Copyright © 2011 Codeminders <vorl@codeminders.com>
6.
Терминология • Job (задание)
– “вся программа” – выполнение Mapper'ов и Reducer'ов на всем множестве входных данных • Task (задача) – выполнение Mapper'ов и Reducer'ов на части входных данных • Task Attempt (попытка выполнения задачи) – экземпляр запущенной задачи на определенной машине • Mapper - map (in_key, in_value) -> (inter_key, inter_value) list • Reducer - reduce (inter_key, inter_value list) -> (out_key, out_value) list • Partitioner – класс, ответственный за распределение пар ключ/значение м/у reducer'ами • Input/Output Format – формат входных/выходных данных Copyright © 2011 Codeminders <vorl@codeminders.com>
7.
Реализация MR заданий 1.Создаем
2 класса, наследующие MapReduceBase и реализующие интерфейсы Mapper (с вашей map- функцией) и Reducer (с вашей reduce-функцией) 2.Конфигурируем MapReduce-задание, создав экземпляр класса JobConf 3.Передаем в JobConf параметры: путь к входному файлу на HDFS, путь к директории c результатом, формат входных и выходных данных, класс с map- функцией, класс с reduce-функцией 4.Вызваем метод JobConf.runJob() 5.Дальше - за вас работает Hadoop Copyright © 2011 Codeminders <vorl@codeminders.com>
8.
Примеры из жизни
9.
Корпоративный Веб-кровлер ●
Цель - реализация кровлера, собирающего и индексирующего данные с заданных веб- сайтов ● Технологии: ● Nutch + Hadoop + HDFS – кровлинг и индексация ● Lucene + Solr – хранение, распределение индекса и обработка поисковых запросов ● Zookeeper – синхронизация м/у компонентами Copyright © 2011 Codeminders <vorl@codeminders.com>
10.
Схема Компонентов
Copyright © 2011 Codeminders <vorl@codeminders.com>
11.
Особенности проекта
● Индексация – средствами Nutch ● Hadoop кластер на Windows ● Синхронизация – Zookeeper ● Ручное распределение индекса. Для обработки поисковых запросов – Solr Sharding: Copyright © 2011 Codeminders <vorl@codeminders.com>
12.
Поиск одинаковых книг ●
Цель - определение книг, не отличающихся по содержанию среди всех, которые поступают на fb2pdf.com ● Технологии: ● Hadoop + Mahout – кластеризация книг. В качестве меры расстояния – косинусное расстояние. Алгоритм кластеризации - Canopy ● Hamake – объединение MR-заданий в процесс Copyright © 2011 Codeminders <vorl@codeminders.com>
13.
Цепочка MR-заданий
Copyright © 2011 Codeminders <vorl@codeminders.com>
14.
Несколько слов о
Hamake... ● Наблюдение 1: большинство задач по обработке данных нуждаются в более чем одном MR-задании. ● Наблюдение 2: большинство таких заданий «управляются данными« (data-driven) ● Hamake – утилита, которая позволяет описать процесс обработки данных ввиде потока, и запустить этот процесс на выполнение. ● Поток представляет собой DAG, где узлы – данные, ребра – правило изменения данных. Copyright © 2011 Codeminders <vorl@codeminders.com>
15.
Fold и Foreach <fold
name="FindSimilar"> <foreach name="CalculateTF"> <input> <input> <file id="TFVector" path="/TF" /> <fileset id="terms" path="/terms" /> </input> </input> <output> <output> <include idref="clustersList" path="/clusters"/> <file id="TFVector" path="/TF/${foreach:filename}" /> </output> </output> <mapreduce jar="${lib}/hadoopJobs.job" <mapreduce jar="${lib}/hadoopJobs.job" main="com.example.Canopy"> main="com.example.CalculateTF"> ... ... </mapreduce> </mapreduce> </fold> </foreach> Copyright © 2011 Codeminders <vorl@codeminders.com>
16.
Запуск процесса в
Hamake hadoop jar hamake-2.0b-3.jar -f hamakefile.xml >10/05/05 17:28:55 INFO hamake.Main: Using Hadoop 0.xx.x >10/05/05 17:28:55 INFO hamake.Main: Working dir: file:/home/project/HaMake/src/hamake >10/05/05 17:28:55 INFO hamake.Main: Reading hamake-file my-first-hamakefile.xml >10/05/05 17:28:59 INFO hamake.TaskRunner: Starting randomtextwriter ... >10/05/05 17:29:05 WARN hamake.Hamake: Some of your tasks have called System.exit() method. This is not recommended behaviour because it will prevent Hamake from launching other tasks. >10/05/05 17:29:05 INFO hamake.TaskRunner: Execution of randomtextwriter is completed >10/05/05 17:29:05 INFO hamake.TaskRunner: Starting wordcount ... >10/05/05 17:29:10 WARN hamake.Hamake: Some of your tasks have called System.exit() method. This is not recommended behaviour because it will prevent Hamake from launching other tasks. >10/05/05 17:29:10 INFO hamake.TaskRunner: Execution of wordcount is completed Copyright © 2011 Codeminders <vorl@codeminders.com>
17.
Установка и настройка
18.
Установка Hadoop • Пользуйтесь
дистрибутивами Hadoop : ● Cloudera's CDH ● Yahoo Distribution of Hadoop • Hadoop не работает на Windows (patch #6767) • Не используйте RAID • Для данных в S3, пользуйтесь EMR Copyright © 2011 Codeminders <vorl@codeminders.com>
19.
Важные параметры • dfs.block.size
<= 128Mb (hdfs-site.xml) • dfs.datanode.du.reserved – оставляйте место для системных файлов • io.file.buffer.size <=64Kb (core-site.xml) • mapred.child.java.opts – параметры JVM для дочерних mapper'ов и reducer'ов • io.sort.mb – количество памяти в Mb, выделяемое на сортировку • mapred.(map|reduce).tasks – число должно быть равно <количеству процессоров - 1> Copyright © 2011 Codeminders <vorl@codeminders.com>
20.
Тесты для Hadoop •
TestDFSIO – простой тест для HDFS • Gridmix – группа тестов, симулирующие «реальную» нагрузку • RandomWriter + Sort: hadoop jar hadoop-*-examples.jar randomwriter random-data hadoop jar hadoop-*-examples.jar sort random-data sorted-data hadoop jar hadoop-*-test.jar testmapredsort -sortInput random- data -sortOutput sorted-data Copyright © 2011 Codeminders <vorl@codeminders.com>
21.
Оптимизация и отладка
22.
Самая важная оптимизация •
Не создавайте объекты без необходимости • Например, ключи и значения в mapper'е и reducer'е Copyright © 2011 Codeminders <vorl@codeminders.com>
23.
Почему? 1.Создание объектов - дорогостоящая
операция 2.Создание объектов может приводить к не очевидным потерям памяти 3.Все, что было создано, должно быть освобождено сборщиком мусора Copyright © 2011 Codeminders <vorl@codeminders.com>
24.
Типы данных в
Hadoop Writable Определяет протокол десериализации. Каждый тип данных в Hadoop является Writable.. Определяет порядок сортировки. Все WritableComparable ключи должны быть того же типа (но не значения). IntWritable LongWritable Конкретные классы для различный типов данных. Text … Copyright © 2011 Codeminders <vorl@codeminders.com>
25.
Классы-обертки ●
типы данных в Hadoop являются “обертками” : • Text: строковый тип данных • IntWritable: целые числа • LongWritable: длинные целые числа • FloatWritable: числа с плавающей точкой • … ● Почему? Writable определяет формат передачи данных по сети ● Классы-обертки и их содержимое : • Важное различие! • Позволяет повторное использование оберток Copyright © 2011 Codeminders <vorl@codeminders.com>
26.
Не переопределяйте объекты
Map class Map class key = new key() value = new value() Map method (key, input) Map method (key, input) key = new key(…) key.set(…) value = new value(…) value.set(…) … … EMIT (key, value) EMIT (key, value) Не верно! Верно! Copyright © 2011 Codeminders <vorl@codeminders.com>
27.
Reducer ●
Внутри reducer, API предоставляет Вам итератор поверх значений • Будте внимательны - это каждый раз тот же самый объект, заполненный другим содержимым! protected void reduce(KEYIN key, Iterable<VALUEIN> values, Context context ) throws IOException, InterruptedException { for(VALUEIN value: values) { context.write((KEYOUT) key, (VALUEOUT) value); } } Copyright © 2011 Codeminders <vorl@codeminders.com>
28.
WritableComparable ●
Между фазами map и reduce: сортировка и перетасовка • Наивный подход: десериализация ключа и использование метода compareTo • например, a.compareTo(b) • В чем проблема? ● WritableComparator: сравнивайте побайтно • Избегаем накладных расходов по созданию объекта • Операция может быть прервана досрочно, как только порядок устновлен • Реализуйте для очень быстрой сортировки! • Пример – org.apache.hadoop.io.Text Copyright © 2011 Codeminders <vorl@codeminders.com>
29.
Combiner : WordCount
Map(String key, String value): // key: имя документа // value: содержимое документа for each word w in value: Emit(w, 1); Reduce(String key, Iterator<Integer> values): // key: слово, одно и тоже для ввода и ввывода // values: список счетчиков int result = 0; for each v in values: result += v; Emit(key, result); Copyright © 2011 Codeminders <vorl@codeminders.com>
30.
WordCount без Combiner'а
dog 1 cat 1 cat 1 bird 1 dog 1 cat 1 dog 1 dog 1 Sort and Shuffle dog 1 1 1 1 cat 1 1 1 bird 1 Copyright © 2011 Codeminders <vorl@codeminders.com>
31.
WordCount c Combiner'ом
dog 1 cat 1 cat 1 bird 1 dog 1 cat 1 dog 1 dog 1 Combine Combine cat 1 bird 1 dog 3 cat 2 dog 1 Sort and Shuffle dog 3 1 cat 1 2 bird 1 Copyright © 2011 Codeminders <vorl@codeminders.com>
32.
Зачем нужен partitioner ●
При степенном распределении пространства ключей фаза reduce может вызываеть задержки ● Помните подсчет слов -к сожалению, reducer завяз на подсчете количества слов “the” ● Почему спекулятивное исполнение не справляется с этим? ● Полезен при сортировке int getPartition(K2 key, V2 value, int numPartitions); Copyright © 2011 Codeminders <vorl@codeminders.com>
33.
Отладка MR-заданий ●
Программная логика должна быть Hadoop- независимой • Не используйте Hadoop специфические классы (OutputCollector, Reporter, Writable) без крайней необходимости • Работайте с Hadoop API на интерфейсном уровне Copyright © 2011 Codeminders <vorl@codeminders.com>
34.
Последовательность отладки 1.JUnit 2.LocalJobRunner. Недостатки :
• DistributedCache не работает • mapred.reduce.tasks всегда 1 • абсолютно отдельная ветвь кода… 3.MiniDFSCluster и MiniMRCluster Copyright © 2011 Codeminders <vorl@codeminders.com>
35.
Литература и вопросы
36.
Дополнительная информация 1. Книга
"Hadoop: The Definitive Guide", Tom White, 2009 2. Книга "Data-Intensive Text Processing with MapReduce" Jimmy Lin, 2010 3. Проект Mahout: http://mahout.apache.org/ 4. Проект Hamake: http://code.google.com/p/hamake/ 5. Проект Nutch: http://nutch.apache.org/ 6. Сайт компании Cloudera: http://www.cloudera.com/ 7. Yahoo! Hadoop distribtion: http://developer.yahoo.com/hadoop/distribution/ Copyright © 2011 Codeminders <vorl@codeminders.com>
37.
?
Jetzt herunterladen