Hadoop Лекция 4. Разработка и запуск программ в Hadoop.

Презентация:



Advertisements
Похожие презентации
Hadoop Лекция 5. Основы MapReduce API. План Базовые компоненты MapReduce API Mapper Reducer Driver.
Advertisements

Hadoop Лекция 8. Основы администрирования Hadoop.
Hadoop Лекция 3. Алгоритм MapReduce. План История создания MapReduce Основы MapReduce Примеры использования MapReduce Особенности применения MapReduce.
ДонНУ, кафедра КТ, проф.В.К.Толстых WCF-службы Создание и тестирование.dll-библиотеки WCF-служб Из цикла лекций «Internet-технологии разработки приложений»
Программное обеспечение серверов и клиентов. Программы-клиенты web-клиент ftp-клиент ssh-клиент mail-клиент.
Практическое использование Java Макаревич Л. Г.. Инсталляция Java Документация в docs Прописать PATH (каталог bin в JSDK) Прописать CLASSPATH (путь к.
П ОДКЛЮЧЕНИЕ К УДАЛЕННЫМ РАБОЧИМ СТОЛАМ И ПРИЛОЖЕНИЯМ R EMOTE A PP Подготовила: студентка 2 курса 11 группы Направления «Государственное и муниципальное.
Докладчик: Кин Кирилл, ВМИ-115 Windows Azure Демонстрация разработки и внедрения простейшего сервиса.
Java Advanced Apache Ant. 2 СПбГУ ИТМО Georgiy KorneevJava Advanced / Описание и проверка структуры XML Содержание 1.Введение 2.Задания 3.Цели 4.Проекты.
Выполнила работу: Студентка 2 курса 9 группа ГМУ Новикова Анастасия.
Java Advanced Apache Ant. 2 СПбГУ ИТМО Georgiy KorneevJava Advanced / Описание и проверка структуры XML Содержание 1.Введение 2.Задания 3.Цели 4.Проекты.
Отладка программы. Классификация ошибок 1.синтаксические; 2. ошибки времени выполнения; 3.алгоритмические. Синтаксические ошибки, обнаруживает компилятор,
Глава 2 Интерфейс Конфигурационное управление с применением ClearCase Интерфейс ClearCase.
JSF/JSP/Tomcat Введение в технологию. JavaServer Faces JSF - фреймворк для веб-приложений, написанный на Java JSF основывается на использовании компонентов.
Печать документов Борисов В.А. Красноармейский филиал ГОУ ВПО «Академия народного хозяйства при Правительстве РФ» Красноармейск 2009 г.
Администрирование информационных систем Начало работы с MS SQL Server 2000.
ИСОратник Инсталляция и конфигурирование программы в локальной сети.
Hadoop Лекция 1. Введение в Hadoop и MapReduce. Что такое Hadoop Инфраструктура (framework) для параллельной обработки больших объемов данных (терабайты)
Автор: Субхангулов И.И. Башкортостан Стерлитамак 2011.
Принтер – одно из самых востребованных внешних устройств, его установка в Windows 7 максимально автоматизирована и не должна вызвать сложностей даже у.
Транксрипт:

Hadoop Лекция 4. Разработка и запуск программ в Hadoop

План Запуск программ в Hadoop из командной строки Контроль состояния задач и очереди Hadoop Eclipse Plug-in для Hadoop Karmasphere Studio

Запуск программ в Hadoop Запуск и управление работой программ в Hadoop выполняется командой: $ bin/hadoop Пример для HDFS: $ bin/hadoop dfs -ls Без параметров выводится подсказка по доступным командам

Команды Hadoop Полный список команд в «Hadoop Command Guide» КомандаНазначение dfs (fs) Операции с HDFS jar Запустить программу, упакованную в архив Jar CLASSNAME Запустить класс с указанным именем job Управление задачами Hadoop queue Просмотр очереди задач

Пример запуска класса Программа работы с HDFS из лекции 2 Компиляция (нужно установить CLASSPATH): javac HDFSHelloWorld.java Результат: HDFSHelloWorld.class Запуск: $ bin/hadoop HDFSHelloWorld Hello, world!

Запуск архива jar Синтаксис: $ bin/hadoop jar jarFile [mainClass] args… Пример : bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+ hadoop-examples-*.jar – Имя архива с примерами из дистрибутива Hadoop grep – Имя класса с примером input – Каталог входных данных output – Каталог выходных данных 'dfs[a-z.]+ – Шаблон для поиска

Примеры в составе Hadoop Готовые примеры: wordcount – подсчет количества слов sort, terasort – сортировка randomwriter, teragen – генерация тестовых данных pentomino, sudoku – решатели головоломок Полный список примеров: $ bin/hadoop jar hadoop-examples-*.jar Открытый исходный код, можно изучать

Выходные файлы Результат работы программы Hadoop записывается в файлы вида: part-XXXXX, где XXXXX – номер процесса Reduce Каждый процесс Reduce выводит данные в отдельный файл Для корректной работы необходимо, чтобы каталог для выходных файлов не существовал (Почему?)

Основы Jar Jar (Java Archive) – архив Java Использует формат Zip Включает: Программу на Java все необходимые компоненты Манифест (метаданные, включая основной выполняемый класс) Создается командой jar из JDK

Команда Jar Синтаксис jar похож на tar Создание архива jar: jar cvf WordCount.jar WordCount.class WordCount$Map.class WordCount$Reduce.class Создание архива jar из каталога: jar cvf WordCount.jar –C WordCount/. Распаковка архива jar jar xvf WordCount.jar

Пример запуска WordCount Компиляция (нужно установить CLASSPATH): javac WordCount.java Результат: WordCount.class, WordCount$Map.class, WordCount$Reduce.class Создание архива jar: jar cvf WordCount.jar WordCount.class WordCount$Map.class WordCount$Reduce.class Запуск: $ bin/hadoop jar WordCount.jar WordCount input output

Очередь задач Hadoop В Hadoop задачи запускаются в пакетном режиме Вызов $ bin/hadoop jar ставит задачу в очередь Запуск может быть выполнен не сразу, а через некоторое время Каждый узел кластера имеет ограниченное количество «слотов» JobTracker отслеживает количество свободных слотов и при их наличии запускает задачу

Команды работы с очередью Список существующих очередей: Задачи в очереди: $ bin/hadoop queue -list Queue Name : default Queue State : running Scheduling Info : N/A $ bin/hadoop queue -info default -showJobs … Job List JobId State StartTime UserName Priority SchedulingInfo job_ _ hadoop NORMAL NA job_ _ hadoop NORMAL NA

Просмотр очереди через Web

Задача в очереди

Управление задачами Команда: $ bin/hadoop job cmd КомандаНазначение list Печать списка задач status Сведения о задаче kill Остановить задачу kill-task Остановить task

Управление задачами Список работающих задач: Информация о задаче: Список всех задач, в том числе завершенных: $ bin/hadoop job -list 1 jobs currently running JobId State StartTime UserName Priority SchedulingInfo job_ _ hadoop NORMAL NA $ bin/hadoop job -status job_ _0012 $ bin/hadoop job -list all

Управление задачами через Web

Разработка для Hadoop Eclipse plug-in для Hadoop Karmasphere Studio: Eclipse Netbeans Бесплатный вариант: Karmasphere Studio Community Edition

Eclipse plug-in для Hadoop Входит в дистрибутив Hadoop 1 : contrib/eclipse-plugin Plug-in позволяет: Запускать программы на сервере Hadoop из Eclipse Работать с HDFS из Eclipse Установка: Скопировать файл hadoop-eclipse-plugin*.jar в каталог plugins Eclipse 1 В текущей версии Hadoop (0.20.2) plugin не работает. Работающий plugin можно скачать по ссылке:

Использование Eclipse plug-in Для компиляции программ нужен дистрибутив Hadoop на компьютере разработчика Создание проекта для Hadoop в Eclipse: Создайте проект «Map/Reduce Project» Укажите имя проекта и путь к дистрибутиву Hadoop Eclipse автоматически подключит нужные библиотеки из диструбутива Hadoop к проекту

Использование Eclipse plug-in

Подключение к серверу Hadoop Выберите перспективу «Map/Reduce» В нижней части экрана выберите закладку «Map/Reduce Locations» Нажмите кнопку «New Hadoop Location…» Введите данные о кластере или сервере Hadoop

Подключение к серверу Hadoop

Параметры соединения с Hadoop Location name – имя соединения в Eclipse, может быть любым Map/Reduce Master – адрес (host:port) сервера JobTracker DFS Master – адрес (host:port) сервера имен (NameNode) DFS User name – имя пользователя, не работает в текущей версии ( и )

Дополнительные параметры соединения с Hadoop hadoop.job.ugi – имя пользователя Hadoop до первой запятой mapred.system.dir – путь в HDFS к общим системным файлам MapReduce (рекомендуется /hadoop/mapred/system) hadoop.tmp.dir – путь к временным каталогам Hadoop (рекомендуется /tmp/hadoop)

Работа с HDFS из Eclipse

Шаблоны классов Mapper –класс для функции Map Reducer – класс для функции Reduce MapReduce Driver – класс для запуска задачи Hadoop Использование: меню File->New… Шаблоны используют устаревший API

Запуск MapReduce программ

Запуск программы: Правой кнопкой мыши щелкнуть в Project Explorer на имени нужного класса В контекстном меню выбрать пункт Run As -> Run on Hadoop В появившемся окне выбрать сервер Hadoop и нажать Finish В окно консоли выводится лог запуска Результаты работы можно посмотреть в окне HDFS

Karmasphere Studio Среда разработки для Hadoop, созданная компанией Karmasphere Варианты: Professional Edition (платный) Community Edition (бесплатный) Поддерживает IDE Eclipse и Netbeans

Karmasphere Studio Включает сконфигурированные дистрибутивы Hadoop нескольких версий Ничего дополнительно устанавливать не нужно (исключение: для Windows требуется cygwin) Самый простой способ начать программировать для Hadoop В курсе используется Karmasphere Studio Community Edition для Eclipse При желании допускается использовать платную версию и/или NetBeans

Установка Karmasphere Studio Установить Eclipse В файле eclipse.ini прописать параметры: -vmargs -Xmx1024m -XX:MaxPermSize=512m -Dosgi.classloader.lock=classname -Dosgi.requiredJavaVersion=1.6 Зарегистрироваться на сайте karmasphere 1 и получить код для Community Edition 1

Установка Karmasphere Studio В меню Eclipse выбрать пункт Help-> Install new software Создать новый репозиторий с Location: /eclipse/ В появившемся списке выбрать и установить Karmasphere Studio Community Edition Перезапустить Eclipse

Установка Karmasphere Studio

Использование Karmasphere Karmasphere Studio создает новую перспективу «Hadoop» Новый типа проекта не создается, используется обычный Java проект Библиотеки Hadoop к проекту подключаются вручную из состава Karmasphere

Подключение библиотек

Основные понятия Karmasphere Workflow – поток работ MapReduce Hadoop Job – задача Hadoop, генерируется автоматически на базе Workflow

WordCount в Karmasphere Создайте проект Java Подключите библиотеки Hadoop MapReduce 0.20 Создайте задачу Hadoop MapReduce Job (0.20.2) ( File->New->Other->Hadoop 0.20-> Hadoop MapReduce Job (0.20.2) ) Приложение WordCount готово! Используются Mapper и Reducer из состава Hadoop

WordCount в Karmasphere

WordCount Workflow Мастер для настройки всех фаз MapReduce Код на Java генерируется автоматически Просмотр обработки данных без запуска задачи на Hadoop

WordCount Workflow

Автоматически сгенерированная задача (фрагмент) public class WordCountJob { public static void main(String[] args) throws Exception { Job job = new Job(); /* Autogenerated initialization. */ initJob(job); /* Custom initialization. */ initCustom(job); /* Tell Task Tracker this is the main */ job.setJarByClass(WordCountJob.class); /* This is an example of how to set input and output. */ FileInputFormat.setInputPaths(job, args[0]); FileOutputFormat.setOutputPath(job, new Path(args[1])); /* You can now do any other job customization. */ // job.setXxx(...); /* And finally, we submit the job. */ job.submit(); job.waitForCompletion(true); }...

Шаблоны классов Karmasphere включает шаблоны классов Mapper, Reducer и др. Собственные классы после создания можно включать в WorkFlow

Запуск задач в Karmasphere Karmasphere включает сконфигурированные дистрибутивы Hadoop нескольких версий для локального запуска Поддерживается запуск задач на удаленных кластерах Для запуска нажмите кнопку «Deploy To A Cluster» в Workflow

Локальный запуск

Подключение к кластеру Настройка соединения с кластером Hadoop выполняется в окне «Hadoop Services» Для запуска задачи на кластере необходимо настроить: Соединение с HDFS, «Remote File Systems» Соединение с кластером, «Remote Clusters»

Соединение с HDFS

В «Hadoop Services» нажмите правой кнопкой мыши на «Remote Filesystems» и в меню выберите «New Filesystem» Введите имя файловой системы (может быть любым), нажмите «Next» Введите параметры файловой системы: имя и порт сервера имен, версию Hadoop, имя пользователя и группу Hadoop Нажмите «Finish»

Просмотр HDFS

Соединение с кластером

В «Hadoop Services» нажмите правой кнопкой мыши на «Remote Clusters» и в меню выберите «New Cluster» Введите имя кластера (может быть любым), выберите версию Hadoop и файловую систему по умолчанию, нажмите «Next» Введите параметры кластера: имя и порт сервера задач, имя пользователя Hadoop Нажмите «Finish»

Запуск задачи на кластере

Итоги Запуск задач Hadoop из командной строки: Подготовить Jar архив с задачей Запустить командой bin/hadoop jar Задачи Hadoop выполняются в пакетном режиме Просмотр состояния очереди и задач из командной строки bin/hadoop queue и bin/hadoop job Также очередь и состояние задач можно контролировать через Web Среда разработки для Hadoop: Karmasphere для Eclipse (рекомендуется) или NetBeans Eclipse plugin для Hadoop

Дополнительные материалы Hadoop Commands Guide Hadoop Eclipse Plug-in Karmasphere Studio Community Edition community-edition.html community-edition.html

Вопросы?